Re: JDBC 'Unterminated quoted string'
От | Grant Finnemore |
---|---|
Тема | Re: JDBC 'Unterminated quoted string' |
Дата | |
Msg-id | 3A0A68FF.35ACA12C@ucs.co.za обсуждение исходный текст |
Ответ на | Re: JDBC 'Unterminated quoted string' (Christopher Farley <chris@northernbrewer.com>) |
Список | pgsql-interfaces |
Christopher, A patch for the postgresql driver - class PreparedStatement.java in both jdbc1 and jdbc2. 274,285c274 < < /* If the string contains a null zero, when it reaches the < * backend, the C routines to manipulate a string will < * assume that the string is finished at this point. This < * will result in an 'Unterminated string constant' error < * from the backend. Hence, before inserting the character, < * check if it is a null zero, and if so, escape it. < */ < if (c != '\0') < b.append(c); < else < b.append("\\0"); --- > b.append(c); Regards, Grant Christopher Farley wrote: > If you setString(1,null), it does work. > > I am actually doing a setString(1,String.valueOf('\0')), which causes the > unterminated string error. > > Although this didn't fail under the previous RDBMS (PervasiveSQL), I > have considered that setting a Java char to '\0' is just bad programming > practice. However: > > - Both Postgresql and Java evaluate '\0' as ''. > > - You can't set a Java char to ''. > > - Many people have a need to map chars to a RDBMS > > So it seems reasonable to me that the JDBC driver should escape NULL chars > as '\\0' rather than pass the character unparsed where it will be treated > as a NUL terminator when it appears in a C string. > > Damn these primitive types in Java! > > ---- > Christopher Farley > Northern Brewer / 1150 Grand Avenue / St. Paul, MN 55105 > www.northernbrewer.com > > On Thu, 9 Nov 2000, Grant Finnemore wrote: > -- > Poorly planned software requires a genius to write it > and a hero to use it. Grant Finnemore BSc(Eng) (mailto:gaf@ucs.co.za) Software Engineer Universal Computer Services Tel (+27)(11)712-1366 PO Box 31266 Braamfontein 2017, South Africa Cell (+27)(82)604-5536 20th Floor, 209 Smit St., Braamfontein Fax (+27)(11)339-3421 Johannesburg, South Africa
В списке pgsql-interfaces по дате отправления: