Linked Server in different version of ODBC driver

I have a ODBC 2.0 driver for a proprietary database. When I changed the driver to 3.0, I receive -
Msg 7355, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" for linked server "DG" supplied inconsistent metadata for a column. The name was changed at execution time.
DG4ODBC from Oracle works fine with the driver so is the ODBC tool that Microsoft provides.

Hi,
Odbc32.dll - ODBC Driver Manager
Odbc32gt.dll - ODBC Driver Generic Thunking
Odbcad32.exe - ODBC Administrator
Odbcconf.dll - ODBC Driver Configuration Program
Odbcconf.exe - ODBC Driver Configuration Program
Odbcconf.rsp - ODBC Driver Configuration File
Odbccp32.cpl - ODBC Control Panel
Odbccp32.dll - ODBC Installer
Odbccr32.dll - ODBC Cursor Library
Odbccu32.dll - ODBC Cursor Library
Odbcint.dll - ODBC Resources
the above libraries are supporting...
Please go through this link "http://support.microsoft.com/kb/313008/en-us"
This posting is provided "AS IS" with no warranties and confers no rights! Always test ANY suggestion in a test environment before implementing! http://sesaitech.blogspot.in/

Similar Messages

  • Which version of ODBC Driver supports DSN-less Connection in JAVA

    hai,
    Which version of ODBC Driver supports DSN-less Connection in JAVA.
    -raja

    hai,
    Pleae help in this regard.
    I am using a DSN-less connection to conect to
    Access using JDBC. But it is not working. It is throwing
    Data Source Name too long exception.
    I think the problem is with ODBC version.
    Let me clear about this.
    Thanks in Advance.
    -raja

  • Database link Oracle to MySql Error [Microsoft][ODBC Driver Manager]

    Dear all:
    I need your help, I want to access mysql database from oracle 11g r2. When I try to connect mysql database from oracle database I'm getting the error shown below, kindly help your help will be appreciated, thanks in advance
    When I excute:
    select * from test1@mysqltest;
    [ERROR]
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified {IM002}
    ORA-02063: preceding 2 lines from THAONT1.MYSQL
    28500. 00000 -  "connection from ORACLE to a non-Oracle system returned this message:"
    *Cause:    The cause is explained in the forwarded message.
    *Action:   See the non-Oracle system's documentation of the forwarded message.
    My config
    oracle db:11.2.0.3 enterprise edition
    os:win 7 64 bits
    mysql connector odbc:64 bit
    mysql db:5.1.19
    ODBC Config
    LISTENER.ORA:
    =============
    # listener.ora Network Configuration File: D:\app\THAONTSE90151\product\11.2.0\dbhome_3\NETWORK\ADMIN\listener.ora
    # Generated by Oracle configuration tools.
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\app\THAONTSE90151\product\11.2.0\dbhome_3)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:D:\app\THAONTSE90151\product\11.2.0\dbhome_3\bin\oraclr11.dll")
        (SID_DESC =
          (SID_NAME = tst)
          (ORACLE_HOME = D:\app\THAONTSE90151\product\11.2.0\dbhome_3)
          (PROGRAM = dg4odbc)
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.12.1.58)(PORT = 1521))
    ADR_BASE_LISTENER = D:\app\THAONTSE90151
    TNSNAMES.ORA:
    ================
    TSTLINK =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.12.1.58)(PORT = 1521))
        (CONNECT_DATA =
          (SID = tst)
        (HS = OK)
    inittst.ora($ORACLE_HOME/hs/admin)
    ========================
    # This is a sample agent init file that contains the HS parameters that are
    # needed for the Database Gateway for ODBC
    # HS init parameters
    HS_FDS_CONNECT_INFO = testmysql
    HS_FDS_TRACE_LEVEL = off
    # Environment variables required for the non-Oracle system
    #set ODBCINI=D:\ODBC.INI
    dblink created from oracle to mysql:
    ==========================
    SQL> create public database link mysqltest
    connect to thaont identified by abc123 using 'TSTLINK';
    SQL>select * from test1@mysqltest;
    [ERROR]
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified {IM002}
    ORA-02063: preceding 2 lines from THAONT1.MYSQL
    28500. 00000 -  "connection from ORACLE to a non-Oracle system returned this message:"
    *Cause:    The cause is explained in the forwarded message.
    *Action:   See the non-Oracle system's documentation of the forwarded message.
    kindly help.
    thanks & regards.

    The error message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified {IM002}" is self explainind - DG4ODBC is not able to find the ODBC DSN you created.
    In your gateway init file you configured the DSN: HS_FDS_CONNECT_INFO = testmysql
    And according to the Windows ODBC Admin screenshot you created a DSN called testmysql - unfortunately you created it as a USER DSN. But DG4ODBC needs a SYSTEM DSN. The reasin why it needs a system DSN is that by default the Oracle listener is running in the local system account. So when you create an ODBC USER DSN it can be access by the user who created it, but nobody else can use it - also not the local system account which is serving the Oracle listener. So you need to create a system DSN that every user on this machine can use the DSN (including the local system account) .
    - Klaus

  • How to run 2 different versions of thin driver

    We are about to deploy our app that is using CMP 2.0 entity beans on WLS 7.0 and it requires an older version of the oracle thin driver because of known bugs in the driver. The problem is there are multiple applications on our staging server and we don't want to effect them by changing the version of classes.zip in WL_HOME\server\lib\classes12.zip. Any thoughts? Could we just create a new domain for the new application and alter the classpath in the start script to find a local copy of classes.zip?

    Hi Mike!
    You are on right track Mike. You can create new Domain, deploy application there and use the required classes12.zip file by pointing to it first in the weblogic classpath. It has to be in seperate JVM though(different console) to take effect of another classes12.zip.
    Thanks,
    Mitesh
    Mike Stahl wrote:
    We are about to deploy our app that is using CMP 2.0 entity beans on WLS 7.0 and it requires an older version of the oracle thin driver because of known bugs in the driver. The problem is there are multiple applications on our staging server and we don't want to effect them by changing the version of classes.zip in WL_HOME\server\lib\classes12.zip. Any thoughts? Could we just create a new domain for the new application and alter the classpath in the start script to find a local copy of classes.zip?

  • BPC client and server in different versions

    Hi all,
    Is it possible to have BPC 7.0 as server and BPC 7.5 as client? Is it compatible?
    Thanks,
    Thiago.

    Hi Perin,
    sorry but the answer is no. You must have not only the same version but also the same sp or when you try connect you will receive an error.
    Regards
         Roberto

  • Linked Server [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

    Hi  I have SQL2012 installed on my local machine and have also installed MySQL 5.6.23 installed with a test database.
    I also have my SQL connector installed and MYSQL ODBC Driver 3.51.   
    Which happily connects to the Mysqldb.
    The Datasource Name : mySQL conn
    TCP/IP Server : localhost and Port :3306
    User root
    with pwd
    On the SQL side I have used the following
    EXEC master.dbo.sp_addlinkedserver
      @server = N'MYSQLSRV',
      @srvproduct=N'mySQL conn',
      @provider=N'MSDASQL',
      @datasrc=N'mySQL conn'
    However when I try to selet using open query
    SELECT * FROM OPENQUERY ( [MYSQLSRV], 'SELECT * FROM students' )
    it comes back with
    OLE DB provider "MSDASQL" for linked server "MYSQLSRV" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "MYSQLSRV".
    I cant understand what I have done wrong .   Any help in this would be great as Ive hit a bit of a brick wall

    Hi Robert3975,
    In addition to other post, please also note the following things.
    1. If you use the 32-bit driver on a 64-bit machine, please run the 32bit version of "odbcad32.exe" by running "c:\Windows\SysWOW64\odbcad32.exe"
     from Start/Run menu and
    create your ODBC DSN. However, for the 64-bit driver, use c:\windows\system32\odbcad32.exe to create your ODBC DSN. For more details, please review this similar
    thread.
    2. Expand the folder Providers under Linked server directory in SSMS and go to properties of MSDASQL provider and configure it properly as described in this blog:
    Creating Linked server to MYSQL from SQL Server.
    Thanks,
    Lydia Zhang
    If you have any feedback on our support, please click
    here.
    Lydia Zhang
    TechNet Community Support

  • Microsoft Access Text Driver missing! and ...Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

    In order to use OpenRowSet, I installded Microsoft Access Database Engine 2010. However, I could not find Microsoft Access Text Driver in Drivers of ODBC Data Source Administrator.  Could I get some help with that?
    Thank you very much!

    I am local admin and try to run the following script, but I got an error. Could anyone help me look at it?
    EXEC sp_configure 'show advanced options', 1
    go
    RECONFIGURE
    GO
    EXEC sp_configure 'ad hoc distributed queries', 1
    go
    RECONFIGURE
    GO
    SELECT * FROM OPENROWSET('MSDASQL',
    'Driver={Microsoft Access Text Driver (*.txt, *.csv)};
    DefaultDir=D:\;','SELECT * FROM Test.csv')
    Configuration option 'show advanced options' changed from 1 to 1. Run the RECONFIGURE statement to install.
    Configuration option 'Ad Hoc Distributed Queries' changed from 1 to 1. Run the RECONFIGURE statement to install.
    OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".

  • Mysql linked server queries

    hello everyone, after spending most of the day trying to figure this out i hope that you guys with more experience can provide some suggestions. i have been experimenting with the a linked server (MYSQL 5) and managed to get all the select queries to work
    fine, but the insert is giving me troubles. MSSQL is 2008 R2, the odbc connector is the most recent.
    so here is some useful testing material:
    -- Table structure for myTest on the MYSQL server
    DROP TABLE IF EXISTS `myTest`;
    CREATE TABLE `myTest` (
    `id` bigint(20) NOT NULL,
    `mystring` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
    `mydate` datetime DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    -- Records
    INSERT INTO `myTest` VALUES ('1', 'string1', '2009-04-17 13:11:41');
    INSERT INTO `myTest` VALUES ('2', 'strin2', '2009-04-17 13:12:48');
    INSERT INTO `myTest` VALUES ('3', 'string3', '2009-12-09 12:29:48');
    INSERT INTO `myTest` VALUES ('4', 'nostring', '2009-12-18 12:29:48');
    INSERT INTO `myTest` VALUES ('5', 'stfing5', '2010-07-17 16:40:00');
    then i copied the data from mysql to MSSQL and made up new data and copied it into the 'local' copy of the mysql table:
    -- copy stuff from mysql
    select *
    into [msTest]
    from openquery(MYSQL, 'select * from myTest');
    --make a copy and change a row for this example
    select * into [msTestCopy]
    from [msTest];
    UPDATE [msTestCopy]
    SET [id] = 10
    ,[mystring] = 'sadfasdfas'
    ,[mydate] = '2009-04-17 14:11:41.0000000'
    where [ID] =1;
    -- insert new row in the imported table
    declare @myId as int;
    set @myId=10;
    insert into [msTest] ([ID],[mystring],[mydate])
    select T1.[ID],
    T1.[mystring],
    T1.[mydate]
    from [msTestCopy] T1
    where T1.[ID] = @myId;
    Then i tried an update query which was successful:
    UPDATE OPENQUERY (MYSQL, 'SELECT mystring FROM mydatabase.myTest WHERE id = 1')
    SET mystring = 'sadfasdfas';
    Now this is where things just do not work. i tried an insert with the following:
    -- insert in mysql
    insert OPENQUERY(MYSQL, 'SELECT * FROM myTest')
    select * FROM [dbo].[msTest] T1
    where T1.[ID] = @myId;
    the error returned is not very useful"
    Msg 7399, Level 16, State 1, Line 5
    The OLE DB provider "MSDASQL" for linked server "MYSQL" reported an error. The provider did not give any information about the error.
    Msg 7343, Level 16, State 2, Line 5
    The OLE DB provider "MSDASQL" for linked server "MYSQL" could not INSERT INTO table "[MSDASQL]". Unknown provider error.
    then i went back to basics and tried the following
    insert OPENQUERY(MYSQL, 'SELECT * FROM myTest')
    values (7,'sadfasdfas','2009-04-17 14:11:41.0000000')
     similar error as a result:
    Msg 7399, Level 16, State 1, Line 1
    The OLE DB provider "MSDASQL" for linked server "MYSQL" reported an error. The provider did not give any information about the error.
    Msg 7343, Level 16, State 2, Line 1
    The OLE DB provider "MSDASQL" for linked server "MYSQL" could not INSERT INTO table "[MSDASQL]". Unknown provider error.
    Does anyone have any clue of what is happening and how i could solve it?

    If I use the above syntax:
    EXEC master.dbo.sp_addlinkedserver @server='MYSQL', @srvproduct='NAME OF MYSQL ODBC',
    @provider='MSDASQL', @provstr='DRIVER={MySQL ODBC 5.1
    Driver};SERVER=SERVER IP;Port=3306;USER=myUid;PASSWORD=myPassword;OPTION=3;DATABASE=photo;'
    the linked server creates properly, but it won't even let me run this statement anymore:
    select * FROM OPENQUERY(MYSQL, 'SELECT * FROM photo.tag_type');
    It give this error:
    /* OLE DB provider "MSDASQL" for linked server "MYSQL" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
    Msg 7303, Level 16, State 1, Line 1
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "MYSQL".  */
    If I add this to the create statement @datasrc='MYSQL_MAIN' -- this being the name of the MySQL ODBC, therefore looking like this:
    EXEC master.dbo.sp_addlinkedserver @server='MYSQL', @srvproduct='MYSQL_MAIN',
    @provider='MSDASQL',@datasrc='MYSQL_MAIN', @provstr='DRIVER={MySQL ODBC 5.1
    Driver};SERVER=SERVER_IP_ADDRESS;Port=3306;USER=myUID;PASSWORD=#####;OPTION=3;DATABASE=photo;'
    I can at least run the above select statement, but I still get the error when running the insert statement.
    Insert statement:
    INSERT OPENQUERY(MY_SQL, 'SELECT * FROM photo.tag_type') VALUES (1, 'test');
    Error:
    /* OLE DB provider "MSDASQL" for linked server "MY_SQL" returned message "[MySQL][ODBC 5.1 Driver][mysqld-5.0.48-log]Commands out of sync; you can't run this command now".
    Msg 7343, Level 16, State 2, Line 1
    The OLE DB provider "MSDASQL" for linked server "MY_SQL" could not INSERT INTO table "[MSDASQL]".  */
    So can you please specify your exact syntax for this create linked server query and maybe a sample insert?  Which version of MySQL are you running?  I have tried a lot of different things and even read this post, http://bugs.mysql.com/bug.php?id=39965 with
    no luck, please help.
    Thanks

  • ODBC Driver V8.00.58.00 Error

    Hi
    I am experimenting an Oracle ODBC error while selecting more than 2500 records from a database table.
    Does anyone known the cause of the error?
    Thanks in advance.
    ==== ENVIRONMENT DESCRIPTION ====
    The database server is ORACLE Version 8.0.5.2.1
    My database table has the following structure:
    CREATE TABLE MY_TABLE
    PK_PKEY NUMBER(9) NOT NULL ,
    FK_FKEY1 NUMBER(9) NOT NULL ,
    FK_FKEY2 NUMBER(5) NOT NULL ,
    FIELD1 NUMBER(1) NOT NULL ,
    FIELD2 NUMBER(5) NOT NULL ,
    CONSTRAINT MY_TABLE_FILED1 CHECK(FIELD1 BETWEEN 0 AND 1),
    CONSTRAINT PK_MY_TABLE_KEY PRIMARY KEY (PK_PKEY)
    The table is populated with 3000 records where FIELD1 is always equal to 1 (this value is relevant for the queries).
    The application that executes the queries to the table is written in Visual C++ 6.0, the database connection is made through ODBC datasouce using the MFC ODBC database classes (CDatabase and CRecordset).
    The Oracle client installed to access the database server is from version: ORACLE ODBC driver - Version 8.00.58.00 - Oracle Corporation SQORA32.DLL 1/5/00.
    The SQL queries executed in the application are:
    QUERY1: SELECT pk_pkey FROM my_table
    QUERY2: SELECT pk_pkey FROM my_table where FIELD1=1
    QUERY3: SELECT pk_pkey FROM my_table where FIELD1=1 ORDER BY pk_pkey
    The C++ application only creates a CDatabase object (m_cDatabase.OpenEx((LPCTSTR)_T(DSN=tc1;UID=myuser;PWD=mypwd))) and a CRecordset object with the previous created database connection. The queries are executed using a simple procedure described in the end of the email.
    I test several combinations using the queries described above and the results are quite different. The combinations performed where:
    TEST1 - First QUERY2 then QUERY3 RESULT 1
    TEST2 - First QUERY1 then QUERY3 RESULT 1
    TEST3 - First QUERY3 then QUERY2 RESULT 2
    TEST4 - First QUERY3 then QUERY1 RESULT 1
    TEST5 - First QUERY1 then QUERY2 RESULT 1
    TEST6 - First QUERY2 then QUERY1 RESULT 3
    TEST7 - First QUERY1 then QUERY1 RESULT 3
    TEST8 - First QUERY2 then QUERY2 RESULT 3
    TEST9 - First QUERY3 then QUERY3 RESULT 3
    == RESULT DESCRIPTIONS ==
    - RESULT 1
    The first query is executed successfully but the application catches a database exception when executing the second query.
    Database Exception: Restricted data type attribute violation
    State: 07006, Native:0, Origin:[ORACLE][ODBC]
    - RESULT 2
    The first query is executed successfully but the application crash while executing the second query.
    The application does not catch any database exception.
    The crash description is:
    Unhanded exception Application.exe (SQORA32.DLL):0xC0000005 Access Violation
    - RESULT 3
    The queries returned the expected results. No errors where reported.
    ==== END OF ENVIRONMENT DESCRIPTION ====
    *** VERY IMPORTANT NOTE ***
    1. Each test generates a log file where it is possible to confirm the results of the tests.
    2. Another element is that the number of times the first query is consecutive executed before the second one does not influence the result of the tests.
    3. The error is reported always after the 2500 record is fetch.
    4. I executed exactly the same test where the only modification was the version of the ODBC driver used in the client and the tests ran successfully. The results are correct if the client driver is one of the following:
    ORACLE ODBC driver - Version 8.01.05.00 - Oracle Corporation SQORA32.DLL 16/02/1999
    ORACLE ODBC driver - Version 8.00.05.00 - Oracle Corporation SQORA32.DLL 06/12/1998
    5. I also executed the tests with the ORACLE ODBC driver version 8.00.59.00 and the results where the same as from driver v8.00.58.00
    6. If I create a restriction in the queries to return less than 2500 records the test are performed successful in all drivers.
    == PROCEDURE ==
    All the queries are executed in a simple procedure like:
    bool CTesteDBDlg::ExecuteTeste(void)
    int nIndex = 1;
    CString strSQL;
    CString strText;
    try
    CRecordset cRecordset(&m_cDatabase);
    strSQL.Format(_T("SELECT pk_pkey FROM my_table"));
    //strSQL.Format(_T("SELECT pk_pkey FROM my_table WHERE field1=1"));
    //strSQL.Format(_T("SELECT pk_pkey FROM my_table WHERE field1=1 ORDER BY pk_pkey"));
    if(!cRecordset.Open(CRecordset::snapshot, (LPCTSTR)strSQL,
    CRecordset::readOnly))
    return false;
    CString strDBValue;
    while(!cRecordset.IsEOF())
    cRecordset.GetFieldValue((int)0, strDBValue);
    LOG_DEBUG_MESSAGE(eLow,(_T("ExecuteTeste1: Index=%ld - Value=%s"), nIndex, strDBValue));
    nIndex++;
    cRecordset.MoveNext();
    catch(CDBException* pDBException)
    TCHAR szCauze[256];
    pDBException->GetErrorMessage(szCauze, 255);
    LOG_DEBUG_MESSAGE(eLow,(_T("Database Exception: Code=%d - Desc = %s"), pDBException->m_nRetCode, szCauze));
    return false;
    return true;
    null

    Mr. Cordeiro sent me the project and data he's using. When I run the test program on my 8.0.6 client machine with the 8.0.6 ODBC driver, I see no failures. When I run the test program on my 8.1.6 client machine with the 8.1.6.1 driver, however, I see the problems Mr. Cordeiro describes. If I install the current evelopment build of our 8.1.6 driver, however, the problems disappear. Unfortunately, I don't have an 8.0.5 client machine to test on right now.
    I suspect that the problem here has been identified previously, has already been fixed, and will be shipped with the next release of the driver.
    My only hesitation here is that the 8.0.5.8 and 8.0.6.0 ODBC drivers are identical code, just linked with different client libraries, so it's unclear why the 8.0.6 client is working while the 8.0.5 client, apparently, is failing. It is possible that there is/was a bug in one of the layers under the ODBC driver which is causing the problem and that different versions of our code hit or miss this problem. I would strongly suggest that you apply the latest Oracle patch kit for your client (i.e. 8.0.5.2.6 for the 8.0.5 client) to see if that fixes your problem. These patch kits are available from the Oracle FTP site-
    ftp://oracle-ftp.oracle.com/server/patchsets/wgt_tech/server/windowsNT/
    Justin Cave
    ODBC Development

  • UCCX 10.1 - Linked Server - Copying HR data to external SQL Server for reporting

    I have a customer that is migrating from UCCX 7 to UCCX 10.  They currently have a 2008 SQL Server R2 that they use for custom reports.  They have a package that runs nightly to copy relevant data from UCCX 7 to the their server and then run reports daily against that database.   Pretty easy when everything is in MS SQL.  My plan was to set up a linked server in SQL 2008 to the UCCX server.  This would allow me to easily run a query against Informix and move the data over as before.  However, I am having problems adding the linked server.
    I have installed the Informix drivers (both 32 and 64 bit) during the troubleshooting.
    The DSN is created and connects to UCCX just fine.
    When I attempt to add the linked server using 64 bit driver DSN I get the following:
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "UCCX101".
    OLE DB provider "MSDASQL" for linked server "UCCX101" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed".
    OLE DB provider "MSDASQL" for linked server "UCCX101" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed".
    OLE DB provider "MSDASQL" for linked server "UCCX101" returned message "[Informix][Informix ODBC Driver][-11302] Insufficient Connection information was supplied". (.Net SqlClient Data Provider)
    When I attempt to add the linked server using the 32 bit driver DSN I get the following:
    Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "32UCCX101".
    OLE DB provider "MSDASQL" for linked server "32UCCX101" returned message "[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application". (Microsoft SQL Server, Error: 7303)
    It appears to me there is a 32/64 bit conflict no matter route I go.
    Can anyone tell me what I am missing?
    Is there a better approach to take to achieve the ultimate goal?
    Any suggestions are greatly appreciated.
    TIA
    John

    I have created linked servers on an SQL2K box that points back to CCX. First off, you have to set the password for the UCCX HR user to some known value.
    exec sp_dropserver 'fonccx9_01', 'droplogins'
    EXEC sp_addlinkedserver
    @server='fonccx9_01', -- Name of the Linked Server, when it is created.
    @srvproduct='Microsoft OLE DB Provider for ODBC', -- OLE DB Provider.
    @provider='MSDASQL', -- Provider_name.
    @datasrc ='fonccx9-01', -- DSN Name of the ODBC Data Source.
    @provstr= -- ODBC Connection String.
    'Driver={IBM Informix ODBC};Server=fonccx9_01_uccx;Database=db_cra; Uid=uccxhruser; Pwd=Some-Password;'
    EXEC sp_addlinkedsrvlogin
        @rmtsrvname = 'fonccx9_01',
        @useself = 'FALSE',
        @rmtuser = 'uccxhruser',
        @rmtpassword = 'Some-Password'
    Note that the server name is "fonccx9-01", but the dash is an illegal character in the server name, so you have to change that to an underscore. You still have to manually build the ODBC data source on the box where you are trying to create the linked server.

  • Error: An error occurred while preparing the query in openquery on ServiceNow ODBC Link Server

    Hi Team,
    Greetings of the Day!!!!!
    I have a created a link server on SQL Server 2008 R2 databse of Service Now ODBC driver. And written a stored procedure using openquery to get the data from link server.
    Now problem is that, when i have scheduled that stored procedure in sql jobs. When this job runs automatically then we are getting below error while when i start the job mannually then it's not giving error.
    An error occurred while preparing the query "..........."
    Please help me to resolve this issue.
    Regards,
    Brijendra Pandey

    Hi Fanny,
    I had reviewed the job history. I am getting below message where as table is exist in the database.
    Message
    Executed as user: NT AUTHORITY\SYSTEM. OLE DB provider "MSDASQL" for linked server "SNOWDSN" returned message "[DataDirect][ODBC OpenAccess SDK driver][OpenAccess SDK SQL Engine]Base table:incident not found.[10129]". [SQLSTATE 01000] (Message 7412)  OLE
    DB provider "MSDASQL" for linked server "SNOWDSN" returned message "[DataDirect][ODBC OpenAccess SDK driver][OpenAccess SDK SQL Engine]Base table:sysapproval_approver not found.[10129]". [SQLSTATE 01000] (Message 7412)  OLE DB provider "MSDASQL" for linked
    server "SNOWDSN" returned message "[DataDirect][ODBC OpenAccess SDK driver][OpenAccess SDK SQL Engine]Base table:problem not found.[10129]". [SQLSTATE 01000] (Message 7412).  The step succeeded.
    Regards,
    Brijendra Pandey

  • Memory leak in ODBC Driver version 8.1.7.8?

    We have a web application connected to an 8.1.7 database on a MS Windows 2000 SP 2 server.
    We recently upgraded ODBC driver from 8.1.7.7 to 8.1.7.8 and found that we ran out of virtual memory.
    On further investigations, a simple refresh of our summary web page (going to the database to select a small recordset - even when there are only 2 records with 6 small VARCHAR2 fields) causes the virtual memory usage to increase by approximately 1Mb each refresh.
    The same refresh using driver 8.1.7.7 occasionally increases the VM usage by 4Kb!
    Is there a memory leak in ODBC driver version 8.1.7.8?

    Hello Thomas,
    thanks for your tips, but they did not help. Activating Connection Polling did not change anything. And opening another connection did not help, either. I did it the following way:
    Sub memtest2()
    Dim conODBC As New ADODB.Connection
    conODBC.ConnectionString = "Data Source='xxxx';User ID='xxx';Password='xxx'"
    conODBC.Open
    Dim Rs1 As Recordset, Rs2 As Recordset, DB1 As Database
    Set DB1 = CurrentDb
    Set Rs1 = DB1.OpenRecordset("select id from artikel")
    Do While Not Rs1.EOF
        Set Rs2 = DB1.OpenRecordset("select * from artikel where id=" & Rs1("id"))
        'do something
        Rs2.Close
        Set Rs2 = Nothing
        Rs1.MoveNext
    Loop
    Rs1.Close
    Set Rs1 = Nothing
    DB1.Close
    Set DB1 = Nothing
    conODBC.Close
    End Sub
    Perhaps one of you has another tip how this can be done.
    @Lukasz:
    using a seperate ADODB.Connection works fine, but that does not solve the problem itself. At first I would have to rewrite much code and the second much bigger thing is that the memory leak occurs even when working with bound forms in MS Access. For example: I have one large form with many subforms on it. If i go from record to record on this form the memory usage is increasing dramatically fast and there is no way to influence what kind of connection MS Access is using for bound forms.
    Regards
    Thorstem

  • Insert into CLOB fails with Oracle ODBC driver version 9.02.00.65

    I tried to insert into CLOB using the latest Oracle ODBC driver 9.02.00.65 and it fails. But the same works with earlier versions of ODBC driver earlier to 9.02.00.65 ie., 9.02.00.63.
    Here is the code snippet I tried. Any help now is highly appreciated as I am in the crunch time.
    I tried the same code snippet with VARCHAR2 column with the same driver and it works.
    ** CONVDSN.C - This is the ODBC sample code for
    ** creating File DSN pointers to machine DSNs.
    **This code is furnished on an as-is basis as part of the ODBC SDK and is
    **intended for example purposes only.
    #include <windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <odbcinst.h>
    #include <sqltypes.h>
    #define MAXDATALEN 25 //maximum data length per column
    #define MAX_COL 15 //maximum column in result set
    #define MAX_ROW 100 //maximum number of rows
    #define MAXBUFLEN 256
    #define SQLERR_FORMAT "SQL Error State:%s, Native Error Code: %lX, ODBC Error: %s"
    #define MAXDISPLAYSIZE MAX_COL*(MAXDATALEN+1)
    #define SQLWRNMSGTITLE "SQL_SUCCESS_WITH_INFO results"
    #define SQLERRCNTDTITLE "SQL_ERROR results continued"
    #define SQLWRNMSGTITLE "SQL_SUCCESS_WITH_INFO results"
    #define SQLWRNCNTDTITLE "SQL_SUCCESS_WITH_INFO results continued"
    #define NULLDATASTRING "SQL_NULL_DATA"
    #define SQLERRMSGTITLE "SQL_ERROR results"
    // prototypes
    void ExpandFileName(LPSTR szFileDSNName, LPCSTR szDSNName);
    void MakeLegalName(LPSTR szLegalDSNName, LPCSTR szDSNName);
    // main routine: Iterate through the user and system DSNs, creating a pointer
    // to each.
    void FAR PASCAL DisplayError(SQLRETURN nResult, HWND hWnd, SWORD fHandleType, SQLHANDLE handle);
    void insertSelectClob();
    void checkRcCode(RETCODE rc);
    int main (int argc, char* argv[])
         insertSelectClob();
    return 0;
    void FAR PASCAL DisplayError(SQLRETURN nResult, HWND hWnd, SWORD fHandleType, SQLHANDLE handle)
         UCHAR szErrState[SQL_SQLSTATE_SIZE+1]; // SQL Error State string
         UCHAR szErrText[SQL_MAX_MESSAGE_LENGTH+1]; // SQL Error Text string
         char szBuffer[SQL_SQLSTATE_SIZE+SQL_MAX_MESSAGE_LENGTH+MAXBUFLEN+1];
         // formatted Error text Buffer
         SWORD wErrMsgLen; // Error message length
         UDWORD dwErrCode; // Native Error code
         int iSize; // Display Error Text size
         SQLRETURN nErrResult; // Return Code from SQLGetDiagRec
         SWORD sMsgNum = 1;
         SWORD fFirstRun = TRUE;
         char szDispBuffer[MAXDISPLAYSIZE+1]; // Display Buffer
         szBuffer[0] = '\0';
         do
              // continue to bring messageboxes till all errors are displayed.
              // more than one message box may be reqd. as err text has fixed
              // string size.
              // initialize display buffer with the string in error text buffer
              strcpy(szDispBuffer, szBuffer);
              // call SQLGetDiagRec function with proper ODBC handles, repeatedly until
              // function returns SQL_NO_DATA. Concatenate all error strings
              // in the display buffer and display all results.
              while ((nErrResult = SQLGetDiagRec(fHandleType, handle, sMsgNum++,
                   szErrState, &dwErrCode, szErrText,
                   SQL_MAX_MESSAGE_LENGTH-1, &wErrMsgLen)) != SQL_NO_DATA)
                   if(nErrResult == SQL_ERROR || nErrResult == SQL_INVALID_HANDLE)
                   break;
                   wsprintf(szBuffer, SQLERR_FORMAT, (LPSTR)szErrState, dwErrCode, (LPSTR)szErrText);
                   iSize = strlen(szDispBuffer);
                   if (iSize && (iSize+strlen(szBuffer)+1) >= MAXDISPLAYSIZE)
                   break;
                   if (iSize)
                   strcat(szDispBuffer, "\n");
                   strcat(szDispBuffer, szBuffer);
              // display proper ERROR or WARNING message with proper title
              if (nResult == SQL_SUCCESS_WITH_INFO)
                   MessageBox(hWnd, szDispBuffer, (fFirstRun? SQLWRNMSGTITLE : SQLWRNCNTDTITLE),
                   MB_OK | MB_ICONINFORMATION);
              else
                   MessageBox(hWnd, szDispBuffer, (fFirstRun? SQLERRMSGTITLE : SQLERRCNTDTITLE),
                   MB_OK | MB_ICONEXCLAMATION);
              if (fFirstRun)
                   fFirstRun = FALSE;
         while (!(nErrResult == SQL_NO_DATA || nErrResult == SQL_ERROR || nErrResult == SQL_INVALID_HANDLE));
    void insertSelectClob()
    SQLCHAR clobdata[1001];
    SQLCHAR resultdata[1001];
    SQLINTEGER ind = SQL_DATA_AT_EXEC;
    SQLCHAR *bufp;
         SQLINTEGER cbOrderID = sizeof(SQLSMALLINT);
         SQLSMALLINT sTmp=13;
         SQLCHAR *sqlStmt1  = _T("INSERT INTO clobtbl(id, clob1) VALUES(?, ?)");
         SQLCHAR *sqlStmt2  = _T("SELECT id, clob1 FROM clobtbl");
    //     SQLCHAR *sqlStmt1  = _T("INSERT INTO testInsert(id, clob1) VALUES(?, ?)");
    // SQLCHAR *sqlStmt2  = _T("SELECT id, clob1 FROM testInsert");
    int clobdatalen, chunksize, dtsize, retchklen;
         HENV envHnd;
    HDBC conHnd;
    HSTMT stmtHnd;
    RETCODE rc;
         int nRowcnt=0;
         SQLPOINTER pToken = NULL;
    rc = SQL_SUCCESS;
    // ENV is allocated
    rc = SQLAllocEnv(&envHnd);
    // Connection Handle is allocated
    rc = SQLAllocConnect(envHnd, &conHnd);
    rc = SQLConnect(conHnd, T("testd734"), SQLNTS, T("ipathdba"), SQLNTS, T("ipathdba"), SQLNTS);
    printf(_T("Insert CLOB1 using SQLPutData...\n[%s]\n"), sqlStmt1);
    // Set CLOB Data
    int i;
    SQLCHAR ch;
    for (i=0, ch=_T('A'); i< sizeof(clobdata)/sizeof(SQLCHAR); ++i, ++ch)
    if (ch > _T('Z'))
    ch = _T('A');
    clobdata[i] = ch;
    clobdata[sizeof(clobdata)/sizeof(SQLCHAR)-1] = _T('\0');
    clobdatalen = lstrlen(clobdata); // length of characters
    chunksize = clobdatalen / 7; // 7 times to put
         rc = SQLAllocHandle(SQL_HANDLE_STMT, conHnd, &stmtHnd);
    // Step 1: Prepare
    rc = SQLPrepare(stmtHnd, sqlStmt1, SQL_NTS);
    // checkSQLErr(envHnd, conHnd, stmtHnd, rc);
    // Step 2: Bind Parameter with SQL_DATA_AT_EXEC
    rc = SQLBindParameter(stmtHnd,
    1,
    SQL_PARAM_INPUT,
    SQL_C_SSHORT,
    SQL_INTEGER,
    0,
    0,
    &sTmp,
    0,
    &cbOrderID);
    rc = SQLBindParameter(stmtHnd,
    2,
    SQL_PARAM_INPUT,
    SQL_C_CHAR,
    SQL_LONGVARCHAR,
    clobdatalen*sizeof(CHAR),
    0,
    (SQLPOINTER)clobdata,
    clobdatalen*sizeof(CHAR),
    &ind);
    // checkSQLErr(envHnd, conHnd, stmtHnd, rc);
    // Step 3: Execute
    rc = SQLExecute(stmtHnd);
         while (rc == SQL_NEED_DATA) {
              rc = SQLParamData(stmtHnd, &pToken);
              if (rc == SQL_NEED_DATA) {
                   for (dtsize=0, bufp = clobdata;
                        dtsize < clobdatalen;
                        dtsize += chunksize, bufp += chunksize)
                   int len;
                   if (dtsize+chunksize < clobdatalen)
                        len = chunksize;
                        rc = SQLPutData(stmtHnd, bufp, len*sizeof(SQLCHAR));
                   else
                        len = clobdatalen-dtsize;
                        rc = SQLPutData(stmtHnd, bufp, SQL_NTS);
              rc = SQLParamData(stmtHnd, &pToken);
    // Fails as row count retrieved is zero.
         rc = SQLRowCount(stmtHnd, &nRowcnt);
         if(rc != SQL_SUCCESS)
              DisplayError(rc, NULL, SQL_HANDLE_ENV, conHnd);
    rc = SQLFreeStmt(stmtHnd, SQL_CLOSE);
    printf(_T("Finished Update\n\n"));
    rc = SQLAllocStmt(conHnd, &stmtHnd);
    if (rc != SQL_SUCCESS)
    printf(_T("Failed to allocate STMT\n"));
    exit(-1);
    // Clear Result Data
    memset(resultdata, 0, sizeof(resultdata));
    chunksize = clobdatalen / 15; // 15 times to gut
    rc = SQLExecDirect(stmtHnd, sqlStmt2, SQL_NTS); // select
         if(rc != SQL_SUCCESS)
              DisplayError(rc, NULL, SQL_HANDLE_ENV, conHnd);
    // Step 2: Fetch
    rc = SQLFetch(stmtHnd);
    for(dtsize=0, bufp = resultdata;
    dtsize > sizeof(resultdata)/sizeof(CHAR) && rc != SQL_NO_DATA;
    dtsize += chunksize-1, bufp += chunksize-1)
    int len; // len should contain the space for NULL termination
    if (dtsize+chunksize<sizeof(resultdata)/sizeof(CHAR))
    len = chunksize;
    else
    len = sizeof(resultdata)/sizeof(CHAR)-dtsize;
    // Step 3: GetData
    rc = SQLGetData(stmtHnd,
    2,
    SQL_C_CHAR,
    (SQLPOINTER)bufp,
    len*sizeof(CHAR),
    &retchklen);
    if (!_tcscmp(resultdata, clobdata))
    printf(_T("Succeeded!!\n\n"));
    else
    printf(_T("Failed!!\n\n"));
         if (conHnd)
              SQLFreeConnect(conHnd);
         if (envHnd)
              SQLFreeEnv(envHnd);
    }

    Hi,
    Since 9.2 has been desupported for error correction you will not be able to download that version from OTN. You should ask whoever is providing the training if their is an alternate version you can use. The only versions that you will be able to download from oracle.com is 10.2 11.1, and 11.2.

  • How to create a view on SQLServer 2008 as an OPENQuery select to a MYSQL linked server

    I am trying to create a view on SQLServer through Management Studio based on data on a MYSql server.
    I have created the Linked server and I am able to query all data.
    Using the syntax select * from OPENQUERY (linkedServer, 'select * from MYSQL-table') - This works fine
    What I am trying to do now is issue the following statement
    create view ViewnameToBeCreatedOnSQLServer
       as select * from OPENQUERY (linkedServer, 'select * from MYSQL-table')
    When I run this from SSMS I get the following error
    OLE DB provider "MSDASQL" for linked server "TESTTSC2" returned message "[MySQL][ODBC 5.1 Driver][mysqld-5.0.95-log]Table 'FP.M3' doesn't exist".
    Msg 7350, Level 16, State 2, Procedure FPMaster3, Line 2
    Cannot get the column information from OLE DB provider "MSDASQL" for linked server "TESTTSC2".
    The account I am using has create view privs and alter schema privs on the SQlServer side. I am assuming there are not isues on the MYSQL server side since I am able to successfully run the select statement using OPENQUERY.  There must be one small
    piece I am missing. has anyone experienced the same problem and were you able to find a solution?

    All the configurations seem to be in place correctly since I can SELECT any data with no issues. The statement   
    select * from OPENQUERY (linkedServer, 'select * from MYSQL-table')
    works fine and I can change the table I am selecting from which all return data. Therefore, the objects all exists in MYSQL.
    The DSN is set up, the linked Server is good, the provider is set up, the DB account has all privs.
    It only fails when I try to create the view on SQLServer as a select from a remote table accessed via the linked MYSQL server. I connect to SQLServer with DB account PS which has full privs including CREATE VIEW and ALTER SCHEMA. The MYSQL pass-through account
    has read access to all objects in the MYSQL schema. I am trying to figure out if I might be missing some little part of this puzzle when trying to create a new object (CRESTE VIEW) vs. just reading the data (SELECT).
    The kicker in all this is that I did create a view on SQLServer in this manner about a year ago and I am able to see the view definition and that view still works! So, this is quite interesting that I am not able to create a new object.
    If there any specific information I could provide which might help, I am happy to do that. Just did not want to provide the details on all of the puzzle pieces if it can be avoided but if it comes to that then that's OK also.
    Thanks very much! I appreciate your help.

  • Jobs trying to access ODBC driver fails at a particular time of the day

    Hi,
    We have 3 jobs which fails at around from 10 PM to 6AM with the following message in the job history:
    [SQLSTATE 42000] (Error 7320)  OLE DB provider "MSDASQL" for linked server "mfglive" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Server crash likely.". [SQLSTATE 01000] (Error 7412) 
    OLE DB provider "MSDASQL" for linked server "mfglive" returned message "[DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Socket closed."
    But the same jobs run perfectly when I schedule them to run at any time during the working hours.
    I want to confirm if there can be something wrong with SQL/Linked server for this issue?
    Thanks

    It appears to me that that job conflicts with database maintenance activities during the night.
    Related blogs:
    http://knowledgebase.progress.com/articles/Article/P184190
    http://knowledgebase.progress.com/articles/Article/P128908
    http://knowledgebase.progress.com/articles/Article/000038541
    http://www.sqlservercentral.com/Forums/Topic1149419-146-1.aspx
    Kalman Toth Database & OLAP Architect
    SQL Server 2014 Database Design
    New Book / Kindle: Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014

Maybe you are looking for

  • Error while doing connection test for a jdbc system

    Hi all, i created a JDBC system. i gave all the required information for creating it like username, passowrd, connection URL, driver class name. i even did the user mapping. But still when i try the connetion test it is giving me an error. the error

  • Execute ABAP code in Start Routine only once

    I have ABAP code in a start routine that I only want to execute once. Is there a way to tell this is first execution of the start routine? Also can I find out these value in the start routine ABAP: 1. How many data packets there are? 2. What data pac

  • ADOBE BRIDGE SAYS HAVE PROBLEM WITH CACHE.  WILL NOT WORK AND I TRIED TO GO TO

    DownLoaded yetserday 2200 new pictures into my mac book por. now adobe bridge freezes up and says error in cache settings. but when i attempt to open preferences, and clear out cache, it does not work.@

  • Item relevant for picking

    Where we can can control relevance for picking , despite making all the settings (In the item category and LW M) it is showing that item is not relevant for picking in the delivery? Regards Roopak

  • File sharing randomly stops working

    Hi guys, For some reason every once in a while the file sharing on my iMac stops working and to get it working again I need to untick and then re-tick "File Sharing"  in the "Sharing" pane in Preferences. Any ideas? Thanks, Tom