[CE编程]第7章 Files, Databases, and the Registry (二)CE中的数据库API

原创 2004年11月03日 17:47:00

                                                                CE中的数据库API         

  CE提供了一套唯一的(只能在CE下)的数据库API集,能为一些有组织的数据提供很有效的支持。

        一,基本的定义:
         
     1. Records允许的9种数据类型:
                

                      数据类型                             描述

IVal

2-byte signed integer

UiVal

2-byte unsigned integer

LVal

4-byte signed integer

UlVal

4-byte unsigned integer

FILETIME

A time and date structure

LPWSTR

0-terminated Unicode string

CEBLOB

A collection of bytes

BOOL

Boolean

Double

8-byte signed value

//好啊,有CEBLOB,不错不错thumbs_up.gif

索引在数据库创建时同时被建立,但以后也是可以重新定义的。索引是有代价的,所以请根据你的需要来定制索引。
简而言之,CE提供了基本的数据库功能,能有效的帮助你的应用程序组织一些简单的数据结构。Pocket PC 使用database API 来管理the address book, the task list和e-mail messages.

        2.设计数据库:
        请在你使用CeCreateDatabaseEx之前请先仔细的想想数据库将要怎样使用。不要把这里的数据库想象成大型数据库,不能超过数据库结构的限制。虽然限制是很宽松的:一个单独属性最多不能超过CEDB_MAXPROPDATASIZE=65,471,一个单一的记录不能达到CEDB_MAXRECORDSIZE=131,072。

        3.
Database Volumes :
        Database Volumes以Volumes的形式存储在外部介质中,也直接在object store中。它是一种CE数据库能定位的特定的格式,能存储在PC卡上或者类似的存储设备上。不方便的就是你必须在使用其之前先mount,关闭前unmount。Volume是一个文件,在文件系统中,Volume是被隐藏的,但是可以通过标准的文件操作函数删除。因此你不能阻止一些勇猛的用户当空间不够时不顾一切的去寻找并有可能删除一个Volume。//汗ing.....

            
        
二,数据库API:
        
计划了数据库,那就开始编程吧:

        
Mounting a Database Volume 
        如果你的数据库在外部设备上,如CompactFlash card,你就必须挂载一个database volume 包含该数据库


    
    CeEnumDBVolumes 返回TRUE 如果一个已挂载的volume被发现,然后这个volume的guid和name用pguid
lpBuff
这2个参数来指向。第3个参数是lpBuff所指向的缓冲区的大小。
    
    Ex:










     Using the Object Store as a Database Volume


     Creating a Database: 





The function CeCreateDatabaseEx2 was added to Windows CE .NET 4.0. If an application needs to
run on a Windows CE 3.0–based system, such as a Pocket PC 2000 or Pocket PC 2002, the
application must use the
function CeCreateDatabaseEx to create a database. The chief difference
between the two functions is that CeCreateDatabaseEx2 allows multilevel sorting, whereas

CeCreateDatabaseEx
does not.


    
Opening a Database:















    
Seeking (or Searching for) a Record:

CEOID CeSeekDatabaseEx (HANDLE hDatabase, DWORD dwSeekType, DWORD dwValue, WORD wNumVals, LPDWORD lpdwIndex);

    


Changing the Sort Order:











     Reading a Record:

 


     Writing a Record:

CEOID CeWriteRecordProps (HANDLE hDbase, CEOID oidRecord, WORD cPropID,                         CEPROPVAL * rgPropVal);






Deleting Properties, Records, and Entire Databases:

    To delete an entire record in a database, call



    You can delete an entire database using this function:



 


Enumerating Databases:



    Querying Object Information





2004年11月3日20:00:14 好累,今天先写到这里吧,有时间在丰富一下

























[CE编程]第7章 Files, Databases, and the Registry (-)文件系统

其他OS(XP,WIN ME)都是在磁盘(软盘,硬盘)上存储的, Windows CE实现了一个唯一的基于RAM的文件系统,就是传说中的  object store.在实现中,对象存储更象一个数据库,...
  • songtitan
  • songtitan
  • 2004年11月02日 19:41
  • 914

CE第八步的详细讲解(配图),已完全通关

CE第八步的详细讲解(配图) 已经学到第八步的人已经都知道如何查一个value的address了,所以查address的那一步省略,直接查出了第一个pointer 大家可以看到这里的指令是 move[...
  • tavor
  • tavor
  • 2008年10月20日 22:48
  • 4301

Windows CE API大全

1. API之网络函数    WNetAddConnection 创建同一个网络资源的永久性连接   WNetAddConnection2 创建同一个网络资源的连接   WNetAddConnecti...
  • Willjet
  • Willjet
  • 2011年02月12日 10:29
  • 1284

Windows CE下开机自动运行程序

 How to Configure the Registry to Run an Application at StartupYou can add an application to your OS...
  • dreamzqw
  • dreamzqw
  • 2007年08月12日 18:42
  • 4379

Remote Registry Editor使用

版权:研博科技  作者:Bill Zhong  日期:2007-7-3(转载请标明出处)  Remote Registry Editor介绍:连接目标设备上WinCE的Registry内容:用Remo...
  • lzyzuixin
  • lzyzuixin
  • 2009年02月21日 00:15
  • 1592

Windows CE 必备开发工具总结

开发工具: VS2005或VS2008都可以。两者都包含“智能设备”开发功能。 ActiveSync:这是PC和智能设备通信的工具。可以传送文件同步数据等。 Windows Mobi...
  • lan_tian88
  • lan_tian88
  • 2013年02月25日 22:01
  • 941

SQL CE-适合移动智能设备的轻量级数据库

一、SQL CE是什么?     SQL CE 的全名是 Microsoft SQL Server 2000 Window CE Edition,它为移动智能设备和嵌入式设备提供了一种存取轻量级数据库...
  • liutengteng130
  • liutengteng130
  • 2014年01月22日 16:34
  • 3279

CE中地址列表中绿色地址与黑色地址的含义

CE是一个很神奇的工具 用CE进行数据搜索时 会在地址列表中出现很多的地址 其中绿色地址指的是基址 黑色地址指的是动态内存地址(即使用动态内存申请获得内存)...
  • songyuc
  • songyuc
  • 2016年12月18日 12:52
  • 1456

IntelliJ IDEA CE Maven 使用方法

我们在使用 IntelliJ IDEA CE 版本时,明明创建的是一个 Maven 项目,但是在项目上点击鼠标右键时会发现,Run Maven Build 菜单是灰的,不能用!如下图:有的文章说是 I...
  • testcs_dn
  • testcs_dn
  • 2017年09月03日 17:32
  • 703

游戏外挂编程---编写外挂的特点和CE(1-8)教程

游戏外挂编程1。工具VBSPY LIST 窗口句柄捕捉工具Cheat Engine 内存地址修改工具2。了解外挂的特点本人想制作的外挂(1)在程序中呼叫程序。(2)有个主窗口(3)能修改游戏中的数值。...
  • hmc1985
  • hmc1985
  • 2011年07月29日 09:47
  • 1205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[CE编程]第7章 Files, Databases, and the Registry (二)CE中的数据库API
举报原因:
原因补充:

(最多只允许输入30个字)