![]() |
Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Delphi 7 Professional + Zeos-Lib.
SQL-Fehler zum Verzweifeln
Liste der Anhänge anzeigen (Anzahl: 2)
Langsam, aber sicher bin ich am Verzweifeln.
Ich habe folgendes Mini-Programm zum Testen:
Delphi-Quellcode:
Sobald ich auf btQueryClick drücke, kommt folgende Fehlermeldung:
unit main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection, Grids, DBGrids; type TForm1 = class(TForm) ZConnection1: TZConnection; ZQuery1: TZQuery; btQuery: TButton; DataSource1: TDataSource; DBGrid1: TDBGrid; procedure btQueryClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormDeactivate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btQueryClick(Sender: TObject); var n: integer; begin n := 4; ZQuery1.Close; ZQuery1.SQL.Text := 'SELECT * FROM Systeme WHERE SystemNr = ' + IntToStr(n); ZQuery1.Open; end; procedure TForm1.FormActivate(Sender: TObject); begin ZConnection1.Connect; end; procedure TForm1.FormDeactivate(Sender: TObject); begin ZConnection1.Disconnect; end; end. Zitat:
Ich hänge hier als Anhang auch noch den QUERY und den SATZAUFBAU an. Vielleicht kann mir jemand behilflich sein, ich kämpfe hier schon seit mehreren Stunden. mfg Herbert |
Re: SQL-Fehler zum Verzweifeln
[edit] Siehe nächtster Beitrag :oops: [/edit]
|
Re: SQL-Fehler zum Verzweifeln
Du hast scheinbar überlesen, was ich geschrieben habe:
Es gibt sehr wohl die Spalte SystemNr in der Datei System ... mfg Herbert |
Re: SQL-Fehler zum Verzweifeln
Hi,
sorry, hab ich echt überlesen. Kommt davon wenn man mehrere Thread parallel liest :oops: . Schonmal versucht den Where abschnitt wegzulassen und nur mal "SELECT * FROM Systeme" aufzurufen, oder gibt es dort auch schon eine Fehlermeldung. Was ich auch grad noch sehe. Du macht die Variable n: Integer und wandelst diese nachher in String um, aber SystemNr ist Integer?!?. Entweder du schreibst gleich:
SQL-Code:
oder du machst das ganze per Parameter:
SELECT * FROM Systeme WHERE SystemNr = 4
Delphi-Quellcode:
Zeos.SQL.Text := 'SELECT * FROM Systeme WHERE SystemNr = :nr';
Zeos.ParamByName('nr'].AsInteger := 4; Zeos.Open; |
Re: SQL-Fehler zum Verzweifeln
Jetzt spielt's GRANADA !!!
Haltet euch an: Wenn ich im Objektinspektor unter SQL eingebe: SELECT * FROM Systeme - dann wird alles richtig ausgegeben. Wenn ich im Quelltext eingebe: SELECT * FROM Systeme - dann kommt auch diese blöde Fehlermeldung mit SystemNr 4, obwohl das gar nicht mehr vorkommt. Hier die Routine:
Delphi-Quellcode:
Und trotzdem kommt:
procedure TForm1.btQueryClick(Sender: TObject);
begin ZQuery1.Close; ZQuery1.SQL.Text := 'SELECT * FROM Systeme'; ZQuery1.Open; end; Zitat:
Muss ich jetzt mein Delphi schmeissen oder was würdet ihr hier machen (ausser Verzweifeln)? mfg Herbert |
Re: SQL-Fehler zum Verzweifeln
Hmm,
lösche mal die DCU's und starte Delphi neu. Bei mir hilft das manchmal. |
Re: SQL-Fehler zum Verzweifeln
So, die DCU's gelöscht, jetzt ist wenigstens wieder Ordnung im System - aber es geht trotzdem nicht.
Der SELECT funktioniert ohne weitere Parameter einwandfrei, z.B.: SELECT * FROM System - zeigt alle Zeilen an SELECT * FROM System WHERE SystemNr = 4 - kommt o.a. Fehlermeldung. Ich habe das jetzt auch versuchsweise mit anderen Tabellen probiert - egal - auch dort kommt, sobald ich den WHERE-Parameter benutze, die Fehlermeldung. Vermutlich mache ich hier grundsätzlich etwas falsch - nur was ? Muss ich bei der Zeos-SQL-Komponente etwas besonderes beachten oder einstellen - ich stelle hier nur die Connection zur ZCOnnection ein und setze Request-Live auf TRUE. Der SQL-Aufruf erfolgt dann per Programm. Muss man sonst noch was einstellen? Das kann doch nicht sein, dass man bei den Grundelementen nicht mehr weiterkommt ... mfg Herbert |
Re: SQL-Fehler zum Verzweifeln
Hmm,
stell mal das RequestLive aus. Mit dem hatte ich auch mal Probleme. Vllt. hast du auch alte Zeos-Komponenten und solltest mal auf die neuen Updaten. |
Re: SQL-Fehler zum Verzweifeln
RequestLive ein oder aus - immer dasselbe
Die ZEOS-Komponenten sind die neuesten, erst vor 14 Tagen heruntergeladen. Liegt es vielleicht an den Tabellen selbst - wie könnte ich es dort überprüfen - ich kann es mir zwar nicht vorstellen, da ja alle Daten ohne der WHERE-Klausel einwandfrei angezeigt werden. mfg Herbert |
Re: SQL-Fehler zum Verzweifeln
So, ich habe jetzt meine SYSTEM-Tabelle auch unter mySQL mit dem gleichen Aufbau erstellt und versucht, über mySQL mit dem gleichen ProgrammCode zuzugreifen und siehe da - hier funktioniert es.
Kann das dann doch vielleicht an den Tabellen von Firebird liegen, wenn ja, was könnte ich hier versuchen ? mfg Herbert |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr. |
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