procedure TfrmLogEntryDlg.btnSaveClick(Sender: TObject);
var
i : Integer;
SQLCon : TSQLConnection;
SQLQuery : TSQLQuery;
begin
//init
SQLCon := TSQLConnection.Create(Self);
SQLCon.Connected := False;
SQLCon.ConnectionName := '
MySQLConnection';
SQLCon.DriverName := '
MySQL';
SQLCon.GetDriverFunc := '
getSQLDriverMYSQL';
SQLCon.KeepConnection := True;
SQLCon.LibraryName := '
dbxmys30.dll';
SQLCon.LoadParamsOnConnect := False;
SQLCon.LoginPrompt := False;
SQLCon.Params.Clear;
SQLCon.Params.Add('
DriverName=MySQL');
SQLCon.Params.Add('
HostName=localhost');
SQLCon.Params.Add('
Database=cbase');
SQLCon.Params.Add('
User_Name=root');
SQLCon.Params.Add('
Password=xxxx');
SQLCon.Params.Add('
BlobSize=-1');
SQLCon.Params.Add('
ErrorResourceFile=');
SQLCon.Params.Add('
LocaleCode=0000');
SQLCon.Params.Add('
Compressed=False');
SQLCon.Params.Add('
Encrypted=False');
SQLCon.VendorLib := '
LIBMYSQL.DLL';
//Verbindung öffnen
SQLCon.Open;
SQLQuery := TSQLQuery.Create(Self);
SQLQuery.SQLConnection := frmMain.SQLCon;
//Datensatz Speichern
if bNewEntry
then begin
SQLQuery.SQL.Clear;
SQLQuery.SQL.Text := '
SELECT CONNECTION_ID() FROM tb_routes LIMIT 1';
SQLQuery.Open;
//z.B. Connection ID = 200
if SQLQuery.RecordCount > 0
then ShowMessage('
Connection ID:'+SQLQuery.FindField('
Connection_ID()').AsString);
//Datensatz anlegen
SQLQuery.SQL.Clear;
SQLQuery.SQL.Text := '
INSERT INTO tb_routes (Date, CarID) VALUES (:Date, :CarID)';
SQLQuery.ParamByName('
Date').AsDate := dtpDate.Date;
SQLQuery.ParamByName('
CarID').AsInteger := Integer(cmbCar.Items.Objects[cmbCar.ItemIndex]);
SQLQuery.ExecSQL;
if SQLQuery.RowsAffected > 0
then begin
SQLQuery.SQL.Clear;
SQLQuery.SQL.Text := '
SELECT CONNECTION_ID() FROM tb_routes LIMIT 1';
SQLquery.Open;
//z.B. Connection ID = 205
if SQLQuery.RecordCount > 0
then ShowMessage('
Connection ID:'+SQLQuery.FindField('
Connection_ID()').AsString);
SQLQuery.SQL.Clear;
SQLQuery.SQL.Text := '
SELECT LAST_INSERT_ID() FROM tb_routes';
SQLQuery.Open;
//Sollte den letzten Auto Inc Wert ausgeben, gibt aber immer '0' aus...
if SQLQuery.RecordCount > 0
then ShowMessage(SQLQuery.FindField('
Last_Insert_Id()').AsString);
end;
{if}
end;
{if}
//deinit
SQLCon.Close;
SQLCon.Free;
SQLQuery.Close;
SQLQuery.Free;
end;