Problem mit Umlaute und DBI
Oliver Mensinger <[email protected]>
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo zusammen, und ein spezielles Hallo an Michael Neumann!
Wenn ich folgendes ausfuehre
dbh.select_one("SELECT * FROM artikel WHERE artikelnr='ö'")
bekomme ich die Fehlermeldung
/usr/local/lib/ruby/site_ruby/1.6/DBD/Pg/Pg.rb:407:in `execute': ERROR:
Unterminated quoted string (DBI::ProgrammingError)
from /usr/local/lib/ruby/site_ruby/1.6/dbi/dbi.rb:952:in `execute'
from /usr/local/lib/ruby/site_ruby/1.6/dbi/dbi.rb:553:in `execute'
from /usr/local/lib/ruby/site_ruby/1.6/dbi/dbi.rb:575:in `select_one'
Ich habe mir "boundsql" aus der Klasse "Statement" ausgeben lassen (puts
boundsql in Zeile 394 in Pg.rb), und siehe da, das Statement heisst da nur noch
SELECT * FROM artikel WHERE artikelnr=ö'
Es fehlt also ein '
Das gleiche mit
dbh.select_one("SELECT * FROM artikel WHERE artikelnr=?", "ö")
funktioniert. Gibt es dafuer eine Erklaerung?? Bloed ist naemlich, dass ich an
ziemlich vielen Stellen mit dem obigen Ausdruck arbeite...
Ach ja, DBI ist Version 0.0.13, Ruby 1.6.7, und die DB ist eine Postgres, der
Treiber ist "ruby-postgres-0.6.5.tar.gz". Ich denke alles ist neueste Version.
Nee, auch nach Installation von 0.0.15 ist das Problem vorhanden.
Mal sehen, vielleicht stelle ich einfach die rund 30 Programm-Module um...
Ich versuche jetzt mal die Problem-Abfrage mit MySQL, vielleicht liegt's ja am
DB Treiber?!
Vielen Dank im voraus!
Gruesse, Oliver Mensinger.