在移动计算领域,数据同步是一个常见的需求。Windows CE设备,作为早期的移动操作系统,虽然现在已经不如Android和iOS流行,但在当时它支持了许多企业级应用。本文将介绍如何使用Visual Basic和C++在Windows CE设备上进行数据库同步。
在Windows CE设备上进行数据库同步,通常涉及到将MS Access数据库(.mdb文件)传输和/或同步到Windows CE设备上(.cdb文件)。这些功能最初是为Visual Basic设计的,但也可以被C++项目调用,通过定位DLL中的函数实现。
原始代码由Nathan Lewis编写,可以通过以下链接访问:。为了便于在MFC项目中使用,对函数进行了重构,将其组织成一个类,并使用单例模式确保类只实例化一次,DLL只加载一次。
要在项目中使用这个类,只需将其包含在项目中。要获取CAdoFiltr类的实例,必须使用getInstance()函数,不能使用受保护的构造函数。
CAdoFiltr* pAdoFiltr = CAdoFiltr::getInstance();
对于DesktopToDevice和DeviceToDesktop函数的参数,可以参考MSDN文档。例如:
HRESULT hr = pAdoFiltr->DesktopToDevice(
"c:\\database\\test.mdb",
"tblTest..!tblTest2..",
false,
true,
"\\My Documents\\test.cdb"
);
if (hr != S_OK) {
// 传输失败
}
在Windows NT 4 Workstation上使用ActiveSync 3.5和运行PocketPC 2000的iPAQ 3650进行了代码测试。
文档文件是通过doxygen生成的,它解释了代码注释块中奇怪的标签。
关于ADOCE和DesktopToDevice以及DeviceToDesktop函数的更多信息,请参考MSDN。
关于Nathan Lewis的原始贡献,请访问。