locked
DDEX provider specialized for ODBC: Choose Data Source window not showing data source or data provider. RRS feed

  • Question

  • Visual Studio 2008 SP1
    Version 9.0.30729.1 SP

    C# .NET 3.5 SP1
    Operating System WinXP Pro SP3

    I am trying to register a DDEX provider specialized for ODBC to allow Entity Framework connectivity to Sybase ASA databases pre v11.  I have followed the instructions from the MSDN DDEX SDK documentation on Registering a DDEX Provider Specialized for ODBC, but I cannot get the new data provider to display in the Choose Data Source window.  Any pointers to where I might be going wrong would be greatly appreciated.  I have tried to debug Visual Studio with the .NET source debugging features turned on but I am having trouble getting relevant source code files to download correctly (this seems to be a commonly reported issue and I have tried all the suggested remedies).

    Here are the relevant keys in the registry:



    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}]
    @=".NET Framework Data Provider for ODBC"
    "DisplayName"="DataProvider_Odbc, SR, Microsoft.Data.ConnectionUI.Dialog, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "ShortDisplayName"="DataProvider_Odbc_Short, SR, Microsoft.Data.ConnectionUI.Dialog, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "Description"="DataProvider_Odbc_Description, SR, Microsoft.Data.ConnectionUI.Dialog, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "Technology"="{77AB9A9D-78B9-4ba7-91AC-873F5338F1D2}"
    "InvariantName"="System.Data.Odbc"
    "AssociatedSource"="{42568F9E-354A-4c76-9916-3225D8C8E750}"
    "PlatformVersion"="2.0"
    "FactoryService"="{06D0BE35-FA3A-4ef6-81B9-3EDBB68EF982}"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider]
    @=".NET Data Provider for Sybase Anywhere"
    "Codebase"="c:\\dev-svn\\Playground\\SybaseAnywhereDDEXProvider\\SybaseAnywhereDDEXProvider\\bin\\Release\\SybaseAnywhereDDEXProvider.dll"
    "AssociatedSource"="{42568F9E-354A-4c76-9916-3225D8C8E750}"
    "Description"="Provider_Description, SpeEDI.SybaseAnywhereDDEXProvider.Properties.Resources"
    "DisplayName"="Provider_DisplayName, SpeEDI.SybaseAnywhereDDEXProvider.Properties.Resources"
    "PlatformVersion"="2.0"
    "ShortDisplayName"="Provider_ShortDisplayName, SpeEDI.SybaseAnywhereDDEXProvider.Properties.Resources"
    "Technology"="{77AB9A9D-78B9-4ba7-91AC-873F5338F1D2}"
    "InvariantName"="SybaseAnywhereDDEXProvider"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataConnectionPromptDialog]
    @="SpeEDI.SybaseAnywhereDDEXProvider.SybaseAnywhereConnectionPromptDialog"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataConnectionProperties]
    @="SpeEDI.SybaseAnywhereDDEXProvider.SybaseAnywhereConnectionProperties"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataConnectionUIControl]
    @="SpeEDI.SybaseAnywhereDDEXProvider.SybaseAnywhereConnectionUIControl"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataObjectSupport]
    @="Microsoft.VisualStudio.DataTools.Providers.ODBC.OdbcDataObjectSupport, Microsoft.VisualStudio.DataTools, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "XmlResource"="SpeEDI.SybaseAnywhereDDEXProvider.SybaseAnywhereObjectSupport"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataSourceInformation]
    @="Microsoft.VisualStudio.DataTools.Providers.Odbc.OdbcDataSourceInformation, Microsoft.VisualStudio.DataTools, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider\IVsDataViewSupport]
    @="Microsoft.VisualStudio.DataTools.Providers.ODBC.OdbcDataViewSupport, Microsoft.VisualStudio.DataTools, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataConnectionPromptDialog]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataConnectionProperties]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataConnectionSupport]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataConnectionUIControl]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataObjectSupport]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\DataSourceSpecializer]
    @=""

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\SupportedObjects\IVsDataViewSupport]
    @=""


    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataSources\{42568F9E-354A-4c76-9916-3225D8C8E750}]
    @="ODBC Data Source"
    "DefaultProvider"="{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataSources\{42568F9E-354A-4c76-9916-3225D8C8E750}\SupportingProviders]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataSources\{42568F9E-354A-4c76-9916-3225D8C8E750}\SupportingProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}]
    "DisplayName"="DataSource_MicrosoftOdbcDsn, SR, Microsoft.Data.ConnectionUI.Dialog, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "Description"="DataProvider_Odbc_DataSource_Description, SR, Microsoft.Data.ConnectionUI.Dialog, Version=9.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a"
    "SpecializedProvider"="SybaseAnywhereDDEXProvider"

    And the DbProviderFactories element in my machine.config is as follows:

    <DbProviderFactories>
    <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></add>
    <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></add>
    <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></add>
    <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></add>
    <add name="SQL Anywhere 11 Data Provider" invariant="iAnywhere.Data.SQLAnywhere" description=".Net Framework Data Provider for SQL Anywhere 11" type="iAnywhere.Data.SQLAnywhere.SAFactory, iAnywhere.Data.SQLAnywhere,  Version=11.0.0.20442, Culture=neutral, PublicKeyToken=f222fc4333e0d400"></add>
    <add name="SQL Anywhere UltraLite.NET 11 Data Provider" invariant="iAnywhere.Data.UltraLite" description=".Net Framework Data Provider for SQL Anywhere UltraLite.NET 11" type="iAnywhere.Data.UltraLite.ULFactory, iAnywhere.Data.UltraLite,  Version=11.0.0.2044, Culture=neutral, PublicKeyToken=ff11483eb5a8c1a5"></add>
    <add name="SQL Anywhere Data Provider" invariant="iAnywhere.Data.AsaClient" description=".Net Framework Data Provider for SQL Anywhere" type="iAnywhere.Data.AsaClient.AsaFactory, iAnywhere.Data.AsaClient,  Version=9.0.2.3508, Culture=neutral, PublicKeyToken=f222fc4333e0d400"></add>
    <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></add>
    </DbProviderFactories>


    Tuesday, May 5, 2009 10:47 PM

Answers

  • Hi Andrew,

    From the MSDN documentation, the key value is the unqualified name of the DLL that implements the ODBC driver, or if this is not possible, the name of the driver that would appear as DriverName in the connection string as “DRIVER={DriverName}”.
    The sample key is HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\MYODBC32.DLL.

    And yours key is [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\DataProviders\{C3D4F4CE-2C48-4381-B4D6-34FA50C51C86}\Specialization\SybaseAnywhereDDEXProvider]. I am not sure if your name is correct.

    I highly suggest you to use ProcessMonitor tool to monitor the file system and registry and check if Visual Studio has found the specifed DLL.

    Hope this helps,
    Nancy
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    • Marked as answer by Nancy Shao Wednesday, June 3, 2009 2:33 AM
    Wednesday, May 13, 2009 3:33 AM