Description:
Hi,
I have a strange problem in the return types of the query:
select count(*) from table gives in MySQL Version 4.0.x an return
type of long. In Version 4.1.x its an char ("0").
The query goes vi MyODBC to MySQL. I checked the ODBC Trace to see
the different return types.
With Version 4.1.x I use MyODBC Version 3.52.00, with Version 4.0.x
I use MyODBC 3.52.
I did some test on W2K and SuSE Linux, but it doesn't matter.
Here are the important lines of the odbc-trace.
Query
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vfp8 af-bc ENTER SQLExecDirect
HSTMT 035F5998
UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0"
SDWORD -3
vfp8 af-bc EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0"
SDWORD -3
Result
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 1 <SQL_COLUMN_NAME>
PTR 0x0012F4AC
SWORD 255
SWORD * 0x00000000
SQLLEN * 0x0012F724 (0)
vfp8 af-bc ENTER SQLFetch
HSTMT 035F5998
vfp8 af-bc EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
vfp8 af-bc ENTER SQLGetData
HSTMT 035F5998
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x024CB151
SQLLEN 22
SQLLEN * 0x0012F5A4
vfp8 af-bc EXIT SQLGetData with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x024CB151 [ 1] "1"
SQLLEN 22
SQLLEN * 0x0012F5A4 (1)
+++++++++++++++++++++++++++++++++++++++++++++
Does anyone know about this problem?
I already checked the manual/bug/changes section.
But I did get any ideas.
As attachment I send the full odbc-trace.
Sincerely,
Mario
--
vfp8 af-bc ENTER SQLExecDirect
HSTMT 035F5998
UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0"
SDWORD -3
vfp8 af-bc EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0"
SDWORD -3
vfp8 af-bc ENTER SQLNumResultCols
HSTMT 035F5998
SWORD * 0x0012F98C
vfp8 af-bc EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
SWORD * 0x0012F98C (1)
vfp8 af-bc ENTER SQLNumResultCols
HSTMT 035F5998
SWORD * 0x0012F720
vfp8 af-bc EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
SWORD * 0x0012F720 (1)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 2 <SQL_COLUMN_TYPE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 2 <SQL_COLUMN_TYPE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (-5)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 6 <SQL_COLUMN_DISPLAY_SIZE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 6 <SQL_COLUMN_DISPLAY_SIZE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (21)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 4 <SQL_COLUMN_PRECISION>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 4 <SQL_COLUMN_PRECISION>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (19)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 5 <SQL_COLUMN_SCALE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 5 <SQL_COLUMN_SCALE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (0)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 7 <SQL_COLUMN_NULLABLE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 7 <SQL_COLUMN_NULLABLE>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (0)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 9 <SQL_COLUMN_MONEY>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 9 <SQL_COLUMN_MONEY>
PTR 0x00000000
SWORD 0
SWORD * 0x00000000
SQLLEN * 0x0012F724 (0)
vfp8 af-bc ENTER SQLColAttributes
HSTMT 035F5998
UWORD 1
UWORD 1 <SQL_COLUMN_NAME>
PTR 0x0012F4AC
SWORD 255
SWORD * 0x00000000
SQLLEN * 0x0012F724
vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
UWORD 1 <SQL_COLUMN_NAME>
PTR 0x0012F4AC
SWORD 255
SWORD * 0x00000000
SQLLEN * 0x0012F724 (0)
vfp8 af-bc ENTER SQLFetch
HSTMT 035F5998
vfp8 af-bc EXIT SQLFetch with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
vfp8 af-bc ENTER SQLGetData
HSTMT 035F5998
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x024CB151
SQLLEN 22
SQLLEN * 0x0012F5A4
vfp8 af-bc EXIT SQLGetData with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x024CB151 [ 1] "1"
SQLLEN 22
SQLLEN * 0x0012F5A4 (1)
vfp8 af-bc ENTER SQLFetch
HSTMT 035F5998
vfp8 af-bc EXIT SQLFetch with return code 100 (SQL_NO_DATA_FOUND)
HSTMT 035F5998
vfp8 af-bc ENTER SQLMoreResults
HSTMT 035F5998
vfp8 af-bc EXIT SQLMoreResults with return code 100 (SQL_NO_DATA_FOUND)
HSTMT 035F5998
vfp8 af-bc ENTER SQLFreeStmt
HSTMT 035F5998
UWORD 0 <SQL_CLOSE>
vfp8 af-bc EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 0 <SQL_CLOSE>
vfp8 af-bc ENTER SQLFreeStmt
HSTMT 035F5998
UWORD 3 <SQL_RESET_PARAMS>
vfp8 af-bc EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 035F5998
UWORD 3 <SQL_RESET_PARAMS>
How to repeat:
--
Suggested fix:
--
Description: Hi, I have a strange problem in the return types of the query: select count(*) from table gives in MySQL Version 4.0.x an return type of long. In Version 4.1.x its an char ("0"). The query goes vi MyODBC to MySQL. I checked the ODBC Trace to see the different return types. With Version 4.1.x I use MyODBC Version 3.52.00, with Version 4.0.x I use MyODBC 3.52. I did some test on W2K and SuSE Linux, but it doesn't matter. Here are the important lines of the odbc-trace. Query ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ vfp8 af-bc ENTER SQLExecDirect HSTMT 035F5998 UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0" SDWORD -3 vfp8 af-bc EXIT SQLExecDirect with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0" SDWORD -3 Result ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 1 <SQL_COLUMN_NAME> PTR 0x0012F4AC SWORD 255 SWORD * 0x00000000 SQLLEN * 0x0012F724 (0) vfp8 af-bc ENTER SQLFetch HSTMT 035F5998 vfp8 af-bc EXIT SQLFetch with return code 0 (SQL_SUCCESS) HSTMT 035F5998 vfp8 af-bc ENTER SQLGetData HSTMT 035F5998 UWORD 1 SWORD 1 <SQL_C_CHAR> PTR 0x024CB151 SQLLEN 22 SQLLEN * 0x0012F5A4 vfp8 af-bc EXIT SQLGetData with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 SWORD 1 <SQL_C_CHAR> PTR 0x024CB151 [ 1] "1" SQLLEN 22 SQLLEN * 0x0012F5A4 (1) +++++++++++++++++++++++++++++++++++++++++++++ Does anyone know about this problem? I already checked the manual/bug/changes section. But I did get any ideas. As attachment I send the full odbc-trace. Sincerely, Mario -- vfp8 af-bc ENTER SQLExecDirect HSTMT 035F5998 UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0" SDWORD -3 vfp8 af-bc EXIT SQLExecDirect with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UCHAR * 0x015CF1D0 [ -3] "select count(*) from test\ 0" SDWORD -3 vfp8 af-bc ENTER SQLNumResultCols HSTMT 035F5998 SWORD * 0x0012F98C vfp8 af-bc EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS) HSTMT 035F5998 SWORD * 0x0012F98C (1) vfp8 af-bc ENTER SQLNumResultCols HSTMT 035F5998 SWORD * 0x0012F720 vfp8 af-bc EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS) HSTMT 035F5998 SWORD * 0x0012F720 (1) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 2 <SQL_COLUMN_TYPE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 2 <SQL_COLUMN_TYPE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (-5) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 6 <SQL_COLUMN_DISPLAY_SIZE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 6 <SQL_COLUMN_DISPLAY_SIZE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (21) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 4 <SQL_COLUMN_PRECISION> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 4 <SQL_COLUMN_PRECISION> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (19) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 5 <SQL_COLUMN_SCALE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 5 <SQL_COLUMN_SCALE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (0) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 7 <SQL_COLUMN_NULLABLE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 7 <SQL_COLUMN_NULLABLE> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (0) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 9 <SQL_COLUMN_MONEY> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 9 <SQL_COLUMN_MONEY> PTR 0x00000000 SWORD 0 SWORD * 0x00000000 SQLLEN * 0x0012F724 (0) vfp8 af-bc ENTER SQLColAttributes HSTMT 035F5998 UWORD 1 UWORD 1 <SQL_COLUMN_NAME> PTR 0x0012F4AC SWORD 255 SWORD * 0x00000000 SQLLEN * 0x0012F724 vfp8 af-bc EXIT SQLColAttributes with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 UWORD 1 <SQL_COLUMN_NAME> PTR 0x0012F4AC SWORD 255 SWORD * 0x00000000 SQLLEN * 0x0012F724 (0) vfp8 af-bc ENTER SQLFetch HSTMT 035F5998 vfp8 af-bc EXIT SQLFetch with return code 0 (SQL_SUCCESS) HSTMT 035F5998 vfp8 af-bc ENTER SQLGetData HSTMT 035F5998 UWORD 1 SWORD 1 <SQL_C_CHAR> PTR 0x024CB151 SQLLEN 22 SQLLEN * 0x0012F5A4 vfp8 af-bc EXIT SQLGetData with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 1 SWORD 1 <SQL_C_CHAR> PTR 0x024CB151 [ 1] "1" SQLLEN 22 SQLLEN * 0x0012F5A4 (1) vfp8 af-bc ENTER SQLFetch HSTMT 035F5998 vfp8 af-bc EXIT SQLFetch with return code 100 (SQL_NO_DATA_FOUND) HSTMT 035F5998 vfp8 af-bc ENTER SQLMoreResults HSTMT 035F5998 vfp8 af-bc EXIT SQLMoreResults with return code 100 (SQL_NO_DATA_FOUND) HSTMT 035F5998 vfp8 af-bc ENTER SQLFreeStmt HSTMT 035F5998 UWORD 0 <SQL_CLOSE> vfp8 af-bc EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 0 <SQL_CLOSE> vfp8 af-bc ENTER SQLFreeStmt HSTMT 035F5998 UWORD 3 <SQL_RESET_PARAMS> vfp8 af-bc EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS) HSTMT 035F5998 UWORD 3 <SQL_RESET_PARAMS> How to repeat: -- Suggested fix: --