Oracle ODBC driver with Access Application

I get a problem when using MS-Access 2007 DAO recordset built on table hosted by an Oracle database 10g and connected thru ODBC
The table scheme is :
idPartenaire : number(11)
libelle : varchar2(250)
code : varchar2(5)
actif : number(1)
idCollege :numner(11)
idPartenaire is generated by a sequence read in a trigger fired before insert on th table.
The code I use in Access is :
The query associated with the form is :
"select * from table1"
and the event procedure connected to a button on the form is :
Private Sub Commande0_Click()
Dim rs As DAO.Recordset
Me.Recordset.AddNew
Me.Recordset!libelle = CStr(Rnd) ' some value
Me.Recordset!code = “”
Me.Recordset!actif = -1
Me.Recordset!idCollege = 1
Me.Recordset.Update
Me.Recordset.Bookmark = Me.Recordset.LastModified
Dim idtemp As Long
idtemp = Me.Recordset.idPartenaire
Me.Requery
Me.Recordset.FindFirst "idPartenaire = " & idtemp
Set rs = Nothing
End Sub
When I run this code, I get an error 3167 (current record is deleted) on the line :
idtemp = Me.Recordset.idPartenaire
If I change the ligne :
Me.Recordset!code = “”
By :
Me.Recordset!code = “xxxx”
or if I comment this line, the error does not appear and I get the right value in idtemp variable.
I tried also with the same table in a SQL Server database table. In this case it works fine in all cases.
So, I seems that the problem is due to the Oracle ODBC driver. I tried with different versions of Oracle ODBC drivers (v10.0.2.4, v11.1.6)
I search on Internet but I have not found any explanation or solution.
Does anybody experiment the same problem (and find a solution)?
Gilles Roussel.

The two lines you quote aren't errors, they're warnings and they're pretty standard fare. If there isn't anything else in the ODBC log, then the driver isn't returning any errors. I'm not sure why Access is failing, so let's look at the client configuration first.
- I assume you've successfully installed the 8.1.6 client on the machine with Access. Were there any errors during the install?
- You say you're using the 8.1.6 version of the Oracle ODBC driver-- can you look to see what the last digit of the version is? If possible, I'd start by downloading the most recent 8.1.6.x ODBC driver from OTN.
- Check which version of the MDAC you have installed (new versions & a version checker are available from Microsoft at <http://www.microsoft.com/data>.
- The ODBC driver you download above will list which versions of the MDAC it is expected to work with. Make sure your version is one of the listed versions.
Justin

Similar Messages

  • ODBC Driver with Access problem

    I have problems with fields of the number(9.3) datatype. in my linked access tables numbers like 1555.33 are shown as 155533.
    I'm using the oracle odbc driver version 9.2.0.54 with a 9i (9.2.0.1.0) Database.
    I've reading at an old post called "number(9.3) DataType in MS Access". Where I've found someone with the same problem as me. I've done everythink which is explained on that message, but it still doesn't work.
    Is there anything else to do?
    Thank you in advance!

    The following is extracted from Oralce's Metalink: (sorry lost the link)
    "This is an NLS related issue. The ODBC driver uses the values derived from the NLS_LANG setting from the Oracle Home where the driver is installed.
    The application actually uses the number setting from the NT Regional Settings.
    When these two settings differ, then the decimal character will be cut off. This behaviour is also described in Bug:694323.
    Example:
    You have set your NLS_LANG in the ORACLE_HOME of your ODBC driver to GERMAN_GERMANY.WE8ISO8859P1. This will result in a value for the NLS_NUMERIC_CHARACTERS of ",." (the first part of the NLS_NUMERIC_CHARACTERS being the decimal character and the second part being the group separator).
    So the "." is used by the Application and the "," is used by the Oracle ODBC driver.
    As a result numeric values in your Oracle Database with an integer and a decimal part will thus be displayed by the application without the decimal character, i.e. a value of 10,734 will be displayed as 10734 a value of 0,123 will be displayed as 123.
    To fix this, you will either have to correct the character used for the Decimal Symbol of your NT Regional settings to match the value of your Oracle NLS_LANG setting or vice versa. To change the value for NLS_LANG, go to your registry and change the NLS_LANG parameter that is situated under HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEnnn/NLS_LANG where HOMEnnn is the home where your Oracle ODBC driver is installed."
    Hope this helps, resolved our issue with this problem.

  • ODBC Driver with VC++ Application

    Problem description.
    For example if we are reading the EMP table with the following SQL,
    select * from emp order by empno;
    Step 1: We are reading the EMPNO = 7369 (1st Record)
    Column COMM value read will be NULL
    Step 2: After that when we read EMPNO = 7499 (2nd record)
    Column COMM value read will be 300
    Step 3: After that when we read EMPNO = 7521 (3rd record)
    Column COMM value read will be 500
    Step 4: After that when we read EMPNO = 7566 (4th record)
    Column COMM value read will be 500 even though there is no value for COMM in the table.
    Please note that we will not be able to change the Application code for this problem resolution.
    We request you to give us some solution ASAP.
    Should you have doubts in the information sent by us, please do revert back for clarifications.

    Dear Justin,
    Thanks for the reply and the information.
    I am trying from Oracle support.
    But any way I will answer your Questions.
    Qus 1. What version of the Oracle ODBC driver are you using?
    Ans 1. I can use both Oracle driver and Microsoft Driver.
    Versions: Oracle ODBC Driver: 8.01.07.00
    Microsoft Driver for Oracle: 2.575.1022.00
    Qus 2.Did you try applying the latest patch set?
    Ans 2.I have tried but it did not work. i.e. Problem continued.

  • Oracle ODBC Driver adds bind variable when browsing whole table in Access

    Hi, we are looking for some reasons why we may see this behavior in the Oracle ODBC driver (10gR2 and 11g) when using Microsoft Access (2003 or 2007)...
    1) Link a table from the Oracle database.
    2) Double-click the newly linked table to "browse" it.
    Oracle sends the following statement to the server:
    {color:#0000ff}select * from linked_table where primary_key = :b1{color}
    It then proceeds to read the entire table.
    If I tell Microsoft Access that there is no primary key, the query gets sent as:
    {color:#0000ff}select * from linked_table{color}
    And the query comes back as soon as the first 100 or so rows are fetched which is quite quickly.
    ADDITIONAL NOTES:
    1) If the table has a primary key or unique constraint, Microsoft Access automatically assigns that as the primary key.
    2) We can stop the behavior in #1 if we wrap a view around it which prevents Access from discovering that information and then it prompts for a primary key definition.
    3) If we use the Microsoft ODBC driver, the bind variable is not added no matter what the primary key defintiion is.
    We're stumped and are looking for solutions and/or workarounds without having to wrap all of our tables in views to hide the fact that there is a primary key.
    Thanks,
    Steve

    Thanks for the response, Greg.
    The specific question I am seeking an answer for (sorry it was not clear on my first message) is this:
    Why does the Oracle driver add the bind variable to the query only when the primary key is defined?
    The Microsoft ODBC driver does not add the bind variable with or without a primary key defined.
    You asked how I traced this statement and what I am doing is launching the query in Access and then using TOAD to view the V$SESSION and V$SQL_TEXT_WITH_NEWLINES views. All I do is change the driver. This is just for a simple browse table (double-click on the table) which should send
    select * from table
    However, whenever I use the Oracle ODBC driver (with a primary key defined) it sends
    select * from table where primary_key = :1
    If I remove the primary key on the table definition, the Oracle driver sends
    select * from table
    What is it about the primary key that could cause that behavior?
    I don't think it is the MDAC/Jet level because this is the conversion to the native SQL statement not the Jet version. I know the Oracle driver has to do that part because you have those workaround options like don't add the RULE hint, etc. That's not part of the Jet engine.
    Hope that helps. I'm just baffled over this one and wish I knew where to go next.

  • ORACLE ODBC DRIVER INSTALLATION

    I have downloaded Oracle8 client on my windows95 PC. It is showing ODBC driver installed in the installed components list.
    But this driver is not coming up in the drivers list of ODBC Data Source Administrator screen.
    Could any body help me in this regard.
    Thanks in advace

    If you look at the following key in your registry, you should see an entry "Oracle ODBC Driver" with data "Installed".
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
    There should also be a key
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle ODBC Driver
    with various configuration parameters set. If either of these keys is not there, I suspect you'll have to re-install the ODBC driver.
    Justin Cave
    ODBC Development

  • Oracle ODBC Driver 10.02.00.04 sqora32.dll with /*+ RULE */ base hints

    Hi Everybody,
    I have a problem with SQL queries with /*+ RULE */ base hints being posted to an Oracle database. I have reason to believe that these queries are generated by the Oracle ODBC Driver itself. Although I don't have a performance problem per se, I need to reduce these hints to a minimum so we can fine-tune the database as a whole.
    * The views that are hit are always the same: All_Objects, All_Arguments, All_Synonyms,
    * We are using Oracle ODBC driver 10.02.00.04 for Windows, the database server is a RS6000 with AIX and Oracle 10g,
    * Aside Oracle Development tools, there are no applications, reports or similar gadgets that query the tables described above.
    I would really appreciate any help about this issue.
    Here is an example of the type of queries that I'm writing about:
    SELECT /*+ RULE */ '', b.owner, decode (b.object_type, 'PACKAGE', CONCAT( CONCAT (b.object_name, '.'), a.object_name), b.object_name), NULL, NULL, NULL, NULL, decode (b.object_type, 'PACKAGE', decode(a.position, 0, 2, 1, 1, 0), decode(b.object_type, 'PROCEDURE', 1, 'FUNCTION', 2, 0))
    FROM ALL_ARGUMENTS a, ALL_OBJECTS b
    WHERE ( b.object_type = 'PROCEDURE' OR b.object_type = 'FUNCTION' ) AND b.object_id = a.object_id AND (a.sequence=1 OR a.sequence=0) AND b.OBJECT_NAME = 'MYTABLE' AND b.OWNER = 'MYSCHEMA' UNION
    SELECT /*+ RULE */ '', b.owner,b.object_name,NULL, NULL, NULL, NULL,decode(b.object_type, 'PROCEDURE', 1, 'FUNCTION', 2, 0)
    FROM ALL_OBJECTS b
    WHERE (b.object_type = 'PROCEDURE' OR b.object_type = 'FUNCTION') AND b.OBJECT_NAME = 'MYTABLE' AND b.OWNER = 'MYSCHEMA' UNION
    SELECT /*+ RULE */ distinct '', a.owner,CONCAT(CONCAT (a.package_name, '.'), a.object_name),NULL, NULL, NULL, NULL,decode(a.position, 0, 2, 1, 1, 0)
    FROM ALL_ARGUMENTS a
    WHERE (a.sequence=1 OR a.sequence=0) AND a.OBJECT_NAME = 'MYTABLE' AND a.OWNER = 'MYSCHEMA' ORDER BY 2,3
    Best Regards,
    Manuel
    Edited by: user10165637 on Jul 28, 2009 1:29 PM

    Hi Greg,
    Thank you for your answer. One of the things that we did when we migrated to Oracle 10g was to ensure that the "Disable Rule Base Hints" flag, located in the "Work-arounds" tab in the ODBC DSN window is checked. We previously refreshed all Microsoft's Access databases to use this new DSN connection. Still, the hints are there.
    However... we may have been able to link these calls to these Oracle System Catalog views, with a custom application that launces Crystal Reports.
    Although we all know that Crystal Reports also caches ODBC DSN configuration settings, I must say that these same Crystal Reports do not generate hints when called from their InfoView server.
    We will proceed to modify the custom application, overridding the dissable rule-base hint work-around with the string "DRH=T" on the connection string. Next week we will know if this works.
    Best Regards,
    Manuel

  • ODBC driver with Oracle 10G on 64bit Windows OS.

    I m facing a issue with my peoplesoft application which is installed on Windows 2003 64bit OS.
    Setup Details
    Oracle 10G Server on AIX 5.3.
    peoplesoft CRM tools 8.48,Oracle 10G client in on Windows 2003(64bit) installed.
    When i open ODBC administrator from CRM its open showing all the drivers registred to 64bit registry. Whereas when i see ODBC admin from Control panel of OS , its showing driver register from 32bit. My observation is that oracle ODBC driver is getting registerd with 32bit and application is calling DDBCadmin of 64 bit. Hence driver is not getting registered with 64bit registry.
    sqora32.dll..
    Regards
    Alok

    Hi kamlesh,
    Thanks for your help, still i am not clear about installation on both nodes. once you install CI on one node you are giving the path of shared disk and if we go for other node then also we need to give the shared disk path : so will it or any other? if it is then alrady one usr and aracle folder exists after node  A installation. Do you mean to say copy usr and oracle folder? please explain in detail, will be higly appreciable.
    Bye,
    Nizam

  • Oracle ODBC driver and TIMESTAMP with timezone

    Does anyone know if it is possible to return data from a "TIMESTAMP WITH TIMEZONE" column using the Oracle ODBC driver and an ADO Recordset?
    I am using the Oracle driver version 10.2.0.2 and TIMESTAMP fields work fine.
    I can call Recordset->Open() with a query like "SELECT * FROM TABLE" when the table contains a column of type timestamp with timezone but when I execute a statement to see if there are results as in
    if (!(srcRecsetPtr->BOF && srcRecsetPtr->EndOfFile))
    my application throws an unhandled exception and exits. The exception is not a COM exception and I'm not sure how to get back additional information if that's possible.
    The only information I've been able to find in searching TechNet and MetaLink is that a workaround is to wrap the columns in a TO_CHAR or TO_DATE conversion first but that's not a good solution for my problem since I am executing user specified SQL which may join multiple tables.
    I've found one other note that says the documentation should be corrected and that these fields are NOT supported period (Bug #4011640).
    I've experimented with the Bind Timestamp as Date option in the ODBC connection and with various ALTER SESSION settings to attempt to change the NLS_TIMESTAMP_TZ_FORMAT but I have been unable to get past the problem.
    Any ideas are greatly appreciated.
    Thanks,
    Troy

    Hi Justin
    Thanks for your help.
    I tried what you mentioned and I could connect myself via SQL*Plus without passing a password and a login, Extern authentification seems to work and my user seems to be right configurated.
    But he problem goes on via ODBC. When I test connection in the ODBC Data Source Administrator of Windows XP, test fails and seems to forbid connection without userID and password. When I try to connect via ODBC in my program the same problem appears : "Unable to connect SQLSTATE=28000 [Oracle][ODBC][ORA]Ora-01017: Invalid username/password;logon denied" I could not connect in this way.. What's wrong ?

  • Oracle7 ODBC Driver with an Oracle 8 database

    Does anybody know if there are any issues with using an Oracle 7 ODBC driver to access information on an Oracle 8 database?

    Assuming you have an Oracle 7.3.4 client with the Oracle 7 ODBC driver, you're probably fine connecting to any of the current database releases. Since Oracle7 was desupported a while ago, however, there's no guarantee that this will continue to be the case as time goes on. Additionally, you probably won't be able to get support if you run into problems with this configuration.
    Justin

  • 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.

  • Oracle 10g ODBC driver with Windows 7 32 bit connecting to Excel

    Hi Everyone,
    I'm having an issue connecting to our oracle 10g database (64 bit system) from a 32 bit windows 7 installation running excel 2010/2007 using odbc drivers. Our excel spreadsheets worked without issue in windows xp.
    In windows 7 I have been able to install the odbc driver via the following method:
    1. Download the oracle 'basic' client and oracle 'odbc' client from www.oracle.com and extract the contents:
    instantclient-basic-win32-10.2.0.3-20061115
    instantclient-odbc-win32-10.2.0.3-20061115
    2. Create a folder 'oracle' and place the instantclient_10_2 folder inside.
    3. Ensure all the basic and odbc files reside in this folder.
    4. Create a 'network' folder within instantclient_10_2
    5. Create an 'admin' folder within 'network'
    6. Create sqlnet.ora and tnsnames.ora files within the 'admin' folder:
    7. Run 'obdc_install' within the instantclient_10_2 folder
    8. Download and run the oracle odbc driver exe file from www.oracle.com (ORA10203.exe)
    9. Go to Control Panel -> Administrative Tools -> Data Sources and create a new System DN
    This allows excel spreadsheets connecting ONLY to oracle to function.
    Unfortunately some of our spreadsheets connect to both a MySQL database as well as oracle. Spreadsheets connecting only to MySQL also function correctly, however, as soon as the vb associated with a spreadsheet includes a mysql call followed by an oracle call the spreadsheets fail. In Excel 2007 excel crashes completely everytime. In Excel 2010 the mysql data is generated, then when the script hits to oracle odbc connection there is a long pause, the oracle ODBC driver connect pops up requesting a username/password (this didn't happen in xp), then the data source selection pops up, then the username/password connect screen pops up again, and finally it fails with a runtime error '1004' General ODBC error.
    If you look at the VB script it's failing at the Refresh BackgroundQuery statement in the ODBC connection block:
    With Worksheets("Oracle1").QueryTables.Add(Connection:= _
    "ODBC;DSN=Oracle_ODBC;UID=user;PWD=password;SERVER=ORACLE_LINUX;", _
    Destination:=Worksheets("Oracle1").Range("A1"))
    .CommandText = strSql
    .Name = "Oracle1_data"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlOverwriteCells
    .SavePassword = True
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .Refresh BackgroundQuery:=False
    End With
    Does anyone know how to get around this? It's very important!!
    Also if you try to edit the oracle ODBC connections in Control Panels -> Administrative Tools -> Data Sources, ODBC crashes 95% of the time.
    Advice greatly appreciated!!

    Well, here's what I'd check anyway..
    1) get Process Explorer from http://sysinternals.com
    2) make a mysql connection, get a list of dll's loaded (include the location and version columns in the lower pane output)
    3) close that, then make an ora odbc connection, get a list of dlls.
    4) close that, then make a mysql connection followed by an ora odbc connection, get a list of dlls
    5) compare the lists of loaded dlls. In particular, the difference between #3 and #4, is there a dll dependency that gets loaded by oracle's odbc that comes from a different location when you've opened a mysql connection first?
    May or may not help, but might turn up a difference to help point you in a direction.
    Greg

  • Memory Leak with Oracle ODBC Driver for Long Raw columns

    Oracle version : 8.1.7
    Platform : Win2K
    Oracle ODBC Driver version : 8.0.1.7.5.0.0
    Hi,
    I've got an Oracle database upgraded from
    V8.0.5 to V8.1.7 which has a table having one long raw +
    normal columns. I was able to observe distinct memory
    leaks (approx 80K) when using ODBC interface calls (thro C++ code) that referenced a combination of normal & long raw columns in a select statement. However, this leak was not observed when only normal columns were present in the
    select statement. Is there any known restriction for using
    long raw columns with other columns? Or do long raw columns have a known memory leak problem thro ODBC?
    Thanks!
    Regards
    Sanchayan

    Did you ever get an answer on this issue?
    Thanks in advance

  • Oracle ODBC-Driver for MS Access 2.0

    Hi,
    we're looking for a MS-Access 2.0-Oracle-ODBC-Driver. It's not a "normal" ODBC-Driver but a Driver provided in the past by Microsoft. Its a special DLL for MS-Access 2.0, not for the Operating System.
    any ideas or maybe a link?
    Thanks a lot!
    heiko

    Since XE is 10gR2 these drivers should work, did you try? -> http://www.oracle.com/technology/software/tech/windows/odbc/index.html
    Kind regards,
    Tonguç

  • [Fwd: Creating an ODBC Driver with Forte]

    Has anyone created an ODBC driver with Forte? The Microsoft ODBC
    Software Development Kit (SDK) assumes that ODBC drivers will be
    developed in C. I would like to write the driver in Forte TOOL. Even
    though C++ code can be generated from TOOL code, I am not certain that
    the generated C++ code will conform to the ODBC API, and be compatible
    with other ODBC components, such as the ODBC Driver Manager, ODBC
    Installer, and ODBC Test applications supplied by Microsoft with the
    ODBC SDK. Any advice would be appreciated. (The purpose of my ODBC
    driver is to enable data access by any ODBC client application, using
    calls to Forte service objects to retrieve and process the data before
    it is sent to the client application.)
    Chris Johnson
    Unified Information, Inc.
    425-814-4007
    MailTo:[email protected]

    The following is extracted from Oralce's Metalink: (sorry lost the link)
    "This is an NLS related issue. The ODBC driver uses the values derived from the NLS_LANG setting from the Oracle Home where the driver is installed.
    The application actually uses the number setting from the NT Regional Settings.
    When these two settings differ, then the decimal character will be cut off. This behaviour is also described in Bug:694323.
    Example:
    You have set your NLS_LANG in the ORACLE_HOME of your ODBC driver to GERMAN_GERMANY.WE8ISO8859P1. This will result in a value for the NLS_NUMERIC_CHARACTERS of ",." (the first part of the NLS_NUMERIC_CHARACTERS being the decimal character and the second part being the group separator).
    So the "." is used by the Application and the "," is used by the Oracle ODBC driver.
    As a result numeric values in your Oracle Database with an integer and a decimal part will thus be displayed by the application without the decimal character, i.e. a value of 10,734 will be displayed as 10734 a value of 0,123 will be displayed as 123.
    To fix this, you will either have to correct the character used for the Decimal Symbol of your NT Regional settings to match the value of your Oracle NLS_LANG setting or vice versa. To change the value for NLS_LANG, go to your registry and change the NLS_LANG parameter that is situated under HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOMEnnn/NLS_LANG where HOMEnnn is the home where your Oracle ODBC driver is installed."
    Hope this helps, resolved our issue with this problem.

  • CR Oracle ODBC Driver

    I recently had to reinstall my operating system (Windows XP Pro 32 bit) and applications, which included Crystal Reports. CR was originally setup to access our companies database tables. I also had and ODBC connection setup for CR.
    I'm having trouble finding the right ODBC software to reinstall so that the CR Oracle ODBC Driver 5.0 shows up in the Administrative Tools/Data Sources (ODBC)/ Drivers. The only ODBC driver that shows up is the Microsoft ODBC Driver for Oracle, which won't connect.
    Once I have the CR ODBC Driver, then I just need to configure it in the System DSN, and copy the sqlnet.ora and tsnnames.ora files into C:\oracle\ora92\network\ADMIN, which is where it is located on another computer that can connect.
    Does anybody know which Oracle software would work for the CR driver issue? Is Oracle supposed to be installed prior to CR so the driver shows up?
    It's been several years since this was originallly setup, and not quite sure how to get the CR driver.
    Please help! Thanks for your assistance.

    if u r running the CR in the current user then you can make the ODBC
    in user dsn or System dsn
    you are to select the Microsoft ODBC for ORACLE
    Then at configuration time the Server will be the Service Name which you have entered in the TNSNAMES.ORA File
    eg orcl.
    then user name eg; scott
    then password as scott;
    thne your odbc is created...
    you can work with CR with this odbc
    if your odbc still not working then go for the latest drivers provider for the oracle 10g
    do it
    best of luck..

Maybe you are looking for

  • I installed an app on my iPhone and now all I can get on my screen is a picture of a USB cable asking me to connect to iTunes - NOTHING ELSE.   Please help!  I need my phone!!

    I installed an app on my iPhone and now all I get on the screen is an image of a USB cable with an arrow pointing to an iTunes logo.  I cannot use my phone and if I turn it off, I just get the same image on the screen!  I need my icons back!

  • Issue with T4 Forms

    Hi friends, I Mapped all the WT's from T410 to T411 but among them 4 WT's have been wrongly mapped to F66 and F67 in T410 from B66 and B67 in T411. They are "Retiring Allowances". As per the discussion with the user she told these aare to be shown in

  • Macbook pro loose HDMI output

    Hello! The MB HDMI output feels loose. When the cable is connected to the output it feels really "wiggly". Is this normal? Does anybody notice a loose feel or is it completely tight? Thank You

  • Infotype 0169 - Investsments

    Hi: In configuring Infotype 0169 u2013 Investments, the user community only wants to see the Percentage to be deducted and not the percentage and amount in the enrollment screen.  I cannot find any configuration that limits the display to just the Pe

  • Approval Workflow - Publish throws exception

    Hello, i am trying to enable statemanagement for a resource within a folder. After setting up the folder i create a new document. Afterwards i choose the context element i click menu option Approval/Publish. I always get this NullPointerException: Sy