static const char *catcn[][2] = {
{"TYPE_NAME", "TYPE_NAME"},
{"DATA_TYPE", "DATA_TYPE"},
- {"COLUMN_SIZE", "RECISION"},
+ {"COLUMN_SIZE", "PRECISION"},
{"LITERAL_PREFIX", "LITERAL_PREFIX"},
{"LITERAL_SUFFIX", "LITERAL_SUFFIX"},
{"CREATE_PARAMS", "CREATE_PARAMS"},
{
RETCODE ret;
- MYLOG(0, "entering type=%d rec=%d\n", HandleType, RecNumber);
+ MYLOG(0, "entering type=%d rec=%d buffer=%d\n", HandleType, RecNumber, BufferLength);
switch (HandleType)
{
case SQL_HANDLE_ENV:
0, NULL, 0);
break;
case SQL_DIAG_NUMBER:
+ ret = SQL_NO_DATA_FOUND;
+ *((SQLINTEGER *) DiagInfoPtr) = 0;
rtnctype = SQL_C_LONG;
- ret = PGAPI_ConnectError(Handle, RecNumber,
- NULL, NULL, NULL,
- 0, NULL, 0);
+ {
+ SQLCHAR msg[SQL_MAX_MESSAGE_LENGTH + 1];
+ ret = PGAPI_ConnectError(Handle, 1,
+ NULL, NULL, msg,
+ sizeof(msg), &pcbErrm, 0);
+ MYLOG(0, "pcbErrm=%d\n", pcbErrm);
+ }
if (SQL_SUCCEEDED(ret))
{
- *((SQLINTEGER *) DiagInfoPtr) = 1;
+ *((SQLINTEGER *) DiagInfoPtr) = (pcbErrm - 1) / SQL_MAX_MESSAGE_LENGTH + 1;
+ ret = SQL_SUCCESS;
}
break;
case SQL_DIAG_SQLSTATE: