unit try3;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls, Data.DB, Data.Win.ADODB,ShellAPI,
Data.FMTBcd, Data.SqlExpr;
type
TForm1 =
class(TForm)
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('
select * from taccounts where susername=''
'+edit1.Text+'
''
and suserpass=''
'+edit2.Text+'
''
');
ADOQuery1.Open;
if not ADOQuery1.Eof
then
begin
ShellExecute(Application.Handle, '
open', PChar('
C:\Program Files (x86)\Internet Explorer\iexplore.exe'),
nil,
nil, SW_NORMAL);
end
else
ShowMessage('
Falscher Benutzername oder Password!');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery1.ParamCheck := true;
// Bewirkt, dass die Parameter direkt 'initialisiert' = Erstellt werden!!
ADOQuery1.SQL.Text:='
INSERT into taccounts (nEMID,sUsername,sUserPass,sUserPassSalt,sEmail,nAuthID,sIP) ' +
'
Values (:nEMID,:sUsername,:sUserPass,:sUserPassSalt,:email,:AuthID,:sIP)' ;
{ Brauchst Du nicht wegen ADOQuery1.ParamCheck := true
ADOQuery1.Sql.Clear;
ADOQuery1.Parameter.Clear;
ADOQuery1.Parameter.CreateParam(ftString, 'Username', ptInputOutput);
ADOQuery1.Parameter.CreateParam(ftString, 'UserPass', ptInputOutput);
ADOQuery1.Parameter.CreateParam(ftString, 'UserPassSalt', ptInputOutput);
ADOQuery1.Parameter.CreateParam(ftString, 'email', ptInputOutput);
ADOQuery1.Parameter.CreateParam(ftInteger, 'AuthID', ptInputOutput);
ADOQuery1.Parameter.CreateParam(ftString, 'sIP', ptInputOutput);
}
ADOQuery1.Parameters.ParamByName('
nEMID').Value := '
4';
// Hier fehlte das 's', siehe dein SQL Values (:sUsername
ADOQuery1.Parameters.ParamByName('
sUsername').Value := edit3.text;
// Hier fehlte das 's', siehe dein SQL Values (:sUsername
ADOQuery1.Parameters.ParamByName('
sUserPass').Value := edit4.text;
ADOQuery1.Parameters.ParamByName('
sUserPassSalt').Value := edit5.text;
ADOQuery1.Parameters.ParamByName('
email').Value := edit6.text;
ADOQuery1.Parameters.ParamByName('
AuthID').Value := '
4';
ADOQuery1.Parameters.ParamByName('
sIP').Value := edit7.text;
// Hier stand 'email' statt das 'sIP'
if (ADOQuery1.ExecSQL() = 1)
then begin // Prüfen, ob der Insert erfolgreich war
ADOQuery1.SQL.Clear;
// ADOQuery1.Parameter.Clear; // Wird beim löschen des SQL-Befehls direkt wieder entfernt...
ADOQuery1.Open;
ADOQuery1.Close;
end;
end;
end.