Registriert seit: 15. Nov 2016
20 Beiträge
|
AW: ADOQuery - SQLQuery ??
18. Apr 2017, 15:54
Hmm..
Hier mal eine (mit 'SQLQuery1' als TADOQuery) leicht bereinigte Version:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLQuery1.ParamCheck := true; // Bewirkt, dass die Parameter direkt 'initialisiert' = Erstellt werden!!
SQLQuery1.SQL.Text:=' INSERT into taccounts (sUsername,sUserPass,sUserPassSalt,sEmail,nAuthID,sIP) ' +
' Values (:sUsername,:UserPass,:UserPassSalt,:email,:AuthID,:sIP)' ;
{ Brauchst Du nicht wegen SQLQuery1.ParamCheck := true
SQLQuery1.Sql.Clear;
SQLQuery1.Params.Clear;
SQLQuery1.Params.CreateParam(ftString, 'Username', ptInputOutput);
SQLQuery1.Params.CreateParam(ftString, 'UserPass', ptInputOutput);
SQLQuery1.Params.CreateParam(ftString, 'UserPassSalt', ptInputOutput);
SQLQuery1.Params.CreateParam(ftString, 'email', ptInputOutput);
SQLQuery1.Params.CreateParam(ftInteger, 'AuthID', ptInputOutput);
SQLQuery1.Params.CreateParam(ftString, 'sIP', ptInputOutput);
}
SQLQuery1.ParamByName(' sUsername').Value := edit3.text; // Hier fehlte das 's', siehe dein SQL Values (:sUsername
SQLQuery1.ParamByName(' UserPass').Value := edit4.text;
SQLQuery1.ParamByName(' UserPassSalt').Value := edit5.text;
SQLQuery1.ParamByName(' email').Value := edit6.text;
SQLQuery1.ParamByName(' AuthID').Value := ' 4';
SQLQuery1.ParamByName(' sIP').Value := edit7.text; // Hier stand 'email' statt das 'sIP'
if (SQLQuery1.ExecSQL() = 1) then begin // Prüfen, ob der Insert erfolgreich war
SQLQuery1.SQL.Clear;
// SQLQuery1.Params.Clear; // Wird beim löschen des SQL-Befehls direkt wieder entfernt...
SQLQuery1.SQL.Text:=' select last_insert_rowid() as nemid from taccounts';
SQLQuery1.Open;
nemid := SQLQuery1.FieldByName(' nemid').AsString;
SQLQuery1.Close;
end;
end;
Danke für die umfangreiche antwort! Aber wie würde das ganze mit ADOQuery aussehen? Da bei mir das ganze mit SQL Query nicht so wirklich klappt.
MFg Lucas
|
|
Zitat
|