Hallo Leidensgenossen,
ich möchte aus meiner Anwendung Datesätze in einer AccessDb speichern. So weit so gut. Die ID ist Autowert. So nun zum Problem:
asSQL := 'Insert into T_Kunde (KD_NUMMER,NAME,VORNAME,ZUSATZ,STRASSE,PLZ,';
asSQL := asSQL + 'ORT,POSTF_PLZ,POSTF_ORT,ZAHLZIEL,BEMERKUNG,ZAHLAR T,KD_ART)';
asSQL := asSQL + ' Values(';
//asSQL := asSQL + ' :ID,';
asSQL := asSQL + ' :KD_NUMMER,';
asSQL := asSQL + ' :NAME,';
asSQL := asSQL + ' :VORNAME,';
asSQL := asSQL + ' :ZUSATZ,';
asSQL := asSQL + ' :STRASSE,';
asSQL := asSQL + ' :PLZ,';
asSQL := asSQL + ' :ORT,';
asSQL := asSQL + ' :POSTF_PLZ,';
asSQL := asSQL + ' :POSTF_ORT,';
asSQL := asSQL + ' :ZAHLZIEL,';
asSQL := asSQL + ' :BEMERKUNG,';
asSQL := asSQL + ' :ZAHLART,';
asSQL := asSQL + ' :KD_ART)';
...
try
ADOQuery := fDatabase.dmDatabase.ADOSchreiben;
ADOConn := fDatabase.dmDatabase.ADOSchreiben.Connection;
if not ADOConn.InTransaction then
ADOConn.BeginTrans;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(asSQL);
ADOQuery.Prepared :=true;
// if StrToInt(asKDID) > -1 then
// ADOQuery.Parameters.ParamByName('ID').Value :=Trim(asKDID)
// else
// ADOQuery.Parameters.ParamByName('ID').Value :='Null';
if Trim(txtKdNummer.Text) = '' then
ADOQuery.Parameters.ParamByName('KD_NUMMER').Value :='NULL'
...
ADOQuery.ExecSQL;
ADOConn.CommitTrans;
Soweit so gut, aber wie kann ich nun die neue ID für diesen DS bekommen. Ein Select auf den DS ist nicht so gut, da keine eindeutigen Schlüssel.
Danke Tossi
ich möchte aus meiner Anwendung Datesätze in einer AccessDb speichern. So weit so gut. Die ID ist Autowert. So nun zum Problem:
asSQL := 'Insert into T_Kunde (KD_NUMMER,NAME,VORNAME,ZUSATZ,STRASSE,PLZ,';
asSQL := asSQL + 'ORT,POSTF_PLZ,POSTF_ORT,ZAHLZIEL,BEMERKUNG,ZAHLAR T,KD_ART)';
asSQL := asSQL + ' Values(';
//asSQL := asSQL + ' :ID,';
asSQL := asSQL + ' :KD_NUMMER,';
asSQL := asSQL + ' :NAME,';
asSQL := asSQL + ' :VORNAME,';
asSQL := asSQL + ' :ZUSATZ,';
asSQL := asSQL + ' :STRASSE,';
asSQL := asSQL + ' :PLZ,';
asSQL := asSQL + ' :ORT,';
asSQL := asSQL + ' :POSTF_PLZ,';
asSQL := asSQL + ' :POSTF_ORT,';
asSQL := asSQL + ' :ZAHLZIEL,';
asSQL := asSQL + ' :BEMERKUNG,';
asSQL := asSQL + ' :ZAHLART,';
asSQL := asSQL + ' :KD_ART)';
...
try
ADOQuery := fDatabase.dmDatabase.ADOSchreiben;
ADOConn := fDatabase.dmDatabase.ADOSchreiben.Connection;
if not ADOConn.InTransaction then
ADOConn.BeginTrans;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(asSQL);
ADOQuery.Prepared :=true;
// if StrToInt(asKDID) > -1 then
// ADOQuery.Parameters.ParamByName('ID').Value :=Trim(asKDID)
// else
// ADOQuery.Parameters.ParamByName('ID').Value :='Null';
if Trim(txtKdNummer.Text) = '' then
ADOQuery.Parameters.ParamByName('KD_NUMMER').Value :='NULL'
...
ADOQuery.ExecSQL;
ADOConn.CommitTrans;
Soweit so gut, aber wie kann ich nun die neue ID für diesen DS bekommen. Ein Select auf den DS ist nicht so gut, da keine eindeutigen Schlüssel.
Danke Tossi
Comment