Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Fehler zum Verzweifeln (https://www.delphipraxis.net/44707-sql-fehler-zum-verzweifeln.html)

Basilikum 23. Apr 2005 12:43

Re: SQL-Fehler zum Verzweifeln
 
Firebird handhabt die Gross-Klein-Schreibung bei Feldnamen relativ strickt... entweder Du erstellst alle Felder nur mit Grossbuchstaben (dann ist die Schreibweise in der Query egal), oder Du musst in der Query die Feldnamen mit "" einschliessen (mit korrekter Gross-Klein-Schreibung).

Catbytes 23. Apr 2005 12:59

Re: SQL-Fehler zum Verzweifeln
 
Hallo,

probier mal so:

Delphi-Quellcode:
procedure TForm1.btQueryClick(Sender: TObject);
var
  n: integer;
begin
  n := 4;
  ZQuery1.Close;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM Systeme WHERE SystemNr = ' + IntToStr(n));
  ZQuery1.Open;
end;
Ich gehe davon aus, daß SystemNr auch eine Zahl ist.

Ansonsten halt SystemNr in ' oder " oder was auch immer bei diesem SQL-Dialekt als Anführungszeichen verwendet wird einschliessen...

hsbc 23. Apr 2005 13:17

Re: SQL-Fehler zum Verzweifeln
 
GOTTSEIDANK !!! Es funktioniert.

Fragt mich bitte aber nicht, warum. Manchmal funktioniert eben etwas, man weiss aber nicht warum !

Ich kann es nur auf folgendes darauf zurückführen:

Bei einigen Tabellen war eine View definiert, so auch bei dieser Tabelle SYSTEME. Nachdem ich diese View gelöscht hatte, funktionierte es plötzlich. Kann mir zwar nicht vorstellen, dass das damit zusammenhängen kann, aber es funktioniert.

Ich möchte mich bei allen, die sich an meinem Problem beteiligt hatten, recht herzlich für die Mithilfe danken.

mfg
Herbert

hsbc 25. Apr 2005 07:06

Re: SQL-Fehler zum Verzweifeln
 
Hallo nochmals, allerseits!

Da ich heute nochmals obige Probleme mit Firebird-Tabellen hatte, habe ich mir den SELECT nochmals genauer unter die Lupe genommen und damit Versuche unternommen. Wenn ich SELECT so verwende, wie in diversen Dokumentationen beschrieben, bzw. wie dieser auch mit mySQL-Tabellen einwandfrei funktioniert, so habe ich mit Firebird-Tabellen keinerlei Chance. Es kommt immer der FehlerCode -206 (unbekannte Spalte).

Wenn ich aber Schlüsselworte innerhalb eines doppelten Anführungszeichens setze, dann funktioniert es.
Beispiele:

Zitat:

Funktioniert nicht:
SELECT * FROM ADRESSEN WHERE FamName = 'Mayer' (Funktioniert nur mit mySQL-Tabellen)
SELECT * FROM ADRESSEN (WHERE FamName = 'Mayer')
Nach mehreren Versuchen kam ich dann auf folgendes funktionierendes Ergebnis:

Zitat:

Funktioniert auch mit Firebird:
SELECT * FROM ADRESSEN WHERE ("FamName" = 'Mayer') oder
SELECT * FROM "ADRESSEN" WHERE ("FamName" = 'Mayer')
Hat jemand bereits ähnliche Erfahrung mit Firebird gemacht bzw. kennt jemand die Ursache, zumal ja diese Eigenheit nicht bei allen auftreten dürfte. Wie ich aus den vorangegangenen Berichten entnehme, funktioniert ja bei einigen auch der erstgenannte Zugriff unter Firebird. Kann es ev. auch mit Zeos zusammenhängen, obwohl ich hier die letzte Version verwende?

Was ich noch nicht probiert habe, ist, ob die jetzt unter Firebird funktionierende Version auch ohne Änderung mit mySQL-Tabellen funktioniert, aber das werde ich gleich nachholen.

Kennt jemand eine Lektüre, wo man nachlesen kann, wie man die einzelnen Anweisungen richtig verwendet?

Nachtrag:
Habe soeben Version 2 unter mySQL probiert - wie erwartet - funktioniert dort leider nicht mehr.
Gibt es denn keine einheitliche Lösung, sonst ist doch der Vorteil von Zeos wieder weg.

mfg
Herbert


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz