Thread: Text field truncation problem
I am trying to sort out a problem with ODBC truncating text fields. I am running Postgres 7.2.3, and using the latest ODBC driver from the official website. When I connect through the windows client I get the message: Test2.pl: DBD::ODBC::st fetchrow_hashref failed: Fetched item was truncated. (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated) err=1) I have attached the log from the ODBC if that is any use. Many thanks Graham.
Attachment
Graham Vickrage wrote: > > I am trying to sort out a problem with ODBC truncating text fields. > > I am running Postgres 7.2.3, and using the latest ODBC driver from the > official website. > > When I connect through the windows client I get the message: > > Test2.pl: DBD::ODBC::st fetchrow_hashref failed: Fetched item was > truncated. (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated) err=1) > > I have attached the log from the ODBC if that is any use. Judging from the log, your program is binding a (80+1) byte buffer for the "description" text field. I don't understand where the 80(or 81) come from. OTOH your program seems to be binding the "name" field with a right(50+1 byte) sized buffer. regards, Hiroshi Inoue http://w2422.nsk.ne.jp/~inoue/
So should all the data types be 50+1 bytes, I don't know much about this sort of thing and really need to get this going. Are there any docs, resources anyone knows about where I can try and locate the issue. Is it likely to be a driver problem, postgreSQL, NT problem. Where do I start???? Please heeeeeeeeeeeeeeeelp. Thanks again Graham -----Original Message----- From: Hiroshi Inoue [mailto:Inoue@tpf.co.jp] Sent: 22 November 2002 00:14 To: Graham Vickrage Cc: pgsql-odbc@postgresql.org Subject: Re: [ODBC] Text field truncation problem Graham Vickrage wrote: > > I am trying to sort out a problem with ODBC truncating text fields. > > I am running Postgres 7.2.3, and using the latest ODBC driver from the > official website. > > When I connect through the windows client I get the message: > > Test2.pl: DBD::ODBC::st fetchrow_hashref failed: Fetched item was > truncated. (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated) err=1) > > I have attached the log from the ODBC if that is any use. Judging from the log, your program is binding a (80+1) byte buffer for the "description" text field. I don't understand where the 80(or 81) come from. OTOH your program seems to be binding the "name" field with a right(50+1 byte) sized buffer. regards, Hiroshi Inoue http://w2422.nsk.ne.jp/~inoue/
Further to my e-mail below, I have tried the same thing on a production database running a different version of Linux / Postgres. I have tried this on two separate clients NT and XP and they all have the same problem! Should I start shopping around for a different ODBC driver? Can anyone shed some light on this, surely my set up is pretty standard??? Thanks again, Graham -----Original Message----- From: Graham Vickrage [mailto:graham@gpmd.co.uk] Sent: 22 November 2002 17:11 To: 'Hiroshi Inoue' Cc: 'pgsql-odbc@postgresql.org' Subject: RE: [ODBC] Text field truncation problem So should all the data types be 50+1 bytes, I don't know much about this sort of thing and really need to get this going. Are there any docs, resources anyone knows about where I can try and locate the issue. Is it likely to be a driver problem, postgreSQL, NT problem. Where do I start???? Please heeeeeeeeeeeeeeeelp. Thanks again Graham -----Original Message----- From: Hiroshi Inoue [mailto:Inoue@tpf.co.jp] Sent: 22 November 2002 00:14 To: Graham Vickrage Cc: pgsql-odbc@postgresql.org Subject: Re: [ODBC] Text field truncation problem Graham Vickrage wrote: > > I am trying to sort out a problem with ODBC truncating text fields. > > I am running Postgres 7.2.3, and using the latest ODBC driver from the > official website. > > When I connect through the windows client I get the message: > > Test2.pl: DBD::ODBC::st fetchrow_hashref failed: Fetched item was > truncated. (SQL-01004)(DBD: st_fetch/SQLFetch (long truncated) err=1) > > I have attached the log from the ODBC if that is any use. Judging from the log, your program is binding a (80+1) byte buffer for the "description" text field. I don't understand where the 80(or 81) come from. OTOH your program seems to be binding the "name" field with a right(50+1 byte) sized buffer. regards, Hiroshi Inoue http://w2422.nsk.ne.jp/~inoue/
> -----Original Message----- > From: Graham Vickrage [mailto:graham@gpmd.co.uk] > > Further to my e-mail below, I have tried the same thing on a production > database running a different version of Linux / Postgres. I have tried > this on two separate clients NT and XP and they all have the same > problem! Should I start shopping around for a different ODBC driver? > > Can anyone shed some light on this, surely my set up is pretty > standard??? If the max length of the "descriptor" < 255, please turn off the "Text As LongVarChar" DSN option. regards, Hiroshi Inoue
Hiroshi Inoue wrote: > > > -----Original Message----- > > From: Graham Vickrage [mailto:graham@gpmd.co.uk] > > > > Further to my e-mail below, I have tried the same thing on a production > > database running a different version of Linux / Postgres. I have tried > > this on two separate clients NT and XP and they all have the same > > problem! Should I start shopping around for a different ODBC driver? > > > > Can anyone shed some light on this, surely my set up is pretty > > standard??? > > If the max length of the "descriptor" < 255, please turn off > the "Text As LongVarChar" DSN option. Or set the LongReadLen or LongTruncOk attribute before calling prepare. regards, Hiroshi Inoue http://w2422.nsk.ne.jp/~inoue/