Thread: Re: B7 option

Re: B7 option

From
Barry Bell
Date:
Hi:
  I was using the last odbc driver (9.1.200) to get a character field with CR and LF.
With the following connection string, the last character was getting cut off (When a CR LF was in the fied).
Driver={PostgreSQL UNICODE};Server=
server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;TextAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1;
B0=254;B7=0;C5=1;

Changing the B7 to B7=0 corrects the issue (no cut off at the end)

Driver={PostgreSQL UNICODE};Server=
server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;TextAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1;
B0=254;B7=1;C5=1;

Documentation on the B7 is a little scarce but most say the B7 is the same as the TextasLongVarchar, but changing the
TextaslongVarcharhas no offection on this option.
 

What happens when the B7 is set 0?   (and textaslongvarhar=1)


Re: B7 option

From
"Inoue, Hiroshi"
Date:
Hi Barry,

(2013/07/31 23:29), Barry Bell wrote:
> Hi:
>    I was using the last odbc driver (9.1.200) to get a character field with CR and LF.
> With the following connection string, the last character was getting cut off (When a CR LF was in the fied).
> Driver={PostgreSQL UNICODE};Server=
server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;TextAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1;
B0=254;B7=0;C5=1;

Contradictory options TextAsLongVarchar=1 and B7=0 are specified.
Psqlodbc drivers eat the tokens one by one and overwrite the former
option by the latter one after all.

> Changing the B7 to B7=0 corrects the issue (no cut off at the end)

Changing to B7=1?

> Driver={PostgreSQL UNICODE};Server=
server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;TextAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1;
B0=254;B7=1;C5=1;
>
> Documentation on the B7 is a little scarce but most say the B7 is the same as the TextasLongVarchar, but changing the
TextaslongVarcharhas no offection on this option. 
>
> What happens when the B7 is set 0?   (and textaslongvarhar=1)





FW: B7 option

From
Barry Bell
Date:
If there a is a LF(char(10) inside a string and the B7=1, the string returned by the driver will cut off 1 character
foreach LF(chr(10) inside the string.
 
If the B7=0 the full string si returned.

Field='ABC (LF)123'

Ex:  B7=1
Field='ABC (LF)12'
EX B7=0:
Field='ABC (LF)123'

Any idea why a chr(10) (LF) in a field would cause this?

-----Original Message-----
From: pgsql-odbc-owner@postgresql.org [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Inoue, Hiroshi
Sent: Wednesday, July 31, 2013 11:20 PM
To: Barry Bell
Cc: Frank A. U.; psql-odbc
Subject: Re: [ODBC] B7 option

Hi Barry,

(2013/07/31 23:29), Barry Bell wrote:
> Hi:
>    I was using the last odbc driver (9.1.200) to get a character field with CR and LF.
> With the following connection string, the last character was getting cut off (When a CR LF was in the fied).
> Driver={PostgreSQL UNICODE};Server= 
> server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;Te
> xtAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1; 
> B0=254;B7=0;C5=1;

Contradictory options TextAsLongVarchar=1 and B7=0 are specified.
Psqlodbc drivers eat the tokens one by one and overwrite the former option by the latter one after all.

> Changing the B7 to B7=0 corrects the issue (no cut off at the end)

Changing to B7=1?

> Driver={PostgreSQL UNICODE};Server= 
> server.servicer.com;Port=5432;Database=dbname;Uid=user;Pwd=pwd;BI=2;Te
> xtAsLongVarchar=1;UnknownSizes=2;UseServerSidePrepare=1; 
> B0=254;B7=1;C5=1;
>
> Documentation on the B7 is a little scarce but most say the B7 is the same as the TextasLongVarchar, but changing the
TextaslongVarcharhas no offection on this option.
 
>
> What happens when the B7 is set 0?   (and textaslongvarhar=1)


Re: B7 option

From
"Inoue, Hiroshi"
Date:
(2013/08/01 21:36), Barry Bell wrote:
> If there a is a LF(char(10) inside a string and the B7=1, the string returned by the driver will cut off 1 character
foreach LF(chr(10) inside the string. 
> If the B7=0 the full string si returned.
>
> Field='ABC (LF)123'
>
> Ex:  B7=1
> Field='ABC (LF)12'
> EX B7=0:
> Field='ABC (LF)123'
>
> Any idea why a chr(10) (LF) in a field would cause this?

Seems there are some bugs in LF<->CRLF conversions.
I would examine it.

Anyway please specify *LFconversion=0* or *C5=0* in your
connection string to suppress LF<->CRLF conversion.

regards,
Hiroshi Inoue