![]() |
Re: EDatabaseError - auslesen aus DB
Im Prinzip musst Du nur eine DataSource auf das Formular ziehen, diese mit der Query verknüpfen und ein DBGrid welches mit der DataSource verknüpft wird...
Grüsse ...Doc |
Re: EDatabaseError - auslesen aus DB
Hallo DocE
danke, hab ich gemacht, bekomme folgende Meldung: Zitat:
|
Re: EDatabaseError - auslesen aus DB
Du scheinst immer mehr Änderungen zu machen, als man dir vorschlägt. Poste mal den ganzen aktuellen Code.
|
Re: EDatabaseError - auslesen aus DB
...und vielleicht dazu noch, wann die Fehlermeldung auftritt (beim Starten, wenn Du Änderungen im DBGrid vornehmen möchtest). Die Meldung deutet daraufhin, dass Du versuchst im DBGrid Daten anzuzueigen/zu ändern, obwohl die Query noch keine SQL-Anweisung hat...
|
Re: EDatabaseError - auslesen aus DB
Hallo,
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin With Query1 do begin sql.add('select * from Rechnungen where BEZAHLT = :BEZAHLT '); // sql.add('select RGNR,BEZAHLT from Rechnungen where BEZAHLT = :BEZAHLT '); ParamByName('BEZAHLT').AsString:= 'N'; // falls es ein Char ist Open; try while not EOF do begin memo3.Lines.Add(FieldByName('BEZAHLT').AsString + ' => gefunden!'); Next; End; finally Close; end; end; end; |
Re: EDatabaseError - auslesen aus DB
Das "Close" ist das Problem. Dann ist die Datenmenge ja wieder geschlossen und kann auch nicht mehr angezeigt werden...
|
Re: EDatabaseError - auslesen aus DB
Das
Close muss weg, die Query muss offen bleiben, wenn du die Daten im DBGrid anzeigen möchtest. Ausserdem prüfe, ob alles verknüpft ist. DBGrid.DataSource -> TDataSource.DataSet -> Query Heiko |
Re: EDatabaseError - auslesen aus DB
hallo und danke nun klappt es... bis auf eine kleine Fehlermeldung wenn ich zweimal hintereinander auf den Button klick:
Zitat:
Nunja, jedenfalls klappt das auslesen. Nochmal Danke dafür :-D |
Re: EDatabaseError - auslesen aus DB
Hallo,
naja, das habe ich nun nicht noch gesagt :wall: ) ein bissel solltest du aich selber was machen .. ;) beim zweiten Drücken ist die Query schon offen, dann muss man die vorher zumachen if Query.Active then Query.Active:= False; oder sogar als 1. Befehl im OnButton if Query.Active then Exit; Das kommt aber auf deine Logik an, bisher macht es ja keinen Sinn, überhaupt einen Button reinzupacken, da die Query ja immer offen sein muss. Heiko PS: Übrigens würde ich schleunigst die DB wechseln. Paradox ist out. Sobald ein "index out of date" kommt, sprechen wir weiter ;) |
Re: EDatabaseError - auslesen aus DB
Zitat:
in deinem Code steht Query1.SQL.Add(...), d.h. bei jedem Click auf den Button wird zur bereits bestehenden SQL-Anweisung eine neue (in diesem Fall die gleiche) hinzugefügt :-). Das Ergebnis ist: select * from Rechnungen where BEZAHLT = :BEZAHLT select * from Rechnungen where BEZAHLT = :BEZAHLT Auf der sicheren Seite bist du, wenn du entweder
Delphi-Quellcode:
oder
Query1.SQL.Clear; // alle Anweisungen löschen
Query1.SQL.Add('select * from Rechnungen where BEZAHLT = :BEZAHLT ') // Anweisung hinzufügen Query1.SQL.Add('ORDER BY KDNR') // 2. Zeile (hier nur mal als Beispiel) Query1.Open;
Delphi-Quellcode:
Im Übrigen wird eine offene Query automatisch geschlossen, sobal das SQL-Statement geändert wird; auf der sicheren Seite (und für den Fall des Debuggens) ist es immer besser, expliziet
//--neue Anweisung zuweisen: vorhandene Anweisung wird durch die neue ersetzt
Query1.SQL.Text := 'SELECT * FROM Rechnungen WHERE BEZAHLT = :BEZAHLT ORDER BY KDNR'; Query1.Open;
Code:
zu schreiben ;-)
Query1.Close
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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 by Thomas Breitkreuz