[發明專利]一種通過SQL語句處理二進制數據文件的方法在審
| 申請號: | 201911048643.2 | 申請日: | 2019-10-30 |
| 公開(公告)號: | CN111026399A | 公開(公告)日: | 2020-04-17 |
| 發明(設計)人: | 連接力 | 申請(專利權)人: | 四川文軒教育科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/73;G06F16/14 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 610000*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 通過 sql 語句 處理 二進制 數據文件 方法 | ||
本發明公開了一種通過SQL語句處理二進制數據文件的方法,包括以下步驟:根據業務場景,編制用于查詢或更新的SQL語句;解析出SQL語句中的關鍵字,包括SQL請求關鍵字、表名、條件子句中的字段名及對應的字段值;將上述關鍵字翻譯為高級語言代碼,并分情況執行:如果是查詢語句,則按典型數據讀取方式讀取映射后的文件,獲得結果;如果是更新語句,則先按上述第一種查詢的方法找到目標數據條目,再分情況處理更新后的數據字段長度小于、等于、大于原字段長度的情況。本發明通過使用SQL語句的方式,使不關心底層數據結構的編碼人員可以容易地實現數據文件的讀取,開發人員學習成本低,適合于對數據量較小,選用二進制數據文件而非數據庫的應用。
技術領域
本發明涉及一種處理二進制數據文件的方法,尤其涉及一種通過SQL語句處理二進制數據文件的方法,屬于IT數字化技術領域。
背景技術
軟件中常有對數據進行存取的需要,對數據量較大的系統,一般使用數據庫進行數據的存取。對數據量較小,特別是數據為只讀的系統,使用數據庫較重,替代的方案包括使用文本文件進行數據存取,如常見的xml、json、ini等文件。此外,使用自定義的二進制數據文件作為數據的載體也是一種常用的方式。二進制數據文件格式一般為私有定義,讀寫該數據文件的程序根據數據文件的結構進行特定的代碼編寫。這種方法的優點是直接操作數據文件,讀寫效率通常較高,特別是在數據為只讀的情況,配合操作系統的文件映射等技術,可以獲得較高的讀取效率。缺點是對特定的文件進行讀寫時,代碼完全依賴于數據文件的結構,開發人員需要清楚文件結構的細節,且需要對文件操作、映射等Api函數有較深入的了解才能完成。
二進制數據文件的格式沒有標準,一般有軟件開發的公司/單位根據業務定制。其中,一種較為典型的二進制數據文件由幾部分組成:文件頭、數據索引表、數據塊區,例如位圖文件等都屬于該范疇。其中文件頭記錄文件的版本、標記、校驗和、數據索引表及數據塊的起始地址等;文件索引表(可能沒有)記錄數據塊中數據條目距數據塊的偏移距離,目的通常是便于快速跳轉或節約數據空間;數據塊區記錄實際的數據值。
不失一般性,一個符合上述描述的二進制數據文件結構如下表:
典型的數據讀取方式為:
1、裝載數據文件:
可使用標準文件讀取的方式讀取,特別地,windows系統下可用內存映射系列函數完成,例如CreateFileMapping/MapViewOfFile等;
2、讀取文件頭,數據校驗,獲取各數據區域的起始位置;
3、根據待查詢的數據特征,確定該數據所屬的索引表和數據表,例如
例如unsigned long*pDatOfstTab=pMapFile+pheader->pe.dwIndexPos;
LPBYTE pDataBlock=pMapFile+pheader->pe.dwDataPos;
4、讀取出索引表中記錄的,該數據數在數據區的偏移量。根據偏移量,讀取該條數據,例如:
Index=dateID-IDBEGIN;
dwDataIndex=(DWORD*)pFileMap->pDatOfstTab+Index;
pDataItem=(DataItem*)(pDataBlock+*(DWORD*)((BYTE*)pDatOfstTab+dwCandIndex))。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川文軒教育科技有限公司,未經四川文軒教育科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911048643.2/2.html,轉載請聲明來源鉆瓜專利網。





