首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Windows CE平台上的数据库编程 01

Windows CE平台上的数据库编程 01

随着掌上电脑的迅速崛起,微软推出的运行在掌上电脑上的操作系统Windows CE越来越引人瞩目。

  Windows CE包括一个Win32 API子集,一个适宜于静态、动态内存存储的文件系统等。根据需要,还增加了一些Windows所没有的特性,增加了一些新的API(包括一些新的数据库API)。其中数据库被定位在对象存储(Object Store)中。对象存储是掌上电脑内存的一部分,是操作系统分配来存储永久文件、注册表、Windows CE 数据库的。掌上电脑剩余的内存是应用程序内存,供应用程序使用。

  Windows CE中用来操作数据库的函数有:打开数据库CeOpenDatabase(); 关闭数据库CloseHandle(); 删除纪录CeDeleteRecord等。

  Windows CE上数据库的一些附加特性也是很有意思的,如数据库支持“time stamps”,这个特性让开发者可以测试自上次读数据后是否有别的程序修改了数据。

  下面让我们详细介绍Windows CE上的数据库编程(开发工具:VC 5.0,WindowsCE ToolKit for VC 5.0)。

   基本数据库操作

  1.创建数据库

void CMyDB::CreateDatabase()
  {
   CCeDBDatabase db;
   // 检查数据库是否存在
   if(!CCeDBDatabase::Exists(_T("My Database")))
   {
   file://如果数据库不存在,就创建它
   db.Create(_T("My Database"));
   }
  }


  2.打开数据库

CCeDBDatabase db;
db.Open(_T(″My Database″));
  
  3.删除数据库

CCeDBDatabase db;
if (db.Open(_T(″My Database″)))
 db.Delete();
  
  4.关闭数据库

CCeDBDatabase db;
db.Open(_T(″My Database″));
db.Close();
  
  向数据库中加入纪录

  这里我向大家介绍另两个数据库类:CCeDBRecord,CCeDBProp。

  创建数据库时,我们可以同时定义字段,然后设置纪录变量的各字段值,最后将记录加入到数据库中。

// Create database
   const DWORD DB_IDENT_ID = 11111;
   const WORD PROP_NAME=101,PROP_AGE=102,PROP_GENDER=103;
   CCeDBDatabase db ;
   CEOID poid;
   CCeDBProp dbprops[3] = {
   CCeDBProp(CCeDBProp::Type_String,PROP_NAME,CCeDBProp::Sort_Ascending),
   CCeDBProp(CCeDBProp::Type_UShort,PROP_AGE,CCeDBProp::Sort_Descending),
   CCeDBProp(CCeDBProp::Type_UShort,PROP_GENDER,CCeDBProp::Sort_UnknownFirst)
   };

   if(!(poid = db.Create((_T("My DB"),DB_IDENT_ID,3,dbprops)))
   return FALSE;
   if(!db.Open(poid)) return FALSE;


   // Add records
   CCeDBRecord rec;
   CCeDBProp props[3];
   props[0] = CCeDBProp(_T("LiMing"),PROP_NAME);
   props[1] = CCeDBProp((USHORT)20, PROP_AGE);
   props[2] = CCeDBProp((USHORT)'M',PROP_GENDER);
   rec.AddProps(props,3);
   if(!db.AddRecord(&rec)) return FALSE;
  
  从数据库中检索纪录
返回列表