AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken dbedit-Felder werden nach SQL-Abfrage nicht gefunden
Thema durchsuchen
Ansicht
Themen-Optionen

dbedit-Felder werden nach SQL-Abfrage nicht gefunden

Ein Thema von EdAdvokat · begonnen am 6. Jun 2017 · letzter Beitrag vom 7. Jun 2017
Antwort Antwort
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
414 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 14:50
Datenbank: SQLite-3 • Version: 3 • Zugriff über: ZeosLib
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?
Norbert
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 15:27
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 15:35
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.
Ralph
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
414 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 15:47
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:
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;
Hoffentlich ist das so richtig. Es funktioniert jedenfalls. Sollte doch was falsch sein, wäre ich für einen Hinweis dankbar
Norbert
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#5

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 15:57
Hallo...
Zitat:
Sollte doch was falsch sein, wäre ich für einen Hinweis dankbar
...du hast es so gewollt.
Delphi-Quellcode:
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;
... So geht es auch.
  Mit Zitat antworten Zitat
EdAdvokat

Registriert seit: 1. Mai 2016
Ort: Berlin
414 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 16:18
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.
Norbert
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
297 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 6. Jun 2017, 16:23
Hallo...
//qMain.Close; //nicht nötig: wird bei jeden Open gemacht
Hallo haentschman,

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ß
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#8

AW: dbedit-Felder werden nach SQL-Abfrage nicht gefunden

  Alt 7. Jun 2017, 08:42
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.
Welche Reportkomponenten benutzt du denn? Vielleicht kann man dich zu einem Tutorial lotsen, wenn man wüßte wofür.

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.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:38 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