Обсуждение: 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.
Вложения
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/