AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Fehler zum Verzweifeln
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Fehler zum Verzweifeln

Ein Thema von hsbc · begonnen am 23. Apr 2005 · letzter Beitrag vom 25. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#1

SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 09:38
Datenbank: Firebird • Version: 1.5.2 • Zugriff über: Delphi 7 Professional + Zeos-Lib.
Langsam, aber sicher bin ich am Verzweifeln.

Ich habe folgendes Mini-Programm zum Testen:

Delphi-Quellcode:
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.
Sobald ich auf btQueryClick drücke, kommt folgende Fehlermeldung:

Zitat:
SQL Error: Dynamischer SQL Fehler SQL Fehlercode = -206 unbekannte Spalte SYSTEMNR At line 1, column 29: -206.
Spalte gehört nicht zur referenzierten Tabelle The SQL: SELECT * FROM Systeme WHERE SystemNr = 4
Diese ist für mich insofern unverständlich, da sehr wohl das Feld SYSTEMNR in der Datei SYSTEME vorkommt.

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
Miniaturansicht angehängter Grafiken
tabelle_937.jpg   query_536.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 09:43
[edit] Siehe nächtster Beitrag [/edit]
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 09:50
Du hast scheinbar überlesen, was ich geschrieben habe:

Es gibt sehr wohl die Spalte SystemNr in der Datei System ...

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 09:58
Hi,

sorry, hab ich echt überlesen. Kommt davon wenn man mehrere Thread parallel liest .

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:

SELECT * FROM Systeme WHERE SystemNr = 4 oder du machst das ganze per Parameter:

Delphi-Quellcode:
Zeos.SQL.Text := 'SELECT * FROM Systeme WHERE SystemNr = :nr';
Zeos.ParamByName('nr'].AsInteger := 4;
Zeos.Open;
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#5

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 10:15
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:
procedure TForm1.btQueryClick(Sender: TObject);
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text := 'SELECT * FROM Systeme';
  ZQuery1.Open;
end;
Und trotzdem kommt:

Zitat:
SQL Error: Dynamischer SQL Fehler SQL Fehlercode = -206 unbekannte Spalte SYSTEMNR At line 1, column 29: -206.
Spalte gehört nicht zur referenzierten Tabelle The SQL: SELECT * FROM Systeme WHERE SystemNr = 4
Es gibt keinerlei Referenz mehr zu SystemNr 4 - weder im Quelltext, noch im Objektinspektor!

Muss ich jetzt mein Delphi schmeissen oder was würdet ihr hier machen (ausser Verzweifeln)?

mfg
Herbert
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 10:23
Hmm,

lösche mal die DCU's und starte Delphi neu. Bei mir hilft das manchmal.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#7

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 10:43
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
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 10:45
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.
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#9

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 10:56
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
  Mit Zitat antworten Zitat
hsbc

Registriert seit: 28. Jan 2004
Ort: Krems/Donau
404 Beiträge
 
Delphi 7 Professional
 
#10

Re: SQL-Fehler zum Verzweifeln

  Alt 23. Apr 2005, 11:06
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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