wince中如何支持sqlce3.0

时间:2022-01-05 17:40:15

1.首先下载资源包并安装
http://download.microsoft.com/download/2/4/8/2482e95d-00fd-4374-bd15-57a8c4c34444/SqlMobile30DeviceSdkENU.msi

中文的不记得哪里可以下了。

以下我假设默认安装在C盘。

2.查找需要的dll
按照CPU可以找到你需要的DLL,我自己的路径如下
C:/Program Files/Microsoft SQL Server 2005 Mobile Edition/Device/Mobile/v3.0/wce500/armv4i

将里面7个dll拷贝放到你的开发包里面去,最好建个目录放好。这只是为了方便处理,不一定要这样做。

3.将dll打包到wince系统里面

在platform.bib添加dll的拷贝,注意路径,里面的路径是在我自己的平台上,你要根据你自己的情况而定。

  1. FILES
  2. ;  Name              Path                                    Memory Type
  3. ;  --------------    ----------------------------------  -----------
  4.  sqlceca30.dll             $(_TARGETPLATROOT)/SQLMOBILE/sqlceca30.dll              NK  H  
  5.  sqlcecompact30.dll   $(_TARGETPLATROOT)/SQLMOBILE/sqlcecompact30.dll   NK  H  
  6.  ;sqlceer30CN.dll       $(_TARGETPLATROOT)/SQLMOBILE/sqlceer30CN.dll        NK  H  
  7.  sqlceer30EN.dll        $(_TARGETPLATROOT)/SQLMOBILE/sqlceer30EN.dll         NK  H  
  8.  sqlceme30.dll            $(_TARGETPLATROOT)/SQLMOBILE/sqlceme30.dll            NK  H  
  9.  sqlceoledb30.dll        $(_TARGETPLATROOT)/SQLMOBILE/sqlceoledb30.dll        NK  H  
  10.  sqlceqp30.dll            $(_TARGETPLATROOT)/SQLMOBILE/sqlceqp30.dll            NK  U  
  11.  sqlcese30.dll             $(_TARGETPLATROOT)/SQLMOBILE/sqlcese30.dll             NK  H 

如果你有中文的可以放sqlceer30CN.dll进入。我现在中文的只剩下dll,没有安装包了。

4.添加注册表支持

在platform.reg添加下面信息

 

  1. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}]
  2. @="Microsoft.SQLSERVER.MOBILE.OLEDB.3.0"
  3. "OLEDB_SERVICES"=dword:fffffffe
  4. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/ExtendedErrors]
  5. @="Microsoft SQL Server 2005 Mobile Edition OLE DB Provider for Windows Error Lookup"
  6. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/ExtendedErrors/{D9007E8B-A33A-4429-B0FC-7FC211DB8110}]
  7. @="Microsoft SQL Server 2005 Mobile Edition OLE DB Provider for WindowsError Lookup"
  8. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/InprocServer32]
  9. @="//Windows//sqlceoledb30.dll"
  10. "ThreadingModel"="Both"
  11. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/OLE DB Provider]
  12. @="Microsoft SQL Server 2005 Mobile Edition OLE DB 
  13. P000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000rovider for Windows"
  14. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/ProgID]
  15. @="Microsoft.SQLSERVER.MOBILE.OLEDB.3.0"
  16. [HKEY_CLASSES_ROOT/CLSID/{32CE2952-2585-49a6-AEFF-1732076C2945}/VersionIndependentProgID]
  17. @="Microsoft.SQLSERVER.MOBILE.OLEDB"

5.编程
C:/Program Files/Microsoft SQL Server 2005 Mobile Edition/Samples/NorthwindOleDb目录下有个例子:NorthwindOleDb.zip
自己研究吧。

6.注意问题
小心Unicode,数据库字段都是Unicode,所在设置长度记得X2,不然不会有错误,只是读不出来。