Entwickler-Ecke

Datenbanken - Mit SQL nur eine Spalte anzeigen führt zu Exception


kiwicht - Mi 04.12.02 12:57
Titel: Mit SQL nur eine Spalte anzeigen führt zu Exception
Hi

hab eine DB mit extreeeem vielen Felder und will nun mit Hilfe von Checkboxen dem Anwender ermöglichen Felder ein bzw. auszublenden.

Mein Formular enthält also einmal für jedes Feld der DB ein eigenes DBEdit-Feld sowie eine Gesamtübersicht, ein DBGrid.

Unter FormCreate steht nun folgendes:

DBQuery.SQL.Add('SELECT * FROM datbank');
DBQuery.SQL.Active := True;

Dann habe ich wie gesagt (erstmal nur) eine Checkbox. Dort steht im OnClick-Teil:

DBQuery.SQL.Add('SELECT name FROM datbank');

Die Abfrage ob der Checkbox-Status true oder false habe ich ersteinmal rausgelassen, da es mir erstmal darum geht, zu prüfen, ob das überhaupt funzt, was es ja nun leider nicht tut, und zwar mit folgender Exception:
"DBEdit67: Field 'Funk 6' not found'"

Wodrann könnte das liegen? Oder ist das prinzipiell nicht möglich? oder muss ich das anders lösen, also nicht mit einer checkbox?


thx im voraus
kiwicht


bis11 - Mi 04.12.02 13:41

Hi,

Du solltest Abfragen, welche Checkbox einen Haken drin hat. Und dann solltest Du aus der Abfrage Deinen SQL-Befehl erstellen und die SQL-Abfrage ausführen.

Dann ist mir aufgefallen, das Du uns nur die Zeile mitgeteilt hast :
Zitat:

DBQuery.SQL.Add('SELECT name FROM datbank');


Du mußt natürlich auch noch folgende Zeile einfügen, damit der Befehl ausgeführt wird :

DBQuery.SQL.Open;


kiwicht - Mi 04.12.02 13:59

geht scheinbar grundsätzlich nit, hab jetzt nämlich probehalber mal versucht, gleich beim FormCreate-Ereigniss festzulegen, das nur feld1 angezeigt wird... selbe fehlermeldung wie o.g.

Zitat:

Du mußt natürlich auch noch folgende Zeile einfügen, damit der Befehl ausgeführt wird :

DBQuery.SQL.Open;


öhm... da habsch wohl irgendwann mal nich aufgepasst, denn SQL.Open kenn ich erstens garnicht, und hab es zweitens, ergo, noch nie benutzt. is das vielleicht der grund, weshaln das nicht so funzt wie ich das will.

bisher hat´s jedenfalls auch ohne immer geklappt.

btw:
in meinem project-verzeichniss häufen sich dateien vom typ "_qsql957.dbf".... hab ich irgendwo vielleicht noch n abstrakten newbie-fehler eingebaut?


bis11 - Mi 04.12.02 20:04

Hi,

sorry, Asche über mein Haupt, ich korrigiere :

DBQuery.Open;


LCS - Do 05.12.02 09:24

Hi
kiwicht hat folgendes geschrieben:

Unter FormCreate steht nun folgendes:

Quelltext
1:
2:
DBQuery.SQL.Add('SELECT * FROM datbank'); 
DBQuery.SQL.Active := True;

Dann habe ich wie gesagt (erstmal nur) eine Checkbox. Dort steht im OnClick-Teil:

Quelltext
1:
DBQuery.SQL.Add('SELECT name FROM datbank');                    



An dieser Stelle hättest du nur mal prüfen müssen was in dem Moment in deiner SQL drinsteht:
SELECT * FROM datbank Select name FROM datbank
Du musst im OnClick Ereignis die bestehende SQL erst mal löschen, bevor du mit Add die neue reinschreibst.

Gruss Lothar