CN1087454C - WinCE作业环境下的数据结构处理方法 - Google Patents
WinCE作业环境下的数据结构处理方法 Download PDFInfo
- Publication number
- CN1087454C CN1087454C CN98103778A CN98103778A CN1087454C CN 1087454 C CN1087454 C CN 1087454C CN 98103778 A CN98103778 A CN 98103778A CN 98103778 A CN98103778 A CN 98103778A CN 1087454 C CN1087454 C CN 1087454C
- Authority
- CN
- China
- Prior art keywords
- data
- data structure
- description list
- database
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明涉及一种WinCE作业环境下的数据结构处理方法,预先建立读、写模块,建立与每一数据结构对应的描述表,该描述表包含数据结构中每一数据项的位移参数与数据类型,依据描述表中的这些信息,可于一应用程序中使用预先建立的读、写模块对数据结构进行读、写。通过本发明,可使WinCE环境下的应用程序共用数据结构的读、写模块,且于数据结构更改时,只须修改描述表内容。
Description
本发明涉及一种WinCE作业环境下的数据结构处理方法。
在WinCE作业环境下对数据结构的处理因受硬件限制,与数据结构的实体结构紧密相关,而对数据结构的读、写操作也必以该数据结构中与起始点的相对位移量进行定义,对开发与维护人员来说十分繁杂而不便。
于该环境下要使用一数据结构,必须先以位移量定义该数据结构中每一数据项相对于起始点的位移,并定义该数据项中所储存数据的数据类型,完成数据结构等实体结构定义后,才能利用应用程序接口(API,Application Program Interface;见图1)对该数据结构进行读、写操作。
在WinCE作业环境下的这种限制,最大问题在于若一数据结构有任何改动,例如:一数据项增加、删除、移动等,凡与该数据结构的读、写相关的所有应用程序与模块必须逐一进行相对应修改。
本发明目的之一在于通过数据结构的描述表,使WinCE作业环境下数据结构的读、写操作可与数据结构的实际结构相互独立,方便数据库的开发与维护。
本发明的另一目的在于通过模块化设计,使WinCE作业环境下数据结构的存、取可通过共用的读、写模块完成,节省人力成本,避免资源浪费。
涉及一种WinCE作业环境下的数据结构处理方法,是针对该作业环境对一数据结构读、写操作所产生的限制,通过一描述表提供解决办法;每一描述表中含有其对应数据结构中每个数据项相对应的位移参数与数据类型,其中位移参数是一数据项与其所在记录的起始点间的位移量,而数据类型是一数据项中所储存内容的类型定义。
通过与每一个别数据结构对应的描述表,可使预先建立的读、写模块能与数据结构的实体结构相互独立;透过这些描述表,可使数据结构的新增、修改、删除等操作可不修改与该数据结构相关的读、写模块,仅需修改与其对应的描述表内容,便可维持相关读、写模块的正确运作。
本发明将读、写模块中对数据结构的读、写操作,配合与该数据结构对应的描述表中的信息,转换成WinCE作业环境下应用程序接口对该数据结构的读、写操作。
图1是WinCE作业环境与一般电脑作业环境的比较;
图2是WinCE作业环境、C语言及数据结构描述表中各种数据类型的对应关系;
图3A是一数据库在C语言中的定义;
图3B是图3A数据库的描述表;
图4A是图3A中的数据库中加入一数据项后,其在C语言中的定义;
图4B是图4A中数据库的描述表;
图5是本发明一实施例写入模块的流程图;
图6是本发明一实施例读取模块的流程图。
本发明的主要原理是在WinCE作业环境下,根据一数据库的数据结构建立其对应的描述表,每当数据库的数据结构发生改变,或欲加入、删除一数据库时,只须修改(或加入、删除)该数据库对应的描述表即可,不必更改相关的操作模块。
在WinCE作业环境下,其所支持的数据类型分别为(参见图2)UI2、I2、I4、UI4、LPWSTR、FILETIME等,因此在WinCE作业环境下所有数据结构皆由这些数据类型组合而成,其与C语言间呈一定的对应关系,其中与UI2、I2、I4、UI4、LPWSTR、FILETIME等数据类型对应的C语言数据类型分别为WORD、SHORT、LONG、DWORD、TCHAR或TCHAR*、SYSTEMTIME,其中LPWSTR分别对应到C语言的TCHAR或TCHAR*两种数据类型。
依本发明的方法所建立的描述表是对数据结构的一种解释,借以将读、写操作过程中对数据库的读取、写入转换为WinCE作业环境下应用程序接口(API)对该数据结构的读、写操作,使其与该数据结构的实际结构相对应,顺利完成操作过程。
描述表与数据库间呈一对一的对应关系,也就是每一数据库皆有一独特的描述表与其对应,在一描述表中的每一项皆由位移参数与数据类型组合而成(参见图3B),前者通过位移量来定义数据库中一数据项的长度,后者则定义与该数据项内容对应的WinCE作业环境下的数据类型。
在一描述表第一项中的内容为校验参数,用以验证其是否为数据库所对应的描述表,此项在对数据库进行写入操作时并不真正写入WinCE数据库;一描述表最后一项中的内容系数据库的结束标志,亦不写入数据库;描述表、数据结构及该二者在WinCE数据库中的对应关系参见图2、图3A、图3B、图4A、图4B。
由于WinCE数据库所支持的数据类型与C语言中惯用的数据类型并不一致,本发明的方法将其所定义的数据类型与WinCE数据库中的数据类型、C语言中的Struct数据类型做如图3所示的对应,其中第一栏列出本方法中描述表使用的数据类型,第二栏列出WinCE数据库所支持的数据类型,第三栏则列出C语言中的数据类型,而每一列则为三者间相对应的数据类型。
其中WinCE数据库支持的数据类型LPWSTR实际储存的是一4字节的地址,一般对应于C语言中惯用CHAR[](字符)和LPSTR(指针,pointer)两种数据类型;此外WinCE数据库支持的数据类型FILETIME也转换为C语言中的数据类型SYS TEMTIME。
由以上所述可知,本发明是根据一数据库的数据结构,将其中每一数据项的数据长度转换为相对应的偏移量,而将该数据项的数据类型转换为WinCE支持的数据类型,逐项依次填入描述表以建立与该数据库对应的描述表;另外该描述表中的第一项是一校验信息(其内容是数据结构的大小),而其最后一项是结束标志。
在写入模块的实际操作过程中(参见图5),根据描述表中的信息逐一将数据结构的数据项由适当位置读出,并将这些数据储存到PEGPROPVAL格式的缓冲器中,当所有项完成后才利用WinCE作业环境所提供的pegWriteRecordProps接口真正写入数据库;写入模块使用三个参数(数据库名称,描述表,缓冲器)完成对指定数据库的数据写入操作,其实际操作过程如下:
(1)判断该数据库是否存在以及描述表的最后一项中的位移量(代表该描述表对应的数据结构的数据长度)与缓冲器大小是否相同,以此步骤校验描述表是否与指定数据库正确对应,若有错误则传回错误信息,
(2)由缓冲器根据描述表中的位移参数、数据类型逐一取出一数据项,并将之转换成WinCE支持的格式,
(3)将缓冲区中的数据通过WinCE的应用程序接口(API)写入数据库。
读取模块的实际操作过程(请参见图6)与写入模块相似,其实际运作过程如下:
(i)判断该数据库是否存在以及描述表中的最后一项中的位移量(代表该描述表对应的数据结构的数据长度)与缓冲器大小是否相同,以此步骤校验描述表是否与指定数据库正确对应,若有错误则传回错误信息,
(ii)通过WinCE的应用程序接口(API)读取数据库中一系列记录,并根据描述表中的位移参数、数据类型,由WinCE支持的格式逐一取出一数据项,转换成C语言的格式后写入缓冲器。
以下通过一实施例加以说明,在一通讯录数据库中储存如下的资料:
该数据库的结构如下:
姓名 | 生日 | 性别 | 公司 | 电话 |
徐祥 | 1980.1.1 | 男 | IBM | 22325789 |
吴明 | 1979.2.1 | 女 | Intel | 32435678 |
朱申 | 1975.8.1 | 男 | Inventec | 26877556 |
……… | ……… | ……… | ……… | ……… |
数据项名称: 数据类型:
姓名 32个字符(32TCHAR)
生日 时间类型(FILETIME)
姓别 一个字(WORD)
公司 32个字符(32TCHAR)
电话 20个字符(32TCHAR)
该数据库在C语言中对应的数据结构请参见图3A,根据该数据结构可建立如图3B中的描述表。
建立该描述表过程如下:
表中第一项,在数据结构中对应到WORD数据类型,将其转换为DBMS_UI2,其位移量为0。
表中第二项,在数据结构中对应到TCHAR数据类型,将其转换为DBMS_CHARA,其位移量为0+sizeof(WORD)=2。
表中第三项,在数据结构中对应到SYSTEMTIME数据类型,将其转换为DBMS_SYSTEMTIME,其位移量为0+sizeof(WORD)+sizeof(TCHAR)*32=66。依此类推,表中最后一项为结束标志,将其转换为DBMS_END,其位移量为0+sizeof(WORD)+sizeof(TCHAR)*32+sizeof(SYSTEMTIME)+sizeof(WORD)+sizeof(TCHAR)*32+sizeof(TCHAR)*32=184。
在操作此通讯录数据库时,欲添加一姓名为“王新”的记录时,须将此记录的数据及所欲加入数据库的描述表一起传给预先写好的写入模块(HPCDBWriteRec),该模块逐项判断“王新”记录的长度、数据类型是否与描述表一致,接著将“王新”的数据转化为WinCE可识别的PEGPROPVAL格式,直至读取到描述表中最后一项DBMS_END数据类型的结束标志为止,接著将转换好的PEGPROPVAL格式的数据,以PEGWriteProp接口实际写入WinCE支持的数据库;由数据库中读取一记录的过程与写入相类似。
若欲在数据库中增加一项,例如E-MALL地址,则其数据结构变为图4A中所示,此时只须将描述表修改成如图4B中所示即可,仍可以原来的读、写模块(HPCDBWriteRec,HP CDBReadRec)进行操作。若依惯用技术处理此数据库加入一项的操作,则须(一)将数据结构修订为图4A中的结构;(二)修改所有涉及此数据库的写入操作,将PEGPROPVAL组数改为6组(原来为5组),将数据填入此6组PEGPROPVAL格式的缓冲器,接着再以PEGWriteProp接口将之实际写入WinCE支持的数据库中;(三)修改所有涉及此数据库的读取操作,以PEGReadProp接口由数据库中读取一个记录至PEGPROPVAL格式的数据缓冲区,再根据所定义数据结构中的数据类型由该数据缓冲区中选取对应的数据。
以上所述,仅为本发明的实施例,但是本发明所主张的权利范围并不局限于此,凡熟悉该项技术人员,依据本发明所揭示的技术内容,可轻易想到一些微小变动,均为不脱离本发明的保护范围。
Claims (4)
1.一种WinCE作业环境下的数据结构处理方法,该方法包含:
建立一独立数据结构,该数据结构包含至少一个数据项;
对每一数据结构建立一描述表,该描述表包含与其对应的数据结构中每一数据项相关的位移参数与数据类型,其中位移参数为用以定义该数据结构中一数据项与其所在记录的起始点间的位移量,而数据类型为用以定义该数据项所存储内容对应的一种数据类型;
建立读、写模块,这些模块为依据描述表内容,将读取、写入操作转换为WinCE作业环境下应用程序接口(API)对该数据结构的读、写操作,使其与该数据结构的实体结构相对应,以顺利进行操作;
依数据结构的变动修改描述表内容。
2.如权利要求1所述的一种WinCE作业环境下的数据结构处理方法,其特征在于,修改一数据结构的描述表包括修改一与数据项相关的位移参数与数据类型。
3.如权利要求1所述的一种WinCE作业环境下的数据结构处理方法,其特征在于,修改一数据结构的描述表包括增加一与数据项相关的位移参数与数据类型。
4.如权利要求1所述的一种WinCE作业环境下的数据结构处理方法,其特征在于,修改一数据结构的描述表包括删除一与数据项相关的位移参数与数据类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN98103778A CN1087454C (zh) | 1998-02-27 | 1998-02-27 | WinCE作业环境下的数据结构处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN98103778A CN1087454C (zh) | 1998-02-27 | 1998-02-27 | WinCE作业环境下的数据结构处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1195143A CN1195143A (zh) | 1998-10-07 |
CN1087454C true CN1087454C (zh) | 2002-07-10 |
Family
ID=5218079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN98103778A Expired - Fee Related CN1087454C (zh) | 1998-02-27 | 1998-02-27 | WinCE作业环境下的数据结构处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1087454C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828591B (zh) * | 2005-03-04 | 2011-07-27 | 微软公司 | 命令行数据类型发现和转换 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1037045A (zh) * | 1988-04-08 | 1989-11-08 | 国际商业机器公司 | 对关系数据库的数据项(objelt)进行有效分析的系统和方法 |
US5594899A (en) * | 1989-09-01 | 1997-01-14 | Amdahl Corporation | Operating system and data base having an access structure formed by a plurality of tables |
-
1998
- 1998-02-27 CN CN98103778A patent/CN1087454C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1037045A (zh) * | 1988-04-08 | 1989-11-08 | 国际商业机器公司 | 对关系数据库的数据项(objelt)进行有效分析的系统和方法 |
US5594899A (en) * | 1989-09-01 | 1997-01-14 | Amdahl Corporation | Operating system and data base having an access structure formed by a plurality of tables |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1828591B (zh) * | 2005-03-04 | 2011-07-27 | 微软公司 | 命令行数据类型发现和转换 |
Also Published As
Publication number | Publication date |
---|---|
CN1195143A (zh) | 1998-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5758352A (en) | Common name space for long and short filenames | |
CN108563711B (zh) | 一种基于时间节点的时序数据存储方法 | |
US7516296B2 (en) | Flash memory storage device and read/write method | |
CN1020014C (zh) | 快速开启由路径名识别的磁盘文件的方法 | |
US6691136B2 (en) | Fast data retrieval based upon contiguous consolidation of records according to frequency of access | |
US5117495A (en) | Method of sorting data records | |
US6355889B1 (en) | Method and apparatus for linking electronic ink to electronic personal information systems | |
CN103412803A (zh) | 数据恢复的方法及装置 | |
US8255612B2 (en) | Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system | |
US10496612B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
US20030208475A1 (en) | Search engine for large-width data | |
CN101051317A (zh) | 一种fat文件系统及其处理方法 | |
US5956705A (en) | Reverse-byte indexing | |
CN101000580A (zh) | Nand闪存信息提取方法和nand闪存自动识别方法 | |
CN101430685B (zh) | 下载方法及其系统 | |
CN111966281A (zh) | 数据储存装置与数据处理方法 | |
AU664763B2 (en) | Entity-relation database | |
CN1542624A (zh) | 一种在Flash文件系统中加快逻辑块映射速度的方法 | |
CN1087454C (zh) | WinCE作业环境下的数据结构处理方法 | |
US6510499B1 (en) | Method, apparatus, and article of manufacture for providing access to data stored in compressed files | |
US20070198567A1 (en) | File storage and retrieval method | |
CN105893512A (zh) | 一种基于元数据的任意版本兼容数据结构存取方法及装置 | |
CN1485745A (zh) | 非挥发性存储器存取系统及其存取方法 | |
JP3635341B2 (ja) | データベースの結合方法 | |
CN100349138C (zh) | 非挥发性存储器存取系统及其循环使用存取空间方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1036090 Country of ref document: HK |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20020710 Termination date: 20110227 |