... konvertiert werden
Servus Leute!
Ich bins mal wieder und hab eine Frage an euch. Bevor ich euch diese Frage stelle wollte ich mich noch einmal bei euch für eure bisherigen Hilfen bedanken. Habe, seit dem ich im Forum bin, einiges dazu gelernt. Aber nun zu meinem Problem:
In meinem Programm muss in der Statusbar die Anzahl der ausgeliehenen Filme einer Person (Kunden-ID) ausgegeben werden. Bei Kunden, welche Filme ausgeborgt haben, ist dies kein Problem. Wähle ich jedoch einen Kunden ohne ausgeliehene Filme auf, taucht die Fehlermeldung
"Variante des Typs (Null) konnte nicht in Typ (integer) konvertiert werden" auf.
Um mein Problem genauer zu verdeutlichen, habe ich 3 Screenshots gemacht.
Moderiert von
Narses: Bilder als Anhang hochgeladen.
Ich habe schon einen Entwurf gemacht, um die Fehlermeldung zu vermeiden. Dazu hätte ich eine IF-Entscheidung verwendet, wie ihr hier sehen könnt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure Tform1.AnzahlFilme(); var Anzahl: integer;
begin AdoQuery1.close; AdoQuery1.SQL.Clear; AdoQuery1.sql.add('SELECT Verleih.KundenID, Count(Verleih.VerleihID) AS AnzahlDVD, Verleih.Rückgabezeit FROM Verleih GROUP BY Verleih.KundenID, Verleih.Rückgabezeit HAVING Verleih.KundenID = ' + inttostr(treeview1.Selected.stateindex) + ' AND Verleih.Rückgabezeit Is Null'); AdoQuery1.open;
Anzahl := Adoquery1.fieldvalues['AnzahlDVD'];
if Anzahl = null then begin showmessage('Kein Film wurde ausgeborgt!'); end else begin Statusbar1.Panels[0].Text := 'Ausgeliehene Filme: ' + inttostr(Anzahl); end;
end; |
Habe es schon mit mehreren Varianten probiert, doch keine scheint zu funktionieren. Ich hoffe, dass ihr mir hier weiterhelfen könnt.
Wie man in der Abfrage sehen kann, haben die ersten 3 Kunden Filme ausgeborgt. Bei dem 4ten jedoch tritt dann der Fehler auf.
Danke im Voraus
Christoph
PS: Bei diesem Projekt wären die SQL-Injections egal - Ist eine Hausübung in größerem Umfang