上周刚完成一个PC上的ACCESS数据库,比较简单,但放到PPC上就难多了。经过3天的努力,终于找出了在EVC4.0下使用ADOCE3.1访问Pocket Access数据库的方法。跟大家分享一下经验。 本人不是计算机专业,如果说法有误,不要PK我,欢迎大家和我交流,其中必有疏漏之处,也请大家及时指正。
基本步骤如下: 1.将Adoce PPC_ARM文件夹中"需要使用的DLL"中的文件复制到设备的Windows文件夹下; 2.数据库程序中在使用VOADO之前注册这些DLL CreateProcess(_T("/RegSvrCe",_T("/s /Windows//adoce31.dll",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe",_T("/s /Windows//Adoxce31.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//Adocedb31.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//Adoceoledb31.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//Msdaer.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//Msdaeren.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//msdadc.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); CreateProcess(_T("/RegSvrCe"),_T("/s /Windows//msdaosp.dll"),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); 3.将VoAdo中所有文件添加到你的工程中,将其中ado??30.h都改为ado??31.h; 4.将vorecordset.h文件中此处改为 BOOL CVORecordset::g_Init = FALSE; CLSID CVORecordset::g_ClsID; TCHAR* CVORecordset::g_ProgID = TEXT("ADOCE.Recordset.3.1"); 原来第3句为TCHAR* CVORecordset::g_ProgID = TEXT("ADOCE.Recordset.3.0"); 5.将Include文件夹中的adoce31.h和adocec31.h添加到你的工程中; 6.将regsvrce.exe复制到设备中和你的数据库程序同一个文件夹下(该文件在Program Files/Microsoft eMbedded C++ 4.0/EVC/WCE400/TARGET/ARMV4文件夹下)。
说明:以上文件的来源 1.DLL文件来自微软的adocepbzip安装包,在这个文件夹下:adocepb/setup/Data Access 3.1/Program Files/DataAccess31/DEVICE/ARM/SA1100/CE/RETAIL 此安装包在这里下载http://www.microsoft.com/downloa ... US%2fadocepbzip.exe 2.VoAdo是VOS公司做的一个使用比较方便的ADOCONNECTION和ADORECOEDSET类,下载下来的需要修改(见3)才能使用,本压缩包的文件已经做了修改.在这里下载http://www.voscorp.com/products/ ... ile/voado/voado.zip 3.adoce31.h和adocec31.h文件的生成: 在微软的adocepbzip安装包的adocepb/setup/Data Access 3.1/Program Files/DataAccess31/INCLUDE目录下,有这样两个文件 adoce31.idl和adocec31.idl,在命令行中执行midl adoce31.idl和midl adocec31.idl即可生成.h文件.
感谢http://blog.vckbase.com/zuilang/archive/2005/09/28/12600.html文章《在evc中使用ADOCE的前期准备》中给出的宝贵信息!
做完这些工作,就可以在程序中使用CVORecordSet和CVOConnection来访问Access数据库了,具体请见我的例程——电话号码查询程序。 | | |