![]() |
Datenbank: SQLite-3 • Version: 3 • Zugriff über: ZeosLib
dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Ich habe 10 dbedit-Felder für die Dateneingabe und ein DB-Grid in einem Formular. Das klappt soweit ganz gut.
Wenn ich eine SQL-Abfrage durchführe erhalte ich eine Exception: DBEditID: Das Feld ID wurde nicht gefunden. Nehme ich dann das dbeditID Feld heraus, meldet er erneut dass das nächste Feld DBEditDatum nicht gefunden wurde. Vermutlich klappt der refresh nach der Abfrage für die DBEdit-Felder nicht. Wenn ich also nur ein DBGrid ohne zusätzliche DBEdit-Felder in einer neuen Form verwende und die Abfrage durchführe, klappt dies und ich erhalte die gewünschten Abfrageergebnisse im DBGrid. Eigentlich wollte ich keine gesonderte Seite nur mit einem DBGrid aufnehmen, sondern alles in einer Form abarbeiten. Wie kann ich bei einer SQL-Abfrage auch die DBEdit-Felder überreden, sich wieder zu zeigen? |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Das klingt so, als ob Du die Query für Deine DBEdits irgendwie in Mehrzweckverwendung hast bzw. bestimmte Konzepte, bei Anzeige/Abfrage, Insert/Update/Delete, Refresh (der Anzeige) nicht berücksichtigst.
Am besten mal die problematische Code Teil zeigen. |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Ist die SQL-Abfrage denn immer die selbe oder wechselst du die auch mal? Benutzt du also die selbe Query für verschiedene Dinge? In dem Fall hat das Ergebnis deiner Abfrage/Query ja unterschiedliche Felder, oder die Felder haben unterschiedliche Namen.
Dem (neutralen) DBGrid sind die Feldnamen egal, es zeigt an was auch immer kommt. Bei den DBEdits gibst du ja den Namen des Feldes an, dass sie Dartsellen sollen und wenn's den Namen nicht mehr gibt knallt es halt. Das ist übrigend beim DBGrid ähnlich, wenn du das vorkonfigurierst, sprich wenn du sagst welche Columns es haben soll und welche Column welches Feld darstellen sollen, dann würde es da auch knallen. |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
ich habe versuchsweise verschiedene Abfragen per Button und eine Variante mit einem edit-Feld zum selbständigen Eingeben der SELECT-Anweisungen installiert. Es ist dann in der Tat so, dass bei der Abfrage SELECT MITARBEITER FROM LIEFERUNG die dbedit-Felder ID Datum usw. nicht belegt werden, weil
ich nur Mitarbeiter selektieren wollte. Also geht die Variante mit der Form DBGrid und DBEdit-Felder so nicht und ich muss tatsächlich eine gesonderte Form verwenden, die nur ein DBGrid enthält und dort die Abfragen durchführen. Na gut. Nur zur Info der Abfragecode:
Delphi-Quellcode:
Hoffentlich ist das so richtig. Es funktioniert jedenfalls. Sollte doch was falsch sein, wäre ich für einen Hinweis dankbar
procedure TForm1.btnAbfrage1Click(Sender: TObject);
begin qMain.Close; qMain.SQL.Clear; qMain.Params.Clear; qMain.SQL.Text:='Select Mitarbeiter from Lieferant1'; qMain.Open; qMain.Refresh; dbgrd1.Refresh; end; |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Hallo...:P
Zitat:
Delphi-Quellcode:
... So geht es auch.
procedure TForm1.btnAbfrage1Click(Sender: TObject);
begin //qMain.Close; //nicht nötig: wird bei jeden Open gemacht //qMain.SQL.Clear; //nicht nötig: wird bei jeder Zuweisung von SQL.TEXT gemacht //qMain.Params.Clear; //nicht nötig: wird bei jeder Zuweisung von SQL.TEXT gemacht qMain.SQL.Text:='Select Mitarbeiter from Lieferant1'; qMain.Open; //qMain.Refresh; //nicht nötig. Nach dem Öffnen nochmal Öffnen? Nichts anderes ist REFRESH //dbgrd1.Refresh; //nicht nötig. Das Grid merkt das neue Daten da sind end; |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Danke, da bleibt ja in der Tat nicht viel übrig und trotzdem geht es. Wieder was dazugelernt. Also jetzt werde ich eine neue Form mit dem DBGrid in das Programm aufnehmen und dort nach Belieben SQL-Abfragen(festgeschriebene und auch mit der Möglichkeit über ein Edit-Feld SQL-Befehle einzugeben) durchführen, die dann an einen Report weitergebeben werden sollen.
Der Report bereitet mir noch Sorgen, denn dort habe ich all die möglichen Felder per query und Datasource aufgeführt und natürlich bleibt alles so wie es war, trotz einer Abfrage nur nach Mitarbeiter beispielsweise. Leider finde ich zu den Reportkomp. keine Beschreibung. |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Zitat:
sorry - aber da muss ich energisch widersprechen: Der nicht gemachte Query.CLOSE hat mir schon soviel Probleme gemacht, den würde ich IMMER vor dem nächsten Query.OPEN machen (gilt für MS-SQL Servers mit FireDAC). Gruß |
AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Zitat:
Als Alternative könntest du auch erst mal klein anfangen und mit deinen Daten einen CSV-Export realisieren, oder du steuerst Excel (über OLE) fern und schreibst die Daten in eine Excel-Datei. Die kannst du dann ggf. da auch schön formatieren, so dass es wie aus einem Report aussieht. Oder du erzeugst mit den Daten ein PDF-Dokument, könnte man z.B. mit SynPDF aus dem Mormot-Framwork machen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:54 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