![]() |
Datenbank: mysql • Zugriff über: ado
query rückgabe wert
Hallo Zusammen und ein frohes Neus Jahr,
ich habe eine ganz normale SQL Abfrage mit einer Query. Jetzt möchte ich prüfen ob die Query ein Ergebnis liefert oder nicht und dann soll eine if then anweisung kommen! Wie prüfe ich ob ein Ergebnis aus der Query kommt?? |
Re: query rückgabe wert
Entweder RecordCount auf > 0 prüfen oder eben schauen, ob EOF erreicht ist.
|
Re: query rückgabe wert
Aber bei Eof habe ich doch noch keinen Wert oder??
|
Re: query rückgabe wert
Zitat:
Gruß, Jens |
Re: query rückgabe wert
irgendwie muss was falsch sein...
wie kommt meine fehlermeldung nicht???
Delphi-Quellcode:
//Fach hinzufügen
procedure TStammdaten.JvXPButton1Click(Sender: TObject); var Qry : TADOQuery; QryFachVorhanden : TADOQuery; SID : Integer; FID : Integer; KID : Integer; begin SID := QrySchueler.fieldbyname('ID').AsInteger; FID := self.TblFaecher.fieldbyname('ID').AsInteger; KID := Hauptform.QrySchueler.FieldByName('idKlasse').AsInteger; //Abfragen ob Fach schon vorhanden QryFachVorhanden := TADOQuery.Create(self); QryFachVorhanden.Connection := HauptForm.ADOConnection1; QryFachVorhanden.SQL.Text := 'select *from schueler_faecher where id_Schueler = :SID and id_Fach = :FID and id_Klasse = :KID'; QryFachVorhanden.Parameters.ParamByName('SID').Value := SID; QryFachVorhanden.Parameters.ParamByName('FID').Value := FID; QryFachVorhanden.Parameters.ParamByName('KID').Value := KID; QryFachVorhanden.ExecSQL; if QryFachVorhanden.Eof = true then begin Qry := TADOQuery.Create(self); Qry.Connection := HauptForm.ADOConnection1; Qry.SQL.Text := 'insert into schueler_faecher (id_Schueler,id_Fach,id_Klasse) values (:SID, :FID, :KID)'; Qry.Parameters.ParamByName('SID').Value := SID; Qry.Parameters.ParamByName('FID').Value := FID; Qry.Parameters.ParamByName('KID').Value := KID; Qry.ExecSQL; QryZugeFaecher.Close; QryZugeFaecher.Open; Qry.Free; end else MessageDlg('Das Fach wurde schon zugeordnet.', mtError, [mbOK], 0); end; |
Re: query rückgabe wert
Hallo,
muss das nicht statt
Delphi-Quellcode:
QryFachVorhanden.ExecSQL;
Delphi-Quellcode:
heißen?
QryFachVorhanden.Open;
Du möchtest doch wissen, ob es etwas schon gibt oder eben nicht. Versuch es doch mal mit:
Delphi-Quellcode:
QryFachVorhanden.SQL.Text := 'select Count(*) As Anzahl from schueler_faecher where id_Schueler = :SID and id_Fach = :FID and id_Klasse = :KID';
QryFachVorhanden.Open; If QryFachVorhanden.FieldByName('Anzahl').AsInteger = 0 then // und hier dann weiter mit dem Insert... |
Re: query rückgabe wert
Delphi-Quellcode:
QryFachVorhanden.SQL.Text := 'select *from schueler_faecher where id_Schueler = :SID and id_Fach = :FID and id_Klasse = :KID';
// ^-- hier fehlt ne leerstelle QryFachVorhanden.Parameters.ParamByName('SID').Value := SID; QryFachVorhanden.Parameters.ParamByName('FID').Value := FID; QryFachVorhanden.Parameters.ParamByName('KID').Value := KID; //QryFachVorhanden.ExecSQL; QryFachVorhanden.Open; //ExcecSQL nimmt man nur, wenn man keine Rückgabe erwartet (z.B. beim Insert). ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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-2025 by Thomas Breitkreuz