Datenbank: Access • Version: egal • Zugriff über: Delphi
Datenbankfehler in Delphi
Schönen Guten Tag liebe Community!:-D
Ich hätte eine Frage zu einer Datenbankanbindung, warum Delphi da rum meckert, obwohl die Daten dann schon in der Datenbank niedergeschrieben sind. Es kommt immer wieder zu folgendem Fehler:"Commandtext gibt keine Ereignismenge zurück" Was bedeudet das? Ist da jemand Fachmann/frau in dem Thema?:thumb: |
AW: Datenbankfehler in Delphi
Moin...:P
Zitat:
|
AW: Datenbankfehler in Delphi
Delphi-Quellcode:
Die genaue Problemstelle liegt bei ADOQuery4, der Rest läuft und flutscht, wie es sollte.
procedure TForm1.BteinlesenClick(Sender: TObject);
var vname, nname: string; begin if (Edvname.text <> ('')) and (Edname.Text <> ('')) then begin showmessage('Funkioniert'); end else begin showmessage('Werte eingeben!'); end; vname := Edvname.Text; nname := Edname.Text; abfrage := 'select vorname, nachname From Spieler Where vorname ="'+vname+'" and nachname="'+nname+'"'; Datenmodul.ADOQuery3.SQL.Clear; Datenmodul.ADOQuery3.SQL.Add(abfrage); Datenmodul.ADOQuery3.Open; if Datenmodul.ADOQuery3.IsEmpty then begin showmessage('nicht vorhanden!'); Panel1.Visible := false; PAbfrage.Visible := true; eintrag := 'insert into spieler(vorname, nachname, Bestwert, Bestwert1, Bestwert2) values ("'+Edvname.text+'","'+Edname.Text+'","0","0","0")'; end else begin showmessage('vorhanden!'); end; end; procedure TForm1.FormCreate(Sender: TObject); begin Panel1.Visible := true; PAbfrage.Visible := false; end; procedure TForm1.PjClick(Sender: TObject); begin Datenmodul.ADOQuery4.SQL.Clear; Datenmodul.ADOQuery4.SQL.Add(eintrag); Datenmodul.ADOQuery4.Active := true; Panel1.Visible := false; PAbfrage.Visible := false; showmessage('erfolgreich eingetragen!'); end; procedure TForm1.PnClick(Sender: TObject); begin Panel1.Visible := true; PAbfrage.Visible := false; end; |
AW: Datenbankfehler in Delphi
Delphi-Quellcode:
Wenn ich sowas schon sehe, wird mir irgendwie schlecht.
if (Edvname.text <> ('')) and (Edname.Text <> ('')) then
begin showmessage('Funkioniert'); end else begin showmessage('Werte eingeben!'); end; Drück mal STRG+D im Editor! Und guck dir bitte einen Delphi-Style-Guide an. Viele Probleme lösen sich von selbst und sind sofort sichtbar, wenn man den Code vernünftig hinschreibt. |
AW: Datenbankfehler in Delphi
Zitat:
|
AW: Datenbankfehler in Delphi
Danke für den Tipp, aber so haben wir es gelernt bekommen und in ein paar Wochen arbeite ich damit nicht mehr.
Es ist nur für das letzte Projekt wichtig.:!: |
AW: Datenbankfehler in Delphi
Zitat:
|
AW: Datenbankfehler in Delphi
Hab es gemacht, nur habe ich immer noch keine Lösung auf das Problem.
|
AW: Datenbankfehler in Delphi
Die Fehlermeldung besagt, das die Abfrage kein Ergebnis liefert, was bei Insert, Update, Delete ... völlig normal ist.
Man darf active := true bzw. open nur bei Select-Statements nutzen, sonst muss man immer ExecSQL verwenden.
Delphi-Quellcode:
procedure TForm1.PjClick(Sender: TObject);
begin Datenmodul.ADOQuery4.SQL.Clear; Datenmodul.ADOQuery4.SQL.Add(eintrag); Datenmodul.ADOQuery4.ExecSQL; // .Active = true bzw. .Open darf man nur bei Select nutzen, sonst IMMER ExecSQL. Panel1.Visible := false; PAbfrage.Visible := false; if Datenmodul.ADOQuery4.RowsAffected > 0 then begin showmessage('erfolgreich eingetragen!'); end else begin showmessage('Sinnvolle Fehlermeldung ausgeben!'); end; end; |
AW: Datenbankfehler in Delphi
Delphi-Quellcode:
->
Datenmodul.ADOQuery4.Active := true;
Delphi-Quellcode:
Datenmodul.ADOQuery4.ExecSQL;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 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