Thread: update field with lf chars problem
Hi, We are running 8.01.102 (pg 8.1.1) and we have a quite annoying error. We are able to insert rows that contain line feed characters (and maybe crlf too) into a varchar(14) field but when we attempt to update the same row via odbc we get an error. This happens even though we are setting the field to null. Does anyone have any info on this? Cheers Antoine -- This is where I should put some witty comment.
> We are running 8.01.102 (pg 8.1.1) and we have a quite annoying error. It's quite old version. Is there some reason to not using newer version? > We are able to insert rows that contain line feed characters (and > maybe crlf too) into a varchar(14) field but when we attempt to update > the same row via odbc we get an error. This happens even though we are What kind of error. The error message could clarify the problem a little bit. > setting the field to null. > Does anyone have any info on this? Not at first sight. Does LF <-> CRLF option take some effect? Regards, Luf
On 20/07/06, Ludek Finstrle <luf@pzkagis.cz> wrote: > > We are running 8.01.102 (pg 8.1.1) and we have a quite annoying error. > > It's quite old version. Is there some reason to not using newer > version? > > > We are able to insert rows that contain line feed characters (and > > maybe crlf too) into a varchar(14) field but when we attempt to update > > the same row via odbc we get an error. This happens even though we are > > What kind of error. The error message could clarify the problem a little > bit. The message in French is: La mise à jour basée sur une requête a échouée car la ligne à mettre à jour est introuvable. Which translates roughly to English (sorry couldn't find the proper translation): The query-based update failed because the row to update cannot be found. The column in question is NOT in the primary key, and this only happens when the row is created with lf (and probably crlf) in it - there is no problem setting it to null in other circumstances. > > > setting the field to null. > > Does anyone have any info on this? > > Not at first sight. Does LF <-> CRLF option take some effect? That seems to fix it. I guess I understand why... I would still consider it a bug though - shouldn't the driver take into account the fact that it is doing this conversion when looking for the row? Cheers Antoine -- This is where I should put some witty comment.
> >> We are able to insert rows that contain line feed characters (and > >> maybe crlf too) into a varchar(14) field but when we attempt to update > >> the same row via odbc we get an error. This happens even though we are > > > >What kind of error. The error message could clarify the problem a little > >bit. > > The message in French is: > La mise à jour basée sur une requête a échouée car la ligne à mettre > à > jour est introuvable. > Which translates roughly to English (sorry couldn't find the proper > translation): > The query-based update failed because the row to update cannot be found. > > The column in question is NOT in the primary key, and this only > happens when the row is created with lf (and probably crlf) in it - > there is no problem setting it to null in other circumstances. > > >> setting the field to null. > >> Does anyone have any info on this? > > > >Not at first sight. Does LF <-> CRLF option take some effect? > > That seems to fix it. I guess I understand why... I would still > consider it a bug though - shouldn't the driver take into account the > fact that it is doing this conversion when looking for the row? When driver do the transparent LF <-> CRLF conversion it has to change LF <-> CRLF in all statements (in all parts of statements). If you add the rows with same setting of LF <-> CRLF so it may works ok. BTW noone will fix 08.01 and older versions. Regards, Luf