在EVC3.0中使用数据库
2008-04-19 20:27:54 来源:WEB开发网Embedded Visual C++3.0是Windows CE上程序的VC开发工具,主要应用在掌上电脑上。
由于掌上电脑上容量较小,所以只有一个简单的数据库引擎。以下就是该数据库引擎的使用方法,仅供大家参考。
一、 定义一些常数:
定义数据的识别码、数据库名和记录属性的识别码。在这里已经没有字段这个东西了。
const DWORD DB_IDENT=12347;
const WCHAR DB_NAME[]=L"code";
const WORD PROP_CODE=102;
二、 定义数据库变量
CCeDBDatabase m_db;
三、打开数据库
BOOL CEP_PPDlg::OpenDB()
{
CEOID poid;
BOOL b;
CCeDBProp sort[1]={
CCeDBProp(CCeDBProp::Type_String,PROP_CODE,CCeDBProp::Sort_Ascending)
}; //排序属性
if(!(b=CCeDBDatabase::Exists (DB_NAME))) //判断数据库是否存在
{
//create database
if(!(poid=m_db.Create (DB_NAME,DB_IDENT,1,sort)))
return FALSE;
}
if(!(b=m_db.Open (DB_NAME)))
return FALSE;
m_bIsConnect=TRUE;
return TRUE;
}
四、读数据
void CEP_PPDlg::ReadDB()
五、删除数据
{
CCeDBRecord rs;
CString strCode; //value of code
int num=0;
num=(int)m_db.GetNumRecords (); //记录条数
for(int i=0;i<num;i++)
{
//get current record
m_db.ReadCurrRecord (&rs); //读取当前记录
strCode=rs.GetPropFromIdent (PROP_CODE)->GetString ();
m_list.AddString (strCode);
}
}void CEP_PPDlg::DeleteDB()
六、插入数据
{
int num=0;
num=(int)m_db.GetNumRecords ();
for(int i=0;i<num;i++)
{
m_db.SeekFirst ();
m_db.DeleteCurrRecord ();
}
}void CEP_PPDlg::InsertDB(int i)
{
WCHAR wcCode[15];
CCeDBProp props[1];
CString strCode;
CCeDBRecord * rs;
rs=new CCeDBRecord;
m_list.GetText (i,strCode);
strCode.TrimRight ();
::swprintf(wcCode,L"%s",strCode);
props[0]=CCeDBProp(wcCode,PROP_CODE);
rs->AddProps (props,1);
m_db.AddRecord (rs);
delete rs;
}
七、关闭数据库
BOOL CEP_PPDlg::CloseDB()
{
return m_db.Close ();
}
说明:
1、具体内容见程序。
2、数据库主要用到三个类:CCeDBDatabase、CCeDBRecord、CCeDBProp
3、数据库包括若干记录(record),每个记录包括若干属性(Property),没有字段的定义了。
赞助商链接