FirebirdSQL/firebird-odbc-driver

EOF error when only one row in the result [ODBC144]

firebird-automations opened this issue · 3 comments

Submitted by: etenduere (etenduere)

Firebird 2.5 x 64
Odbc driver 2.01.152 x 64

connection setting: Driver=Firebird/InterBase(r) driver;NOWAIT=NOWAIT;CHARSET=ISO8859_1;DIALECT=3;UID=SYSDBA; PWD=masterkey ;DBNAME=D:\Ant.fdb

stmt_ubi.OpenStatement(BD_ubi)

              stmt\_ubi\. ExecuteSQL\(" select ID\_PERSONNE,Name from personne where ID\_PERSONNE \>1201"\) 

                    DO WHILE Not stmt\_ubi\.EOF
                          report      stmt\_ubi\.column\("ID\_PERSONNE"\)
                              stmt\_ubi\.MoveNext
                    Loop

if there is only one row in the result i get twice the single row
if there is more than one row in the result all work well

All work well with the driver 2.00.00.148

Commented by: etenduere (etenduere)

Below is the odbc windows trace for an other sql requeste returning only one row

fcas 1144-119c ENTER SQLExecDirect
HSTMT 0x02B7E5D8
UCHAR * 0x23280940 [ 80] "SELECT ID_ESPACE FROM ESPACES_FORMATION WHERE ID_LIEUX = 4 ORDER BY LIBELLE ASC\ 0"
SDWORD 80

fcas 1144-119c EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
UCHAR * 0x23280940 [ 80] "SELECT ID_ESPACE FROM ESPACES_FORMATION WHERE ID_LIEUX = 4 ORDER BY LIBELLE ASC\ 0"
SDWORD 80

fcas 1144-1148 ENTER SQLNumResultCols
HSTMT 0x02B7E5D8
SWORD * 0x050CBFAE

fcas 1144-1148 EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
SWORD * 0x050CBFAE (1)

fcas 1144-1148 ENTER SQLDescribeCol
HSTMT 0x02B7E5D8
UWORD 1
UCHAR * 0x2339FAE0
SWORD 256
SWORD * 0x2339FBE4
SWORD * 0x2339FBE8
SQLULEN * 0x2339FADC
SWORD * 0x2339FBEC
SWORD * 0x2339FBF0

fcas 1144-1148 EXIT SQLDescribeCol with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
UWORD 1
UCHAR * 0x2339FAE0 [ 9] "ID_ESPACE"
SWORD 256
SWORD * 0x2339FBE4 (9)
SWORD * 0x2339FBE8 (4)
SQLULEN * 0x2339FADC (10)
SWORD * 0x2339FBEC (0)
SWORD * 0x2339FBF0 (0)

fcas 1144-1148 ENTER SQLBindCol
HSTMT 0x02B7E5D8
UWORD 1
SWORD -16 <SQL_C_SLONG>
PTR 0x226D8250
SQLLEN 4
SQLLEN * 0x226D81B0

fcas 1144-1148 EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
UWORD 1
SWORD -16 <SQL_C_SLONG>
PTR 0x226D8250
SQLLEN 4
SQLLEN * 0x226D81B0 (1128685407)

fcas 1144-11a4 ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-11a4 EXIT SQLFetchScroll with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-1148 ENTER SQLRowCount
HSTMT 0x02B7E5D8
SQLLEN * 0x2339F23C

fcas 1144-1148 EXIT SQLRowCount with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
SQLLEN * 0x2339F23C (1)

fcas 1144-11ac ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-11ac EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-1148 ENTER SQLErrorW
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F980
SDWORD * 0x2339F9C0
WCHAR * 0x2339F580
SWORD 512
SWORD * 0x2339F9BC

fcas 1144-1148 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F980
SDWORD * 0x2339F9C0
WCHAR * 0x2339F580
SWORD 512
SWORD * 0x2339F9BC

fcas 1144-11b4 ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 4 <SQL_FETCH_PRIOR>
SQLLEN 0

fcas 1144-11b4 EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 4 <SQL_FETCH_PRIOR>
SQLLEN 0

fcas 1144-1148 ENTER SQLErrorW
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F94C
SDWORD * 0x2339F98C
WCHAR * 0x2339F54C
SWORD 512
SWORD * 0x2339F988

fcas 1144-1148 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F94C
SDWORD * 0x2339F98C
WCHAR * 0x2339F54C
SWORD 512
SWORD * 0x2339F988

fcas 1144-11bc ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-11bc EXIT SQLFetchScroll with return code 0 (SQL_SUCCESS)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-11c4 ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-11c4 EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLLEN 0

fcas 1144-1148 ENTER SQLErrorW
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F980
SDWORD * 0x2339F9C0
WCHAR * 0x2339F580
SWORD 512
SWORD * 0x2339F9BC

fcas 1144-1148 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F980
SDWORD * 0x2339F9C0
WCHAR * 0x2339F580
SWORD 512
SWORD * 0x2339F9BC

fcas 1144-11cc ENTER SQLFetchScroll
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 4 <SQL_FETCH_PRIOR>
SQLLEN 0

fcas 1144-11cc EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x02B7E5D8
SQLSMALLINT 4 <SQL_FETCH_PRIOR>
SQLLEN 0

fcas 1144-1148 ENTER SQLErrorW
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F94C
SDWORD * 0x2339F98C
WCHAR * 0x2339F54C
SWORD 512
SWORD * 0x2339F988

fcas 1144-1148 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 0x02B89428
HDBC 0x00000000
HSTMT 0x02B7E5D8
WCHAR * 0x2339F94C
SDWORD * 0x2339F98C
WCHAR * 0x2339F54C
SWORD 512
SWORD * 0x2339F988

fcas 1144-11d4 ENTER SQLFreeStmt
HSTMT 0x02B7E5D8
UWORD 1 <SQL_DROP>

fcas 1144-11d4 EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x02B7E5D8
UWORD 1 <SQL_DROP>

fcas 1144-11dc ENTER SQLDisconnect
HDBC 0x034DF9E8

fcas 1144-11dc EXIT SQLDisconnect with return code 0 (SQL_SUCCESS)
HDBC 0x034DF9E8

fcas 1144-1148 ENTER SQLFreeConnect
HDBC 0x034DF9E8

fcas 1144-1148 EXIT SQLFreeConnect with return code 0 (SQL_SUCCESS)
HDBC 0x034DF9E8

Commented by: @alexpotapchenko

Can you give me full sources of your test application? I can not reproduce it in my tests.

Modified by: @alexpotapchenko

status: Open [ 1 ] => Closed [ 6 ]

resolution: Cannot Reproduce [ 5 ]

Fix Version: 2.0.3 [ 10581 ]