在EVC(Embedded Visual C++)中使用数据库主要涉及到Windows CE平台上的程序开发,特别是针对掌上电脑的应用。由于资源有限,Windows CE通常配备的是一个轻量级的数据库引擎。以下将详细介绍如何在EVC中操作数据库,主要包括数据库的创建、打开、读取、删除、插入以及关闭。 1. 创建数据库 在EVC中,可以使用`CCeDBDatabase`类来创建数据库。首先定义数据库的识别码(DB_IDENT)、数据库名称(DB_NAME)以及记录属性的识别码(PROP_CODE)。然后通过`Create`函数创建数据库,如果数据库不存在,则会创建新的数据库。例如: ```cpp const DWORD DB_IDENT = 12347; const WCHAR DB_NAME[] = L"code"; const WORD PROP_CODE = 102; CCeDBDatabase m_db; CEOID poid; BOOL b; CCeDBProp sort[1] = {CCeDBProp(CCeDBProp::Type_String, PROP_CODE, CCeDBProp::Sort_Ascending)}; if (!(b = CCeDBDatabase::Exists(DB_NAME))) { if (!(poid = m_db.Create(DB_NAME, DB_IDENT, 1, sort))) { return FALSE; } } ``` 2. 打开数据库 使用`Open`函数打开已存在的数据库。如果成功,将返回`TRUE`,并可以设置标志`m_bIsConnect`表示连接状态。 ```cpp if (!(b = m_db.Open(DB_NAME))) { return FALSE; } m_bIsConnect = TRUE; ``` 3. 读取数据 使用`CCeDBRecord`类来代表数据库中的记录。通过`GetNumRecords`获取记录总数,然后遍历所有记录,使用`ReadCurrRecord`读取当前记录,并通过`GetPropFromIdent`获取指定属性的值。 ```cpp void CEP_PPDlg::ReadDB() { CCeDBRecord rs; CString strCode; int num = (int)m_db.GetNumRecords(); for (int i = 0; i < num; i++) { m_db.ReadCurrRecord(&rs); strCode = rs.GetPropFromIdent(PROP_CODE)->GetString(); m_list.AddString(strCode); } } ``` 4. 删除数据 遍历所有记录,使用`SeekFirst`移动到第一条记录,然后循环调用`DeleteCurrRecord`删除当前记录。 ```cpp void CEP_PPDlg::DeleteDB() { int num = (int)m_db.GetNumRecords(); for (int i = 0; i < num; i++) { m_db.SeekFirst(); m_db.DeleteCurrRecord(); } } ``` 5. 插入数据 创建一个新的`CCeDBRecord`对象,添加属性(使用`CCeDBProp`),然后通过`AddRecord`将其插入数据库。 ```cpp void CEP_PPDlg::InsertDB(int i) { WCHAR wcCode[15]; CCeDBProp props[1]; CString strCode; CCeDBRecord *rs; m_list.GetText(i, strCode); strCode.TrimRight(); ::swprintf(wcCode, L"%s", strCode); props[0] = CCeDBProp(wcCode, PROP_CODE); rs = new CCeDBRecord; rs->AddProps(props, 1); m_db.AddRecord(rs); delete rs; } ``` 6. 关闭数据库 使用`Close`函数关闭数据库连接。 ```cpp BOOL CEP_PPDlg::CloseDB() { return m_db.Close(); } ``` 总结: 在EVC中,数据库操作主要通过`CCeDBDatabase`、`CCeDBRecord`和`CCeDBProp`这三个类来完成。`CCeDBDatabase`用于管理数据库,`CCeDBRecord`表示记录,而`CCeDBProp`用于处理记录中的属性。值得注意的是,Windows CE数据库不支持传统的字段(Field)概念,而是直接使用属性来组织数据。这些基本操作构成了在EVC中处理数据库的基础,开发者可以根据需要扩展这些功能以适应更复杂的数据库应用场景。
- melo-152013-05-29资料太简单,只有大概,而且没有具体应用实例
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助