mfc mysql操作_MFC 数据库操作

本文介绍了在Windows CE上使用MFC进行数据库操作的方法,包括创建、打开、删除数据库,向数据库添加记录,检索记录,按条件查找记录,删除记录以及修改记录的详细步骤。开发工具为VC 5.0和WindowsCE Toolkit for VC 5.0。
摘要由CSDN通过智能技术生成

宋鹏 阅读(1097) 评论(0)  编辑 收藏 引用 所属分类: 数据库

58466994c52932229c0d7cd8b1b29e2f.png

随着掌上电脑的迅速崛起,微软推出的运行在掌上电脑上的操作系统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")))

{

//如果数据库不存在,就创建它

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;

从数据库中检索纪录

我们可以通过调用CCeDBDatabase::GetNumRecords()获取纪录数。通过CCeDBDatabase::GetCurrRecord()获取每个纪录的指针。

BOOL bPrev = pdb-〉m_bAutoSeekNext;

pdb-〉m_bAutoSeekNext = TRUE;

pdb-〉SeekFirst();

while(pdb-〉ReadCurrRecord(&rec))

MyPrintRecord(&rec);//处理数据(显示记录)

pdb-〉m_bAutoSeekNext = bPrev;

通过调用CCeDBRecord::GetPropFromIdent()获取每个字段值。

pPropName=prec-〉GetPropFromIdent(PROP_NAME);

LPWSTR strName=pPropName-〉GetString();

除了可以遍历数据库纪录外,还可按条件查找纪录,如:查找具有指定属性的记录。

CCeDBProp prop;

....//设置待查找纪录的属性

db.SeekFirstEqual(&prop);

从数据库中删除纪录

//先查找指定纪录

db.DeleteCurrRecord();

修改数据库中纪录

CCeDBRecord rec;

....//查找待修改的记录

....//修改记录的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值