在移动设备上实现或已经实现MS SQL Server CE v1.0/2.0的开发者们,可能会对如何编写此类应用程序感到困惑。本文旨在为那些希望了解更多关于MS SQL Server CE数据库应用开发的读者提供帮助。通过本文,将能够访问安装在PocketPC设备上的MS SQL Server CE数据库,并使用自己的宝贵信息,使应用程序更加强大,达到企业级水平。
MS SQL Server CE提供了更好的性能,并支持熟悉的SQL数据定义和管理语言(DDM/DDL),这意味着它将加速应用程序/产品开发周期。
要利用各种现成的功能,必须具备一定的SQL DDM和DDL知识。因为需要编写自己的SQL语句来创建表、添加/更新/删除任何表中的记录。
在查看代码之前,需要记住MS SQL Server CE在任何时候只支持对任何数据库的单次连接。
查看SqlSvrCE.cpp
和.h
文件,将得到所有现成的函数,最终将从自己的WIN32API或MFC应用程序中调用这些函数,这取决于选择。
以下是将需要记住并在整个数据库应用程序中调用的11个函数:
需要注意的是,ProcessRowset
函数完全定制以适应附带的示例应用程序的要求,它将显示所有检索到的记录和列标题到提供的listview控件中。因此,需要修改ProcessRowset
函数,甚至编写自己的ProcessRowset
函数来解释从MS SQL Server CE数据库中读取的数据。
所有必要的注释都在源文件中,有了这些注释,相信当开始修改或编写自己的ProcessRowset
函数时,生活会变得轻松。
例如,如果想在\Windows
文件夹中创建一个名为MyDb.sdf
的数据库,只需要调用CreateDB
如下:
_tcscpy(szDBName, TEXT("\\windows\\MyDb.sdf"));
hr = CreateDB(szDBName);
if (!FAILED(hr))
{
// 显示结果消息文本。
MessageBox(hWnd, TEXT("数据库成功创建。"), TEXT("信息"), MB_OK);
}
else
{
// 获取OLE DB错误消息
GetErrorMessage(szErrMessage, wcslen(szErrMessage));
if (E_OUTOFMEMORY == hr)
{
// 组合结果消息
wsprintf(szErrMessage, TEXT("(0x%x) 内存不足!"), hr);
}
// 显示结果消息文本。
MessageBox(hWnd, szErrMessage, TEXT("错误"), MB_ICONSTOP | MB_OK);
}
可能会注意到示例程序的用户界面不适合MS PocketPC(240x320)屏幕。这是因为示例应用程序是基于Windows CE .NET平台开发的,只是创建了一个新的PocketPC应用程序,并直接复制了所有相关的cpp
/h
文件。希望不介意。
基于之前的源文件,实现了总共6个新函数,这些6个函数是: