From: | "Steve Johnson" <steve(dot)johnson(at)missionindia(dot)org> |
---|---|
To: | <pgsql-odbc(at)postgresql(dot)org> |
Subject: | FW: ERROR: Bad numeric input format '.' on insert or update of numeric column with a zero value |
Date: | 2003-08-15 16:45:09 |
Message-ID: | NDBBLMCJCLDDMMKAFLLLAEEBFDAA.steve.johnson@missionindia.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-odbc |
ODBC driver version: 07.03.0100 (ODBC 3 driver)
PostgreSQL database version: 7.3.2
Error message: ERROR: Bad numeric input format '.'
When I attempt to add or update a a row with a numeric(15,2)
column with a value of 0 (zero) or null, I get this error
message. If I change the value to anything else (.01, 1000), the
insert and update work.
Using psql, I am able to insert and update rows with numeric
values of 0 without an error.
If I drop back to the psqlodbc legacy 2.5 driver, I do not get
the error.
I get the error when using the Unicode (beta) driver and the ODBC
3 driver.
My application uses VB6 ADODB recordsets with MDAC 2.7.
For a test case, it should be pretty easy to duplicate. Create a
table with one numeric(15,2) numeric column. Use psql to insert
a row with a value of zero for the column. Now try to do the
same thing through psqlODBC ODBC 3.0 driver and you'll get the
error. If you try to update that row in that table with a value
of zero, you'll get the error as well.
The partial ODBC trace log starting with the problem column:
midb 144-1a0 ENTER SQLBindParameter
HSTMT 055C2C70
UWORD 4
SWORD 1 <SQL_PARAM_INPUT>
SWORD 2 <SQL_C_NUMERIC>
SWORD 2 <SQL_NUMERIC>
SQLULEN 15
SWORD 2
PTR 0x05074BA8
SQLLEN 19
SQLLEN * 0x053A970C
midb 144-1a0 EXIT SQLBindParameter with return code
0 (SQL_SUCCESS)
HSTMT 055C2C70
UWORD 4
SWORD 1 <SQL_PARAM_INPUT>
SWORD 2 <SQL_C_NUMERIC>
SWORD 2 <SQL_NUMERIC>
SQLULEN 15
SWORD 2
PTR 0x05074BA8
SQLLEN 19
SQLLEN * 0x053A970C (19)
midb 144-1a0 ENTER SQLSetDescFieldW
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1005 <SQL_DESC_PRECISION>
SQLPOINTER 0x0000000F
SQLINTEGER 0
midb 144-1a0 ENTER SQLSetDescField
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1005 <SQL_DESC_PRECISION>
SQLPOINTER 0x0000000F
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescField with return code 0
(SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1005 <SQL_DESC_PRECISION>
SQLPOINTER 0x0000000F (BADMEM)
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescFieldW with return code
0 (SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1005 <SQL_DESC_PRECISION>
SQLPOINTER 0x0000000F (BADMEM)
SQLINTEGER 0
midb 144-1a0 ENTER SQLSetDescFieldW
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1006 <SQL_DESC_SCALE>
SQLPOINTER 0x00000002
SQLINTEGER 0
midb 144-1a0 ENTER SQLSetDescField
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1006 <SQL_DESC_SCALE>
SQLPOINTER 0x00000002
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescField with return code 0
(SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1006 <SQL_DESC_SCALE>
SQLPOINTER 0x00000002 (BADMEM)
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescFieldW with return code
0 (SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1006 <SQL_DESC_SCALE>
SQLPOINTER 0x00000002 (BADMEM)
SQLINTEGER 0
midb 144-1a0 ENTER SQLSetDescFieldW
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1010 <SQL_DESC_DATA_PTR>
SQLPOINTER 05074BA8
SQLINTEGER 0
midb 144-1a0 ENTER SQLSetDescField
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1010 <SQL_DESC_DATA_PTR>
SQLPOINTER 05074BA8
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescField with return code 0
(SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1010 <SQL_DESC_DATA_PTR>
SQLPOINTER 05074BA8
SQLINTEGER 0
midb 144-1a0 EXIT SQLSetDescFieldW with return code
0 (SQL_SUCCESS)
SQLHDESC 055C2DD4
SQLSMALLINT 4
SQLSMALLINT 1010 <SQL_DESC_DATA_PTR>
SQLPOINTER 05074BA8
SQLINTEGER 0
midb 144-1a0 ENTER SQLBindParameter
HSTMT 055C2C70
UWORD 5
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 12 <SQL_VARCHAR>
SQLULEN 4096
SWORD 0
PTR 0x05074BBC
SQLLEN 4096
SQLLEN * 0x053A9714
midb 144-1a0 EXIT SQLBindParameter with return code
0 (SQL_SUCCESS)
HSTMT 055C2C70
UWORD 5
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 12 <SQL_VARCHAR>
SQLULEN 4096
SWORD 0
PTR 0x05074BBC
SQLLEN 4096
SQLLEN * 0x053A9714 (0)
midb 144-1a0 ENTER SQLBindParameter
HSTMT 055C2C70
UWORD 6
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 12 <SQL_VARCHAR>
SQLULEN 15
SWORD 0
PTR 0x05075BC0
SQLLEN 15
SQLLEN * 0x053A971C
midb 144-1a0 EXIT SQLBindParameter with return code
0 (SQL_SUCCESS)
HSTMT 055C2C70
UWORD 6
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 12 <SQL_VARCHAR>
SQLULEN 15
SWORD 0
PTR 0x05075BC0
SQLLEN 15
SQLLEN * 0x053A971C (5)
midb 144-1a0 ENTER SQLBindParameter
HSTMT 055C2C70
UWORD 7
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 11 <SQL_TIMESTAMP>
SQLULEN 23
SWORD 0
PTR 0x05075BD0
SQLLEN 23
SQLLEN * 0x053A9724
midb 144-1a0 EXIT SQLBindParameter with return code
0 (SQL_SUCCESS)
HSTMT 055C2C70
UWORD 7
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 11 <SQL_TIMESTAMP>
SQLULEN 23
SWORD 0
PTR 0x05075BD0
SQLLEN 23
SQLLEN * 0x053A9724 (19)
midb 144-1a0 ENTER SQLBindParameter
HSTMT 055C2C70
UWORD 8
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 11 <SQL_TIMESTAMP>
SQLULEN 23
SWORD 0
PTR 0x05075BE8
SQLLEN 23
SQLLEN * 0x053A972C
midb 144-1a0 EXIT SQLBindParameter with return code
0 (SQL_SUCCESS)
HSTMT 055C2C70
UWORD 8
SWORD 1 <SQL_PARAM_INPUT>
SWORD 1 <SQL_C_CHAR>
SWORD 11 <SQL_TIMESTAMP>
SQLULEN 23
SWORD 0
PTR 0x05075BE8
SQLLEN 23
SQLLEN * 0x053A972C (19)
midb 144-1a0 ENTER SQLExecute
HSTMT 055C2C70
midb 144-1a0 EXIT SQLExecute with return code -1
(SQL_ERROR)
HSTMT 055C2C70
DIAG [S1000] ERROR: Bad numeric input format '.' (7)
midb 144-1a0 ENTER SQLGetDiagRecW
SQLSMALLINT 3
SQLHANDLE 055C2C70
SQLSMALLINT 1
SQLWCHAR * 0x0012F074 (NYI)
SQLINTEGER * 0x0012F098
SQLWCHAR * 0x0012EC74 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0012F09C
midb 144-1a0 EXIT SQLGetDiagRecW with return code 0
(SQL_SUCCESS)
SQLSMALLINT 3
SQLHANDLE 055C2C70
SQLSMALLINT 1
SQLWCHAR * 0x0012F074 (NYI)
SQLINTEGER * 0x0012F098 (7)
SQLWCHAR * 0x0012EC74 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0012F09C (36)
midb 144-1a0 ENTER SQLGetDiagRecW
SQLSMALLINT 3
SQLHANDLE 055C2C70
SQLSMALLINT 2
SQLWCHAR * 0x0012F074 (NYI)
SQLINTEGER * 0x0012F098
SQLWCHAR * 0x0012EC74 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0012F09C
midb 144-1a0 EXIT SQLGetDiagRecW with return code
100 (SQL_NO_DATA_FOUND)
SQLSMALLINT 3
SQLHANDLE 055C2C70
SQLSMALLINT 2
SQLWCHAR * 0x0012F074 (NYI)
SQLINTEGER * 0x0012F098
SQLWCHAR * 0x0012EC74 (NYI)
SQLSMALLINT 512
SQLSMALLINT * 0x0012F09C
From | Date | Subject | |
---|---|---|---|
Next Message | muller.rgdsrh | 2003-08-18 08:16:06 | Connection Error |
Previous Message | Luiz Angelo Daros de Luca | 2003-08-13 22:06:54 | Bug when looking for foreign keys |