[egenix-users] Impossible to correct execute stored procedure using cursors

Sirio Capizzi sirio.capizzi at prometeia.it
Wed Nov 5 15:55:49 CET 2008



M.-A. Lemburg ha scritto:
>
> mxODBC 3.0 tries to use the ODBC 3.x API where possible,
> so that may explain why you are seeing different behavior
> compared to mxODBC 2.0.
>
> The SQL Server 2000 ODBC driver is rather old, so it's possible
> that it doesn't support the ODBC 3.x API all that well.
>
> However, our tests pass just fine for that driver as well, but
> AFAIK we don't use cursors in the tested stored procedures, so
> that's something to add to the test suite.
>   
Very interesting... It is possible to force mxODBC to use only the ODBC 
2.0 API? There are newer drivers for SQL Server 2000?
>
> Could you send us an ODBC trace that shows the crash (ie. stops
> after the crash) ?
Of course, you will find it in the attachment. Thank you for your help.

-- 
SIRIO CAPIZZI

Prometeia SpA
Via G. Marconi, 43
40122 Bologna
Italy

e-mail : sirio.capizzi at prometeia.it
phone : +39 051 6480911

---------------------------------------------------------------------------
Il contenuto e gli allegati di questo messaggio sono strettamente confidenziali, e ne sono vietati la diffusione, la riproduzione e l'uso non autorizzato. Il suo contenuto non costituisce impegno da parte della Società salvo accordo scritto tra quest'ultima ed il destinatario. Qualora il presente messaggio Le fosse pervenuto per errore, La preghiamo di comunicare immediatamente al mittente l'errata ricezione e di distruggere quanto ricevuto (compresi i file allegati) senza farne copia.
Qualsivoglia utilizzo non autorizzato del contenuto di questo messaggio costituisce violazione dell'obbligo di non rivelare il contenuto della corrispondenza tra altri soggetti, salvo più grave illecito, ed espone il responsabile alle relative conseguenze.

This e-mail (and any attachment(s)) is strictly confidential and for use only by intended recipient(s). Any use, distribution, reproduction or disclosure by any other person is strictly prohibited. The content of this e-mail does not constitute a commitment by the Company except where provided for in a written agreement between this e-mail addressee and the Company. If you are not an intended recipient(s), please notify the sender promptly and destroy this message and its attachments without reading or saving it in any manner.
Any non authorized use of the content of this message constitutes a violation of the obligation to abstain from learning of the correspondence among other subjects, except for more serious offence, and exposes the person responsible to the relevant consequences.
---------------------------------------------------------------------------

-------------- next part --------------

provaodbc       cb4-1678	ENTER SQLAllocHandle 
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           00000000
		SQLHANDLE *         0098E984

provaodbc       cb4-1678	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  1 <SQL_HANDLE_ENV>
		SQLHANDLE           00000000
		SQLHANDLE *         0x0098E984 ( 0x009a1788)

provaodbc       cb4-1678	ENTER SQLSetEnvAttr 
		SQLHENV             009A1788
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER          0x00000003
		SQLINTEGER                   0 

provaodbc       cb4-1678	EXIT  SQLSetEnvAttr  with return code 0 (SQL_SUCCESS)
		SQLHENV             009A1788
		SQLINTEGER                 200 <SQL_ATTR_ODBC_VERSION>
		SQLPOINTER          0x00000003 (BADMEM)
		SQLINTEGER                   0 

provaodbc       cb4-1678	ENTER SQLAllocHandle 
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           009A1788
		SQLHANDLE *         00A96758

provaodbc       cb4-1678	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  2 <SQL_HANDLE_DBC>
		SQLHANDLE           009A1788
		SQLHANDLE *         0x00A96758 ( 0x009a1830)

provaodbc       cb4-1678	ENTER SQLConnectW 
		HDBC                009A1830
		WCHAR *             0x009A1938 [      -3] "db3\ 0"
		SWORD                       -3 
		WCHAR *             0x745E4EC8 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x745E4EC8 [      -3] "******\ 0"
		SWORD                       -3 

provaodbc       cb4-1678	EXIT  SQLConnectW  with return code 1 (SQL_SUCCESS_WITH_INFO)
		HDBC                009A1830
		WCHAR *             0x009A1938 [      -3] "db3\ 0"
		SWORD                       -3 
		WCHAR *             0x745E4EC8 [      -3] "******\ 0"
		SWORD                       -3 
		WCHAR *             0x745E4EC8 [      -3] "******\ 0"
		SWORD                       -3 

		DIAG [01000] [Microsoft][ODBC SQL Server Driver][SQL Server]Il contesto di database è stato sostituito con 'db3'. (5701) 

		DIAG [01000] [Microsoft][ODBC SQL Server Driver][SQL Server]Changed language setting to us_english. (5703) 

provaodbc       cb4-1678	ENTER SQLErrorW 
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0
		WCHAR *             0x0021F674 
		SWORD                      511 
		SWORD *             0x0021FAC4

provaodbc       cb4-1678	EXIT  SQLErrorW  with return code 0 (SQL_SUCCESS)
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0 (5701)
		WCHAR *             0x0021F674 [     110] "[Microsoft][ODBC SQL Server Driver][SQL Server]Il contesto di database \ff stato sostituito con 'db3'."
		SWORD                      511 
		SWORD *             0x0021FAC4 (110)

provaodbc       cb4-1678	ENTER SQLErrorW 
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0
		WCHAR *             0x0021F674 
		SWORD                      511 
		SWORD *             0x0021FAC4

provaodbc       cb4-1678	EXIT  SQLErrorW  with return code 0 (SQL_SUCCESS)
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0 (5703)
		WCHAR *             0x0021F674 [      86] "[Microsoft][ODBC SQL Server Driver][SQL Server]Changed language setting to us_english."
		SWORD                      511 
		SWORD *             0x0021FAC4 (86)

provaodbc       cb4-1678	ENTER SQLErrorW 
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0
		WCHAR *             0x0021F674 
		SWORD                      511 
		SWORD *             0x0021FAC4

provaodbc       cb4-1678	EXIT  SQLErrorW  with return code 100 (SQL_NO_DATA_FOUND)
		HENV                009A1788
		HDBC                009A1830
		HSTMT               00000000
		WCHAR *             0x0021FA74 (NYI) 
 		SDWORD *            0x0021FAC0
		WCHAR *             0x0021F674 
		SWORD                      511 
		SWORD *             0x0021FAC4

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                       17 <SQL_DBMS_NAME>
		PTR                 0x009A2328 
		SWORD                     2048 
		SWORD *             0x0021F50C

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                       17 <SQL_DBMS_NAME>
		PTR                 0x009A2328 [      40] "Microsoft SQL Server"
		SWORD                     2048 
		SWORD *             0x0021F50C (40)

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                       18 <SQL_DBMS_VER>
		PTR                 0x009A2270 
		SWORD                     2048 
		SWORD *             0x0021F0E8

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                       18 <SQL_DBMS_VER>
		PTR                 0x009A2270 [      20] "08.00.2039"
		SWORD                     2048 
		SWORD *             0x0021F0E8 (20)

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                        6 <SQL_DRIVER_NAME>
		PTR                 0x009A2270 
		SWORD                     2048 
		SWORD *             0x0021F0E8

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                        6 <SQL_DRIVER_NAME>
		PTR                 0x009A2270 [      24] "SQLSRV32.DLL"
		SWORD                     2048 
		SWORD *             0x0021F0E8 (24)

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                        7 <SQL_DRIVER_VER>
		PTR                 0x009A2270 
		SWORD                     2048 
		SWORD *             0x0021F0E8

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                        7 <SQL_DRIVER_VER>
		PTR                 0x009A2270 [      20] "03.85.1132"
		SWORD                     2048 
		SWORD *             0x0021F0E8 (20)

provaodbc       cb4-1678	ENTER SQLGetFunctions 
		HDBC                009A1830
		UWORD                     1016 
		UWORD *             0x0021F504

provaodbc       cb4-1678	EXIT  SQLGetFunctions  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                     1016 
		UWORD *             0x0021F504 (1)

provaodbc       cb4-1678	ENTER SQLGetFunctions 
		HDBC                009A1830
		UWORD                     1020 
		UWORD *             0x0021F504

provaodbc       cb4-1678	EXIT  SQLGetFunctions  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                     1020 
		UWORD *             0x0021F504 (1)

provaodbc       cb4-1678	ENTER SQLGetFunctions 
		HDBC                009A1830
		UWORD                       58 
		UWORD *             0x0021F504

provaodbc       cb4-1678	EXIT  SQLGetFunctions  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                       58 
		UWORD *             0x0021F504 (1)

provaodbc       cb4-1678	ENTER SQLGetFunctions 
		HDBC                009A1830
		UWORD                     1021 
		UWORD *             0x0021F504

provaodbc       cb4-1678	EXIT  SQLGetFunctions  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                     1021 
		UWORD *             0x0021F504 (1)

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                       81 <SQL_GETDATA_EXTENSIONS>
		PTR                 0021F510
		SWORD                     1024 
		SWORD *             0x0021F508

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                       81 <SQL_GETDATA_EXTENSIONS>
		PTR                 0021F510
		SWORD                     1024 
		SWORD *             0x0021F508 (4)

provaodbc       cb4-1678	ENTER SQLGetInfoW 
		HDBC                009A1830
		UWORD                       46 <SQL_TXN_CAPABLE>
		PTR                 0x0021F510
		SWORD                     1024 
		SWORD *             0x0021F508

provaodbc       cb4-1678	EXIT  SQLGetInfoW  with return code 0 (SQL_SUCCESS)
		HDBC                009A1830
		UWORD                       46 <SQL_TXN_CAPABLE>
		PTR                 0x0021F510 (2)
		SWORD                     1024 
		SWORD *             0x0021F508 (2)

provaodbc       cb4-1678	ENTER SQLSetConnectAttr 
		SQLHDBC             009A1830
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER          0x00000000
		SQLINTEGER                   0 

provaodbc       cb4-1678	EXIT  SQLSetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             009A1830
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER          0x00000000
		SQLINTEGER                   0 

provaodbc       cb4-1678	ENTER SQLGetConnectAttr 
		SQLHDBC             009A1830
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER         0x0021F4E0
		SQLINTEGER                   4 
		SQLINTEGER *        0x0021F4E4

provaodbc       cb4-1678	EXIT  SQLGetConnectAttr  with return code 0 (SQL_SUCCESS)
		SQLHDBC             009A1830
		SQLINTEGER                 102 <SQL_ATTR_AUTOCOMMIT>
		SQLPOINTER         0x0021F4E0
		SQLINTEGER                   4 
		SQLINTEGER *        0x0021F4E4 (4)

provaodbc       cb4-1678	ENTER SQLAllocHandle 
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           009A1830
		SQLHANDLE *         00B19EEC

provaodbc       cb4-1678	EXIT  SQLAllocHandle  with return code 0 (SQL_SUCCESS)
		SQLSMALLINT                  3 <SQL_HANDLE_STMT>
		SQLHANDLE           009A1830
		SQLHANDLE *         0x00B19EEC ( 0x009a2270)

provaodbc       cb4-1678	ENTER SQLFreeStmt 
		HSTMT               009A2270
		UWORD                        3 <SQL_RESET_PARAMS>

provaodbc       cb4-1678	EXIT  SQLFreeStmt  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270
		UWORD                        3 <SQL_RESET_PARAMS>

provaodbc       cb4-1678	ENTER SQLFreeStmt 
		HSTMT               009A2270
		UWORD                        0 <SQL_CLOSE>

provaodbc       cb4-1678	EXIT  SQLFreeStmt  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270
		UWORD                        0 <SQL_CLOSE>

provaodbc       cb4-1678	ENTER SQLPrepare 
		HSTMT               009A2270
		UCHAR *             0x00A55C90 [      18] "{call CursorTest}"
		SDWORD                    18

provaodbc       cb4-1678	EXIT  SQLPrepare  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270
		UCHAR *             0x00A55C90 [      18] "{call CursorTest}"
		SDWORD                    18

provaodbc       cb4-1678	ENTER SQLNumParams 
		HSTMT               009A2270
		SWORD *             0x0021FCA8

provaodbc       cb4-1678	EXIT  SQLNumParams  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270
		SWORD *             0x0021FCA8 (0)

provaodbc       cb4-1678	ENTER SQLExecute 
		HSTMT               009A2270

provaodbc       cb4-1678	EXIT  SQLExecute  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270

provaodbc       cb4-1678	ENTER SQLNumResultCols 
		HSTMT               009A2270
		SWORD *             0x0021FCCC

provaodbc       cb4-1678	EXIT  SQLNumResultCols  with return code 0 (SQL_SUCCESS)
		HSTMT               009A2270
		SWORD *             0x0021FCCC (0)

provaodbc       cb4-1678	ENTER SQLGetStmtAttr 
		SQLHSTMT            009A2270
		SQLINTEGER                  14 <SQL_ROW_NUMBER>
		SQLPOINTER          0x0021FCB4
		SQLINTEGER                   4 
		SQLINTEGER *        0x0021FCB8

provaodbc       cb4-1678	EXIT  SQLGetStmtAttr  with return code -1 (SQL_ERROR)
		SQLHSTMT            009A2270
		SQLINTEGER                  14 <SQL_ROW_NUMBER>
		SQLPOINTER          0x0021FCB4
		SQLINTEGER                   4 
		SQLINTEGER *        0x0021FCB8

		DIAG [24000] [Microsoft][Driver Manager ODBC] Stato del cursore non valido. (0) 


More information about the egenix-users mailing list