executeQuery verwandelt Werte in Kleinbuchstaben

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Tom »

Wenn ich über eine geöffnete Session auf dem PostGre eine neue Datenbank erzeugen will, bleibt mit nur oSession:executeQuery("CREATE DATABASE 'Datenbankname'"). Es entsteht dabei aber eine Datenbank, die 'datenbankname' heißt. Mit dem SQL-Kommando geht das nicht, weil es mit solchen Ausdrücken nicht umgehen kann. Kennt jemand eine Lösung?
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von ramses »

Auf CREATE DATABASE muss doch der Tabellenname als Klartext ohne Anführungszeichen folgen!???

z.B. "CREATE DATABASE actionindex WITH OWNER = postgres TEMPLATE = template0 ENCODING = 'Latin-1' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = pg_default CONNECTION LIMIT = -1;"
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Tom »

@Carlo: Ja. Wird aber in Kleinbuchstaben umgewandelt. :?
Herzlich,
Tom
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von ramses »

Hallo Tom

Alles Kleinbuchstaben für Namen ist eigentlich die empfohlene Schreibweise.
Ich würde mal Alaska fragen ob Sie in "executeQuery" eine entsprechende Umwandlungsfunktion eingebaut haben.
Valar Morghulis

Gruss Carlo
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Tom »

Hallo, Carlo.
Alles Kleinbuchstaben für Namen ist eigentlich die empfohlene Schreibweise.
Im PostGreSQL-Server jedenfalls nicht, und der agiert case-sensitiv. Wenn ich mit "CREATE DATABASE MeinTest" anlege, entsteht via oSession:executeQuery() "meintest", und wenn ich dann mit "MeinTest" zu konnektieren versuche, schlägt das fehl, während es funktioniert, wenn ich "MeinTest" im Server händisch anlege. Klar kann ich die Logik darauf ausrichten, aber wenn ein IT-Admin die Datenbank vorsorglich angelegt hat, und hat dabei Groß- und Kleinbuchstaben benutzt, finde ich sie nicht, wenn ich standardmäßig nur nach Kleinbuchstaben suche. Aber ich finde es generell ein wenig irritierend, dass hier eine Umwandlung stattfindet.
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Marcus Herz »

SQL Abfragen in Postgres erwarten alle Feld- und Tabellennamen in Kleinbuchstaben, ist etwas in Postgres groß, muss es in " (Doppeltes Hochkomma) eingeschlossen werden
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Tom »

Hallo, Marcus.

Stimmt - danke für die Info! :)
Herzlich,
Tom
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: executeQuery verwandelt Werte in Kleinbuchstaben

Beitrag von Marcus Herz »

Eckige Klammer geht auch, nötig wenn leerzeichen im fekdnamen enthaltne sind, was postgres erlaubt, Alaska aber nicht kanm
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Antworten