none
SQL Server Compact DLLs not registered?

    Question

  • Hello,

    I'm trying to develop a application for a SPARK board. It has a ARMv4I processor and comes with Windows Embedded CE 6.0 and a SDK for Visual Studio 2005.
    The application is being developed with C++ and uses the RDA (Remote Data Access) object to connect to a remote SQL database. The code which creates the object is as follows:
        ISSCERDA * ceRDA;
    
        HRESULT r;
    
        r = CoInitialize(NULL);
        if (r != S_OK) error("Could not initialize COM", r);
    
        r = CoCreateInstance(CLSID_RemoteDataAccess, NULL, CLSCTX_INPROC_SERVER, IID_ISSCERDA, (LPVOID *)&ceRDA);
        if (r != S_OK) error("Could not create the RDA object", r);
    The CoCreateInstance call fails though. The error code is 0x80040155 (interface not registered).
    I'm working with a Windows Embedded CE 6.0 image built with Platform Builder SP1. The catalog item 'SQL Compact' is added to the build and in fact all the dlls are placed in the Windows folder and the classes are correctly registered (with their keys added to the registry). The interface keys however are missing.
    I've also tried manually installing the three SQL Server Compact .cab files, instead of loading the CE image with the SQL Server Compact component. The result is the same.

    Any explaination about why the interfaces are not registered? And if there's no other option, how could I register them manually?

    Thanks.


    • Edited by CPastor Thursday, June 25, 2009 10:18 PM
    Thursday, June 25, 2009 8:15 PM

All replies

  • Have you installed all the 3 cabs for SQL Compact


    1. Core Cab -             sqlce.[Platform].[processor].CAB
    2. Development Cab - sqlce.dev.ENU.[Platform].[processor].CAB
    3. Replication Cab -     sqlce.repl.[Platform].[processor].CAB (Oledb interface is register by this cab)

    Please try installing all the cabs and let me know.

    Thanks & regards,
    Devesh Anand
    Please click Yes, if my post was helpful.
    Friday, June 26, 2009 6:14 AM
    Answerer
  • Yes. I've tried installing them in that order. The version available is however the Windows CE 5.0 version, but as stated in msdn they work for Windows Embedded CE 6.0 (http://www.microsoft.com/downloads/details.aspx?familyid=FCE9ABBF-F807-45D6-A457-AB5615001C8F&displaylang=en). No interfaces are being registered. I wonder if the .cab files attemp to call regsvrce which no longer exists in Windows CE 6.0 or something like that.

    Loading manually the DLL and creating the object myself might be the simplest alternative.
    Friday, June 26, 2009 3:57 PM
  • Please let me know which version of SQL Compact are you using?

    I would like you to do the following:

    1. Contact customer support (they are commited to help you): http://support.microsoft.com/
    2. Contact the team (you may or may not get help): http://blogs.msdn.com/sqlservercompact/contact.aspx

    Please provide all the information that you have.

    This seems to be a bug to me. Please do not miss to mail the team.

    Thanks & Regards,
    Devesh Anand
    Please click Yes, if my post was helpful.
    Friday, June 26, 2009 4:04 PM
    Answerer
  • I'm using SQL Server Compact v3.5 since it's the only version which installs on Windows Embedded CE 6.0.

    Thanks anyway, I'll contact the customer support and the team.
    Friday, June 26, 2009 4:13 PM
  • Please read the following thread:

    http://social.msdn.microsoft.com/Forums/en-US/windowsmobiledev/thread/3f056507-3f2a-470d-bf51-7a8230f56f47

    Thanks & regards,
    Devesh Anand
    Please click Yes, if my post was helpful.
    Friday, June 26, 2009 4:19 PM
    Answerer
  • Following that example I've made my app load sqlceoledb35.dll and call the DllRegisterServer function. However I'm still getting the interface not registered error.

    EDIT: I've contacted the development team. I cannot contact the microsoft support because it only offers support for SQL Server Compact with payment.
    EDIT2: The RDA interface ID that appears on the headers I'm using is 4f04f79d-1ff1-4dcd-802b-3d51b9356c14. Could anyone check if that's right for SQL Compact 3.5 SP1?
    • Edited by CPastor Friday, June 26, 2009 6:19 PM
    Friday, June 26, 2009 5:22 PM
  • Hi,

    Customer care will be charging nominal 99$  (US Dollars). In case this a bug and Customer care agrees to provide a Hotfix, your payment will be refunded. Please send a mail to them and know the details about the refund. 

    PS: Let me know your email adress so that we have a detailed conversation.

    Thanks & Regards, 
    Devesh Anand  
    Please click Yes, if my post was helpful.
    Saturday, June 27, 2009 2:19 PM
    Answerer
  • Hey CPastor,

       If your Windows CE Image or Windows Mobile Image on the device is custom made, make sure you have oleauto.dll ..etc. dll included in the image.  Please visit the following blog post for few more details. 

    http://blogs.msdn.com/sqlservercompact/archive/2007/10/26/troubleshooting-can-t-load-sqlce-dll.aspx

    Thanks,
    Laxmi

     


    Please hit "Yes", if my post answered your question(s). All postings are as-is and confer no rights.
    Monday, June 29, 2009 5:58 AM
  • Hi Laxmi,

    The component from platform builder COM\CoCreateGuid functionality was automatically included when I selected SQL Compact. Also was DCOM\COM Storage. The only one that was missing is COM\COM Storage. Including it however makes no difference.
    My problem is not loading the DLL. The DLL loads fine even when manually using LoadLibrary. But then when I try to create the COM Object it says that the interface is not registered.
    Monday, June 29, 2009 4:09 PM
  • Hi,

    Please let me know the version of the WM 6.0. Please provide all the details about the OS on the device like:

    1. Which all components do you include in the platform builder ? etc.



    Thanks & regards,
    Devesh Anand
    Please click Yes, if my post was helpful.
    Monday, June 29, 2009 4:26 PM
    Answerer
  • I installed in order:

    VStudio 2005
    VStudio 2005 SP1
    Windows Embedded CE 6.0
    Windows Embedded CE 6.0 SP1
    Windows Embedded CE 6.0 R2
    Cumulative Product Update Rollup Package for Windows Embedded CE 6.0 Platform Builder

    I'm not really sure about how to check the windows version.
    I'm using a BSP supplied by the board manufacturer which includes 3 default OS image projects. I've just modified one of them to include SQL Compact. The list of components included are (from the .pbxml file):

    MS:sysgen_auth
    MS:sysgen_auth_ntlm
    MS:sysgen_auth_schannel
    MS:sysgen_certs
    MS:sysgen_cmd
    MS:sysgen_crypto
    MS:sysgen_iabase
    MS:sysgen_msxml_dom
    MS:sysgen_netutils
    MS:sysgen_notify
    MS:sysgen_pm
    MS:sysgen_redir
    MS:sysgen_shell
    MS:sysgen_standardshell
    MS:sysgen_touch
    MS:sysgen_upnp_device
    MS:sysgen_dotnetv2
    MS:sysgen_dotnetv2_support
    MS:sysgen_ethernet
    MS:sysgen_sd_memory
    MS:sysgen_fmtres
    MS:sysgen_dcom
    MS:sysgen_dcom_stg
    MS:sysgen_menu_overlap
    MS:sysgen_menu_tap_ui
    MS:sysgen_gdi_alphablend
    MS:sysgen_ie
    MS:sysgen_iesample
    MS:sysgen_ie_msxml_mimeviewer
    MS:sysgen_msxml_data_islands
    MS:sysgen_msxml_sax
    MS:sysgen_msxml_http
    MS:sysgen_msxml_error_strings
    MS:sysgen_ie_imgutil
    MS:sysgen_ie_pngfilt
    MS:sysgen_ie_xptheme
    MS:sysgen_jscript_encode
    MS:sysgen_commctrl_animate
    MS:sysgen_imaging_ico_decode
    MS:sysgen_imaging_tiff_decode
    MS:sysgen_imaging_tiff_encode
    MS:sysgen_msmq
    MS:sysgen_soaptk_client
    MS:sysgen_fsregram
    MS:sysgen_audio_acm
    MS:sysgen_acm_gsm610
    MS:sysgen_acm_msfilter
    MS:sysgen_tfat
    MS:sysgen_atadisk
    MS:sysgen_storemgr_cpl
    MS:sysgen_softkb
    MS:sysgen_largekb
    MS:sysgen_msim
    MS:sysgen_ppp
    MS:sysgen_pppoe
    MS:sysgen_l2tp
    MS:sysgen_pptp
    MS:sysgen_modem
    MS:bsp_nic_ne2000_pcmcia
    MS:sysgen_obex_client
    MS:sysgen_asp
    MS:sysgen_isapi_config
    MS:sysgen_httpd_webdav
    MS:sysgen_telnetd
    MS:sysgen_ftpd
    MS:sysgen_ppp_server
    MS:sysgen_gateway
    MS:sysgen_asp_jscript
    MS:sysgen_asp_vbscript
    MS:sysgen_ie_jscript
    MS:sysgen_ie_vbscript
    MS:sysgen_vbscript_msgbox
    MS:sysgen_ie_dxtrans
    MS:sysgen_as_base
    MS:sysgen_as_file
    MS:sysgen_wceload
    MS:sysgen_console
    MS:sysgen_pword
    MS:sysgen_usdk
    MS:sysgen_usbfn_storage
    MS:sysgen_usbfn_ethernet
    MS:sysgen_usbfn_serial
    MS:sysgen_usb_hid
    MS:sysgen_usb_hid_clients
    MS:sysgen_usb_printer
    MS:sysgen_eth_usb_host
    MS:sysgen_usb_storage
    MS:sysgen_smartcard
    MS:sysgen_crypto_scwcsp
    MS:sysgen_bth_hid_keyboard
    MS:sysgen_bth_hid_mouse
    MS:sysgen_bth_ag
    MS:sysgen_bth_gateway
    MS:sysgen_bth_pan
    MS:sysgen_bth_modem
    MS:sysgen_bth_usb_only
    MS:sysgen_bth
    MS:sysgen_eap
    MS:sysgen_eth_80211
    MS:sysgen_enroll
    MS:sysgen_streamav
    MS:sysgen_streamaudio
    MS:sysgen_localaudio
    MS:sysgen_dshow_mpega
    MS:sysgen_dshow_mpegv
    MS:sysgen_dshow_msrle
    MS:sysgen_dshow_avi
    MS:sysgen_dshow_msadpcm
    MS:sysgen_rdp
    MS:sysgen_rdp_ui
    MS:sysgen_rdp_audio
    MS:sysgen_multiui
    MS:sysgen_cursor
    MS:sysgen_usa_hwx
    MS:sysgen_sdbus2
    MS:sysgen_sqlcompact
    MS:sysgen_ole_stg

    There's a newer version of the BSP. I'm not sure whether that might be related to the problem or not.
    Monday, June 29, 2009 5:10 PM
  • I am having the same problem with Windows Embedded CE 6.0 R3. Is there a solution for this?

    Fixed: I just had to install the SQL Server Compact 3.5 SP1 for Devices. I could not imagine it was not included with Visual Studio 2008 SP 1...
    Saturday, October 17, 2009 2:40 PM