SQLGetDiagField bug

From: V T <vova20007(at)gmail(dot)com>
To: pgsql-odbc(at)lists(dot)postgresql(dot)org
Subject: SQLGetDiagField bug
Date: 2021-10-06 23:22:31
Message-ID: CALAVXY5JMTkKvXWDEOyBwVb1t2M1-pqop7oNpkZC6bQgTskEcw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

SQLGetDiagField(SQL_DIAG_NUMBER) with SQL_HANDLE_DBC returns SQL_NO_DATA
even if an error record exists.

if I request one of unimplemented info types
SQL_DATETIME_LITERALS
SQL_STANDARD_CLI_CONFORMANCE
SQL_XOPEN_CLI_YEAR

SQLUINTEGER bitmask;
SQLRETURN rc;

rc = SQLGetInfo(hdbc, SQL_DATETIME_LITERALS, &bitmask, sizeof(bitmask),
NULL); // _ASSERT(rc == 0);
if (rc != SQL_SUCCESS)
{
SQLLEN numRecs;
SQLCHAR Msg[SQL_MAX_MESSAGE_LENGTH + 1];

rc = SQLGetDiagField(SQL_HANDLE_DBC, hdbc, 0, SQL_DIAG_NUMBER,
&numRecs, 0, nullptr); // _ASSERT(rc == 0);
// returns SQL_NO_DATA

// but this returns valid message
rc = SQLGetDiagRec(SQL_HANDLE_DBC, hdbc, 1, NULL, NULL, Msg,
sizeof(Msg), NULL); _ASSERT(rc == 0);
__debugbreak();
}

Also there is a typo in function PGAPI_GetTypeInfo(HSTMT hstmt, SQLSMALLINT
fSqlType) [info.c]
https://git.postgresql.org/gitweb/?p=psqlodbc.git;a=blob;f=info.c;h=2ce1a5acd19052c2525bdd5b2ab02701eb6cba1d;hb=HEAD#l1161
"RECISION" should be "PRECISION"

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Inoue,Hiroshi 2021-10-11 09:44:55 Re: SQLGetDiagField bug
Previous Message Kamil ADEM 2021-10-01 12:12:39 RE: Procedure parameter list enumeration error