Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL error code = -104 Token unknown (https://www.delphipraxis.net/31669-sql-error-code-%3D-104-token-unknown.html)

Overburn 12. Okt 2004 14:32


SQL error code = -104 Token unknown
 
Hallo!
Ich verwende folgenden Code aus eurer Library:
DB Grid sortieren

Da ich als Datenbank Interbase benutze habe ich versucht, diesen Code anzupassen. Dabei ist folgendes Herausgekommen:
Delphi-Quellcode:
 
procedure TSeriennummerdatenbank.DBGrid1TitleClick(Column: TColumn);
var sql : string;
begin
sSortColumn := DBGrid1.Columns.Items[Column.Index].FieldName;
IBQuery1.Close;
if bSortOrder then
  begin
   sql := 'SELECT * FROM Seriennummern ORDER BY "'+ sSortColumn +'"';
   IBQuery1.sql.add(sql);
  end
else
  begin
   sql := 'SELECT * FROM Seriennummern ORDER BY "'+ sSortColumn + '"   DESC';
   IBQuery1.SQL.Add(sql);
  end;
IBQuery1.Open;
end;
Bei einem einmaligen Klick auf den Spaltentitel eines DBGrids passiert nichts, wenn ich ein zweites mal draufklicke, bekomme ich folgende Fehlermeldung angezeigt:
Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EIBInterBaseError aufgetreten. Meldung: 'Dynamic SQL Error SQL error code = -104 Token unknow - line 2, char 1 SELECT'
Könnt ihr mir da helfen?

Mit freundlichen Grüßen,
Overburn

[edit=Admin]URL-Tags korrigiert. Mfg, Daniel[/edit]

2kstealth 12. Okt 2004 14:58

Re: SQL error code = -104 Token unknown
 
Ich möchte zu meinem Statement gleich vorab sagen,
dass ich nicht weiß ob es dir helfen kann.

Ich habe ein Programm in C++ geschrieben das einen
ähnlichen Zugriff startet.

Bei C++ ist es so:

Man braucht das Item Source aus der Sparte Datenzugriff.
Zusätzlich braucht man ein Item das den Query weitergibt,
hierzu habe ich ein anderes verwendet als du wahrscheinlich
benötigst.

Du wirst wahrscheinlich das Item IBQuery aus der Sparte InterBase
benötigen.
Nun ist das wichtige die Verweise der einzelnen Komponenten:

Ich gebe zu das es schon ewig her ist das ich das Programm geschrieben habe.
Es ist so, dass man eine 'Schleife' bauen kann, mit der das ganze Unterfangen
schiefgeht. Das Problem ist das man Query und Source zueinander verlinken kann,
Und damit geschieht nichts.
Der Query würde sozusagen immer hin und her gegeben.

Du musst wahrscheinlich der Source den Query zuweisen und nicht andersherum.

Wenn das nicht funktionieren sollte, versuche es andersherum.
Aber bitte nicht beiden den jeweils anderen zuweisen.


Ich hoffe das dir das helfen kann was ich hier geschrieben habe. :angel2:

Mit freundlichen Grüßen

StEaLtH

MarkusB 12. Okt 2004 15:36

Re: SQL error code = -104 Token unknown
 
Moin Overburn!

Versuch bitte etwa so:

Delphi-Quellcode:
...
begin
  IBQuery1.sql.clear;
  sql := 'SELECT * FROM Seriennummern ORDER BY ' + sSortColumn;
  IBQuery1.sql.add(sql);
end
...
Viele Grüße
Markus
:gruebel:

Robert_G 12. Okt 2004 15:44

Re: SQL error code = -104 Token unknown
 
  • Da fehlt was: ;)
    Delphi-Quellcode:
       sql := 'SELECT * FROM Seriennummern ORDER BY "'+ sSortColumn +'"';
       IBQuery1.sql.add(sql);
    Beim ersten Klick steht das drin:
    SQL-Code:
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    Beim zweiten das:
    SQL-Code:
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    Beim dritten das:
    SQL-Code:
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    SELECT * FROM Seriennummern ORDER BY "SomeColumn"
    Du solltest den SQL Code also nicht nur anfügen sondern jedesmal direkt zuweisen:
    Delphi-Quellcode:
    With SomeQuery Do
    Begin
      SQL.Text := Format('SELECT *' + #10 +
                         'FROM  Seriennummern' + #10 +
                         'ORDER BY "%s"'
                         ,[sSortColumn]);
      Open();
    End;
  • Außerdem hast du das da vergessen:
    Delphi-Quellcode:
    bSortOrder := not bSortOrder;
    Du wirst deshalb immer aufsteigend sortieren. ;)

Overburn 18. Okt 2004 07:27

Re: SQL error code = -104 Token unknown
 
Hallo!
Danke für eure Antwort. Es funktioniert jetzt!

MfG, Overburn

Alfons_G 24. Okt 2004 21:07

Re: SQL error code = -104 Token unknown
 
Wenn man aus eirgendeinem Grund den SQL-Befehl mit SQL.Add() zuweisen will, dann geht das auch, wenn man zuerst mit SQL.Clear den alten SQL-Befehl rauswirft. Add ist aber hauptsächlich denn sinnvoll, wenn man den SQL-befehl abhängig von Bedingungen zeilenweise aufbauen will.

:coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr.

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