Ich würde es mir nicht so schwer machen und lieber auf einige Millisekunden an Performance verzichten:
Delphi-Quellcode:
// die Bedingung WHERE 0=1 bewirkt, das keine unnötigen Daten abgerufen werden
ADOQuery_Buchen.SQL.Text := '
SELECT * FROM Buchung WHERE 0=1';
ADOQuery_Buchen.Open;
ADOQuery_Buchen.Append;
// Datensatz anhängen
// das direkte Befüllen der Felder macht die Sache sehr einfach
ADOQuery_Buchen['
Pass_Nr'] := bu_e_passnummer.Text;
ADOQuery_Buchen['
Zimmer_Nr'] := strtoint(bu_e_zimmernummer.Text);
ADOQuery_Buchen['
Anreise'] := anreise;
ADOQuery_Buchen['
Abreise'] := abreise;
// Datensatz speichern
// im Hintergrund erzeugt die VCL eine INSERT-Anweisung und schickt sie an die Datenbank
ADOQuery_Buchen.Post;