ORACLE ODBC Driver on Windows 8.1

Discussion of open issues, suggestions and bugs regarding usage of ODBC Drivers
Post Reply
pjan
Posts: 3
Joined: Sat 06 Jun 2015 15:54

ORACLE ODBC Driver on Windows 8.1

Post by pjan » Sat 06 Jun 2015 16:06

I'am trying to run our MFC based applications with the devart ODBC Driver for Oracle.

I can test the connection in the driver-setup ( ODBC-Driver Manager ) but the applications are not runnig.

Here my log:

Code: Select all

f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dbcore.cpp(954) : AppMsg - DBMS: Oracle
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dbcore.cpp(958) : AppMsg - Version: 11.02.0040
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dbcore.cpp(964) : AppMsg - ODBC Driver Manager Version: 03.80.0000
First-chance exception at 0x76E52EEC (KernelBase.dll) in application.exe: 0x0EEDFADE (parameters: 0x00F02716, 0x00BE4060, 0x00000000, 0x00B2A750, 0x00000001, 0x0049F284, 0x0049F244).
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dbcore.cpp(174) : AppMsg - Key fields not found
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dbcore.cpp(174) : AppMsg - State:HY000,Native:-858993460,Origin:[Devart][ODBC][Oracle]
Any idea what i'am doing wrong ?

Thanks

peter.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: ORACLE ODBC Driver on Windows 8.1

Post by AlexP » Tue 09 Jun 2015 11:32

Hello,

We can't reproduce the problem, please send us your application and tracing log file.

pjan
Posts: 3
Joined: Sat 06 Jun 2015 15:54

Re: ORACLE ODBC Driver on Windows 8.1

Post by pjan » Fri 12 Jun 2015 11:03

Hi Alex,

this is the debug output from visual studio.
What do you mean with application log, this is the same for me.

Thanks

Peter.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: ORACLE ODBC Driver on Windows 8.1

Post by AlexP » Fri 12 Jun 2015 13:16

I meant your application (the source code), that causes this error, and the Log file, that may be generated using ODBC-Driver Manager in the following way:
1) open ODBC-Driver Manager;
2) switch to the Tracing tab;
3) specify the Log File Path
4) select the Machine-Wide tracing for all user identifier checkbox
5) Start tracing now
6) run your application
7) send us the log

pjan
Posts: 3
Joined: Sat 06 Jun 2015 15:54

Re: ORACLE ODBC Driver on Windows 8.1

Post by pjan » Fri 12 Jun 2015 17:25

Here the ODBC log:

Code: Select all

Lager32         1328-1254	ENTER SQLAllocEnv 
		HENV *              0x0095AA64

Lager32         1328-1254	EXIT  SQLAllocEnv  with return code 0 (SQL_SUCCESS)
		HENV *              0x0095AA64 ( 0x00BF76D8)

Lager32         1328-1254	ENTER SQLAllocConnect 
		HENV                0x00BF76D8
		HDBC *              0x009642BC

Lager32         1328-1254	EXIT  SQLAllocConnect  with return code 0 (SQL_SUCCESS)
		HENV                0x00BF76D8
		HDBC *              0x009642BC ( 0x00BF7758)

Lager32         1328-1254	ENTER SQLSetConnectAttr 
		SQLHDBC             0x00BF7758
		SQLINTEGER                 103 <SQL_ATTR_LOGIN_TIMEOUT>
		SQLPOINTER                15
		SQLINTEGER                   0 

Lager32         1328-1254	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x00BF7758
		SQLINTEGER                 103 <SQL_ATTR_LOGIN_TIMEOUT>
		SQLPOINTER                15
		SQLINTEGER                   0 

Lager32         1328-1254	ENTER SQLSetConnectAttr 
		SQLHDBC             0x00BF7758
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 2 <SQL_CUR_USE_DRIVER>
		SQLINTEGER                   0 

Lager32         1328-1254	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             0x00BF7758
		SQLINTEGER                 110 <SQL_ATTR_ODBC_CURSORS>
		SQLPOINTER                 2 <SQL_CUR_USE_DRIVER>
		SQLINTEGER                   0 

Lager32         1328-1254	ENTER SQLDriverConnectW 
		HDBC                0x00BF7758
		HWND                0x00010010
		WCHAR *             0x560E54F4 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x560E54F4 
		SWORD                       -3 
		SWORD *             0x00000000
		UWORD                        1 <SQL_DRIVER_COMPLETE>

Lager32         1328-1254	EXIT  SQLDriverConnectW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		HWND                0x00010010
		WCHAR *             0x560E54F4 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x560E54F4 <Invalid buffer length!> [-3]
		SWORD                       -3 
		SWORD *             0x00000000
		UWORD                        1 <SQL_DRIVER_COMPLETE>

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                        9 <SQL_ODBC_API_CONFORMANCE>
		PTR                 0x0079EE58
		SWORD                        2 
		SWORD *             0x0079EE64

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                        9 <SQL_ODBC_API_CONFORMANCE>
		PTR                 0x0079EE58 (1) <SQL_OAC_LEVEL1>
		SWORD                        2 
		SWORD *             0x0079EE64 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       15 <SQL_ODBC_SQL_CONFORMANCE>
		PTR                 0x0079EE4C
		SWORD                        2 
		SWORD *             0x0079EE64

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       15 <SQL_ODBC_SQL_CONFORMANCE>
		PTR                 0x0079EE4C (1) <SQL_OSC_CORE>
		SWORD                        2 
		SWORD *             0x0079EE64 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       79 <SQL_POS_OPERATIONS>
		PTR                 0x0079EE54
		SWORD                        4 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       79 <SQL_POS_OPERATIONS>
		PTR                 0x0079EE54 ( 0x0000001F)
		SWORD                        4 
		SWORD *             0x0079EE60 (4)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       80 <SQL_POSITIONED_STATEMENTS>
		PTR                 0x0079EE48
		SWORD                        4 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code -1 (SQL_ERROR)
		HDBC                0x00BF7758
		UWORD                       80 <SQL_POSITIONED_STATEMENTS>
		PTR                 0x0079EE48
		SWORD                        4 
		SWORD *             0x0079EE60

		DIAG [HYC00] [Devart][ODBC]Optional feature not implemented (7986460) 

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       46 <SQL_TXN_CAPABLE>
		PTR                 0x0079EE3C
		SWORD                        2 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       46 <SQL_TXN_CAPABLE>
		PTR                 0x0079EE3C (3) <SQL_TC_DDL_COMMIT>
		SWORD                        2 
		SWORD *             0x0079EE60 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       23 <SQL_CURSOR_COMMIT_BEHAVIOR>
		PTR                 0x0096430A
		SWORD                        2 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       23 <SQL_CURSOR_COMMIT_BEHAVIOR>
		PTR                 0x0096430A (2) <SQL_CB_PRESERVE>
		SWORD                        2 
		SWORD *             0x0079EE60 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       24 <SQL_CURSOR_ROLLBACK_BEHAVIOR>
		PTR                 0x0096430C
		SWORD                        2 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       24 <SQL_CURSOR_ROLLBACK_BEHAVIOR>
		PTR                 0x0096430C (2) <SQL_CB_PRESERVE>
		SWORD                        2 
		SWORD *             0x0079EE60 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       82 <SQL_BOOKMARK_PERSISTENCE>
		PTR                 0x00964314
		SWORD                        4 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       82 <SQL_BOOKMARK_PERSISTENCE>
		PTR                 0x00964314 ( 0x00000010)
		SWORD                        4 
		SWORD *             0x0079EE60 (4)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       81 <SQL_GETDATA_EXTENSIONS>
		PTR                 0x0079EE30
		SWORD                        4 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       81 <SQL_GETDATA_EXTENSIONS>
		PTR                 0x0079EE30 ( 0x00000007)
		SWORD                        4 
		SWORD *             0x0079EE60 (4)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       25 <SQL_DATA_SOURCE_READ_ONLY>
		PTR                 0x00BF5E10 
		SWORD                       20 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       25 <SQL_DATA_SOURCE_READ_ONLY>
		PTR                 0x00BF5E10 [       2] "N"
		SWORD                       20 
		SWORD *             0x0079EE60 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       29 <SQL_IDENTIFIER_QUOTE_CHAR>
		PTR                 0x00BFB428 
		SWORD                        4 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       29 <SQL_IDENTIFIER_QUOTE_CHAR>
		PTR                 0x00BFB428 [       2] """
		SWORD                        4 
		SWORD *             0x0079EE60 (2)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       17 <SQL_DBMS_NAME>
		PTR                 0x00BF04C0 
		SWORD                      128 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       17 <SQL_DBMS_NAME>
		PTR                 0x00BF04C0 [      12] "Oracle"
		SWORD                      128 
		SWORD *             0x0079EE60 (12)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       18 <SQL_DBMS_VER>
		PTR                 0x00BFC448 
		SWORD                      128 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       18 <SQL_DBMS_VER>
		PTR                 0x00BFC448 [      20] "11.02.0040"
		SWORD                      128 
		SWORD *             0x0079EE60 (20)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       10 <SQL_ODBC_VER>
		PTR                 0x00BFBB48 
		SWORD                      128 
		SWORD *             0x0079EE60

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       10 <SQL_ODBC_VER>
		PTR                 0x00BFBB48 [      20] "03.80.0000"
		SWORD                      128 
		SWORD *             0x0079EE60 (20)

Lager32         1328-1254	ENTER SQLAllocStmt 
		HDBC                0x00BF7758
		HSTMT *             0x00964C1C

Lager32         1328-1254	EXIT  SQLAllocStmt  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		HSTMT *             0x00964C1C ( 0x00BF7AA0)

Lager32         1328-1254	ENTER SQLSetStmtAttr 
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
		SQLPOINTER                15
		SQLINTEGER                   0 

Lager32         1328-1254	EXIT  SQLSetStmtAttr  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   0 <SQL_ATTR_QUERY_TIMEOUT>
		SQLPOINTER                15
		SQLINTEGER                   0 

Lager32         1328-1254	ENTER SQLGetFunctions 
		HDBC                0x00BF7758
		UWORD                       59 
		UWORD *             0x0079EFE8

Lager32         1328-1254	EXIT  SQLGetFunctions  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       59 
		UWORD *             0x0079EFE8 (1)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       10 <SQL_ODBC_VER>
		PTR                 0x00BF04C0 
		SWORD                       60 
		SWORD *             0x0079EFB4

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       10 <SQL_ODBC_VER>
		PTR                 0x00BF04C0 [      20] "03.80.0000"
		SWORD                       60 
		SWORD *             0x0079EFB4 (20)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       44 <SQL_SCROLL_OPTIONS>
		PTR                 0x0079EFE0
		SWORD                        4 
		SWORD *             0x0079EFEC

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       44 <SQL_SCROLL_OPTIONS>
		PTR                 0x0079EFE0 ( 0x00000017)
		SWORD                        4 
		SWORD *             0x0079EFEC (4)

Lager32         1328-1254	ENTER SQLGetInfoW 
		HDBC                0x00BF7758
		UWORD                       43 <SQL_SCROLL_CONCURRENCY>
		PTR                 0x00964CC4
		SWORD                        4 
		SWORD *             0x0079EFE4

Lager32         1328-1254	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                0x00BF7758
		UWORD                       43 <SQL_SCROLL_CONCURRENCY>
		PTR                 0x00964CC4 ( 0x0000000B)
		SWORD                        4 
		SWORD *             0x0079EFE4 (4)

Lager32         1328-1254	ENTER SQLSetStmtAttr 
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   6 <SQL_ATTR_CURSOR_TYPE>
		SQLPOINTER                 3 <SQL_CURSOR_STATIC>
		SQLINTEGER                   0 

Lager32         1328-1254	EXIT  SQLSetStmtAttr  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   6 <SQL_ATTR_CURSOR_TYPE>
		SQLPOINTER                 3 <SQL_CURSOR_STATIC>
		SQLINTEGER                   0 

Lager32         1328-1254	ENTER SQLSetStmtAttr 
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   7 <SQL_ATTR_CONCURRENCY>
		SQLPOINTER                 4 <SQL_CONCUR_VALUES>
		SQLINTEGER                   0 

Lager32         1328-1254	EXIT  SQLSetStmtAttr  with return code 0 (SQL_SUCCESS)
		SQLHSTMT            0x00BF7AA0
		SQLINTEGER                   7 <SQL_ATTR_CONCURRENCY>
		SQLPOINTER                 4 <SQL_CONCUR_VALUES>
		SQLINTEGER                   0 

Lager32         1328-1254	ENTER SQLPrepare 
		HSTMT               0x00BF7AA0
		UCHAR *             0x0097FAB0 [      -3] "SELECT "NUMMER","ZEILE","LIEFERANT","ARTIKEL","ZEILE1","ZEILE2","FREITEXT1","FREITEXT2","PREIS","FILTER","LABOR","BESTELLT","BESTELLTAM","BESTELLTDURCH","EINGANG","EINGANGAM","EINGANGDURCH","FEHLT","FEHLTAM","FEHLTDURCH","BEWERTUNG","BEWERTUNGAM","BEWERTUNGDURCH","STATUS","TYP","ARTIKELNUMMER","BEGRUENDUNG"  FROM "LAGER_JOURNAL" WHERE NUMMER=0 AND ZEILE=0\ 0"
		SDWORD                    -3

Lager32         1328-1254	EXIT  SQLPrepare  with return code 0 (SQL_SUCCESS)
		HSTMT               0x00BF7AA0
		UCHAR *             0x0097FAB0 [      -3] "SELECT "NUMMER","ZEILE","LIEFERANT","ARTIKEL","ZEILE1","ZEILE2","FREITEXT1","FREITEXT2","PREIS","FILTER","LABOR","BESTELLT","BESTELLTAM","BESTELLTDURCH","EINGANG","EINGANGAM","EINGANGDURCH","FEHLT","FEHLTAM","FEHLTDURCH","BEWERTUNG","BEWERTUNGAM","BEWERTUNGDURCH","STATUS","TYP","ARTIKELNUMMER","BEGRUENDUNG"  FROM "LAGER_JOURNAL" WHERE NUMMER=0 AND ZEILE=0\ 0"
		SDWORD                    -3

Lager32         1328-1254	ENTER SQLExecute 
		HSTMT               0x00BF7AA0

Lager32         1328-1254	EXIT  SQLExecute  with return code -1 (SQL_ERROR)
		HSTMT               0x00BF7AA0

		DIAG [HY000] [Devart][ODBC][Oracle]Key fields not found (5374021) 

Lager32         1328-1254	ENTER SQLErrorW 
		HENV                0x00BF76D8
		HDBC                0x00BF7758
		HSTMT               0x00BF7AA0
		WCHAR *             0x0079EC00
		SDWORD *            0x0079ECCC
		WCHAR *             0x0079E800 
		SWORD                      511 
		SWORD *             0x0079EF0C

Lager32         1328-1254	EXIT  SQLErrorW  with return code 0 (SQL_SUCCESS)
		HENV                0x00BF76D8
		HDBC                0x00BF7758
		HSTMT               0x00BF7AA0
		WCHAR *             0x0079EC00 [       5] "HY000"
		SDWORD *            0x0079ECCC (-858993460)
		WCHAR *             0x0079E800 [      42] "[Devart][ODBC][Oracle]Key fields not found"
		SWORD                      511 
		SWORD *             0x0079EF0C (42)

Lager32         1328-1254	ENTER SQLErrorW 
		HENV                0x00BF76D8
		HDBC                0x00BF7758
		HSTMT               0x00BF7AA0
		WCHAR *             0x0079EC00
		SDWORD *            0x0079ECCC
		WCHAR *             0x0079E800 
		SWORD                      511 
		SWORD *             0x0079EF0C

Lager32         1328-1254	EXIT  SQLErrorW  with return code 100 (SQL_NO_DATA_FOUND)
		HENV                0x00BF76D8
		HDBC                0x00BF7758
		HSTMT               0x00BF7AA0
		WCHAR *             0x0079EC00
		SDWORD *            0x0079ECCC
		WCHAR *             0x0079E800 
		SWORD                      511 
		SWORD *             0x0079EF0C

Lager32         1328-1254	ENTER SQLFreeStmt 
		HSTMT               0x00BF7AA0
		UWORD                        1 <SQL_DROP>

Lager32         1328-1254	EXIT  SQLFreeStmt  with return code 0 (SQL_SUCCESS)
		HSTMT               0x00BF7AA0
		UWORD                        1 <SQL_DROP>
 
There is a issue with a SQL Statement, the SQL statement is OK, Returns 0 records.

I have checked our App with the Oracle ODBC Driver and this works fine.

The App is MFC based ( CRecordSet Classes).

Peter.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: ORACLE ODBC Driver on Windows 8.1

Post by AlexP » Mon 15 Jun 2015 10:35

Thank you for the log, we have reproduced the described case, and will fix it as soon as possible. Currently, to solve the issue, you should add a key field to the table.

dale.shetler
Posts: 1
Joined: Tue 29 Dec 2015 19:46

Re: ORACLE ODBC Driver on Windows 8.1

Post by dale.shetler » Tue 29 Dec 2015 19:50

Has a fix for this been released? I am evaluating these drivers for purchase. I have over a hundred tables and do not want to set up key fields for all just to test the drivers. I am using version 1.02.03.00 dtd November 6, 2015.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: ORACLE ODBC Driver on Windows 8.1

Post by AlexP » Mon 25 Jan 2016 12:15

We have already fixed this problem. The new version with this fix is already available for download at our website

Post Reply