Thread: ODBC Numeric field issue

ODBC Numeric field issue

From
Luciane
Date:
Hi everyone,

I'm trying to access postgres using a ODBC Driver on a Linux system RedHat,
but I'm getting errors with numeric fields, it works only with one numeric
field. Another erro is that it is inserting a NULL record as well.
Below is my ODBC configuration and extracts from the erros on the debug
file. I've tried different versions of ODBC Drivers with no success. If any
one more experient could help me I'll be very happy. Actually I don't know
what to do anymore.

Thanks in advance.

Luciane


------> Odbc Configuration .odbc.ini
[PostG]
#Driver=/usr/lib/libodbcpsql.so.2
#Driver=/produtos/unixODBC-2.2.14/Drivers/Postgre7.1/.libs/libodbcpsql.so
#Driver=/produtos/unixODBC-2.2.10/Drivers/Postgre7.1/.libs/libodbcpsql.so
#Driver=/produtos/unixODBC-2.2.12/Drivers/Postgre7.1/.libs/libodbcpsql.so
#Driver=/produtos/unixODBC-2.2.13/Drivers/Postgre7.1/.libs/libodbcpsql.so
Driver=/produtos/unixODBC-2.3.0/Drivers/Postgre7.1/.libs/libodbcpsql.so.2
#Driver=/usr/lib/psqlodbcw.so
Description=drive postgres odbc
ServerPort=10.4.3.21:5432
Servername=pgs1dsv
Database=pgs1dsv
sername=c_gco
Password=inicio
ReadOnly=no
Protocol=7.4
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
Debug=1
DebugFile=/tmp/postgII.out
Trace=yes
TraceFile=/tmp/ODBCTrace.log
UseServerSidePrepare=1
DisallowPremature=1
#Parse=1


------> Debug - inserting NULL Record
SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT
INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)'
   stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2")
VALUES (NULL,NULL,NULL,NULL)'
      it's NOT a select statement: stmt=140373784
send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1",
"n1", "n2") VALUES (NULL,NULL,NULL,NULL)'
send_query: done sending query

------> Debug - Issue on the second numeric field
SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT
INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)'
copy_statement_with_params: from(fcType)=1, to(fSqlType)=5
copy_statement_with_params: from(fcType)=1, to(fSqlType)=4
copy_statement_with_params: from(fcType)=1, to(fSqlType)=2
copy_statement_with_params: from(fcType)=1, to(fSqlType)=2
   stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2")
VALUES (00001,0000000001,'0000000001") VALUES
'::numeric,'0000000110Hé'::numeric)'
      it's NOT a select statement: stmt=140373784
send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1",
"n1", "n2") VALUES (00001,0000000001,'0000000001") VALUES
'::numeric,'0000000110Hé'::numeric)'
send_query: done sending query
read 1, global_socket_buffersize=4096
send_query: got id = 'Z'
read 62, global_socket_buffersize=4096
send_query: got id = 'E'
send_query: 'E' - ERROR:  invalid byte sequence for encoding "UTF8":
0xe95d08


--
View this message in context: http://old.nabble.com/ODBC-Numeric-field-issue-tp28486416p28486416.html
Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.


Re: ODBC Numeric field issue

From
Hiroshi Inoue
Date:
Hi Luciane,

Luciane wrote:
> Hi everyone,
>
> I'm trying to access postgres using a ODBC Driver on a Linux system RedHat,
> but I'm getting errors with numeric fields, it works only with one numeric
> field. Another erro is that it is inserting a NULL record as well.
> Below is my ODBC configuration and extracts from the erros on the debug
> file. I've tried different versions of ODBC Drivers with no success. If any
> one more experient could help me I'll be very happy. Actually I don't know
> what to do anymore.
>
> Thanks in advance.
>
> Luciane
>
>
> ------> Odbc Configuration .odbc.ini
> [PostG]
> #Driver=/usr/lib/libodbcpsql.so.2
> #Driver=/produtos/unixODBC-2.2.14/Drivers/Postgre7.1/.libs/libodbcpsql.so
> #Driver=/produtos/unixODBC-2.2.10/Drivers/Postgre7.1/.libs/libodbcpsql.so
> #Driver=/produtos/unixODBC-2.2.12/Drivers/Postgre7.1/.libs/libodbcpsql.so
> #Driver=/produtos/unixODBC-2.2.13/Drivers/Postgre7.1/.libs/libodbcpsql.so
> Driver=/produtos/unixODBC-2.3.0/Drivers/Postgre7.1/.libs/libodbcpsql.so.2
> #Driver=/usr/lib/psqlodbcw.so
> Description=drive postgres odbc
> ServerPort=10.4.3.21:5432
> Servername=pgs1dsv
> Database=pgs1dsv
> sername=c_gco
> Password=inicio
> ReadOnly=no
> Protocol=7.4
> RowVersioning=No
> ShowSystemTables=No
> ShowOidColumn=No
> FakeOidIndex=No
> Debug=1
> DebugFile=/tmp/postgII.out
> Trace=yes
> TraceFile=/tmp/ODBCTrace.log
> UseServerSidePrepare=1
> DisallowPremature=1
> #Parse=1
>
>
> ------> Debug - inserting NULL Record
> SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT
> INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)'
>    stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2")
> VALUES (NULL,NULL,NULL,NULL)'
>       it's NOT a select statement: stmt=140373784
> send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1",
> "n1", "n2") VALUES (NULL,NULL,NULL,NULL)'
> send_query: done sending query

I can't see what kind of result you expect.
Could you send me directly the Mylog output?

> ------> Debug - Issue on the second numeric field
> SQLExecute: copying statement params: trans_status=1, len=66, stmt='INSERT
> INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?)'
> copy_statement_with_params: from(fcType)=1, to(fSqlType)=5
> copy_statement_with_params: from(fcType)=1, to(fSqlType)=4
> copy_statement_with_params: from(fcType)=1, to(fSqlType)=2
> copy_statement_with_params: from(fcType)=1, to(fSqlType)=2

How do you bind the 4 parameters?

>    stmt_with_params = 'INSERT INTO "teste_carga"("s1", "i1", "n1", "n2")
> VALUES (00001,0000000001,'0000000001") VALUES
> '::numeric,'0000000110Hé'::numeric)'
>       it's NOT a select statement: stmt=140373784
> send_query(): conn=140316008, query='INSERT INTO "teste_carga"("s1", "i1",
> "n1", "n2") VALUES (00001,0000000001,'0000000001") VALUES
> '::numeric,'0000000110Hé'::numeric)'
> send_query: done sending query
> read 1, global_socket_buffersize=4096
> send_query: got id = 'Z'
> read 62, global_socket_buffersize=4096
> send_query: got id = 'E'
> send_query: 'E' - ERROR:  invalid byte sequence for encoding "UTF8":
> 0xe95d08

Re: ODBC Numeric field issue

From
Luciane
Date:

Hiroshi Inoue,

I've uploaded the Mylog_ file.
I'm trying to use PostgresSQL with IBM DataStage.
The problem happens only with the second numeric fiel, I've tried all others
Postgres field types and it works properly.
the SQL shown by Datastage seams to be right to me look:
INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?);
I've asked IBM support and they couldn't help me.

http://old.nabble.com/file/p28511550/mylog_a0251185604.log
mylog_a0251185604.log

Luciane
--
View this message in context: http://old.nabble.com/ODBC-Numeric-field-issue-tp28486416p28511550.html
Sent from the PostgreSQL - odbc mailing list archive at Nabble.com.


Re: ODBC Numeric field issue

From
Hiroshi Inoue
Date:
Luciane wrote:
>
> Hiroshi Inoue,
>
> I've uploaded the Mylog_ file.
> I'm trying to use PostgresSQL with IBM DataStage.
> The problem happens only with the second numeric fiel, I've tried all others
> Postgres field types and it works properly.
> the SQL shown by Datastage seams to be right to me look:
> INSERT INTO "teste_carga"("s1", "i1", "n1", "n2") VALUES (?,?,?,?);
> I've asked IBM support and they couldn't help me.
>
> http://old.nabble.com/file/p28511550/mylog_a0251185604.log
> mylog_a0251185604.log

Thanks.

What kind of psqlodbc driver are you using?
Judging from the log the driver seems far from the current.

regards,
Hiroshi Inoue