La connection e l oggetto a dir la verità le ho piazzate e lasciate di default a parte aggiungere a runtime i parametri per la connessione:
FDHistoryDBConnection.Params.Database := MARIADB_HISTORYDB;
FDHistoryDBConnection.Params.UserName := K_MARIADB_USERNAME;
FDHistoryDBConnection.Params.Password := K_MARIADB_PASSWORD;
FDHistoryDBConnection.Params.DriverID := K_MARIADB_DRIVERNAME;
FDHistoryDBConnection.DriverName := K_MARIADB_DRIVERNAME;
FDHistoryDBConnection.Params.Values['Server'] := MARIADB_SERVER;
FDMySQLLink.VendorLib := ExtractFileDir(application.ExeName) +'\libmysql.dll'
il dfm della cnnection è:
object FDHistoryDBConnection: TFDConnection
ResourceOptions.AssignedValues = [rvAutoReconnect]
ResourceOptions.AutoReconnect = True
Connected = True
AfterConnect = FDHistoryDBConnectionAfterConnect
AfterDisconnect = FDHistoryDBConnectionAfterDisconnect
Left = 104
Top = 24
end
e il dfm della query è :
object fdqryTmp: TFDQuery
Connection = FDHistoryDBConnection
Left = 448
Top = 176
end
codice per usare la query è:
with HistoryDataModule.fdqryTmp do
begin
Connection := HistoryDataModule.FDHistoryDBConnection;
Close;
sql.Clear;
sql.Text := ' SELECT * FROM '+ tabella +' WHERE id = (SELECT max(id) FROM '+tabella +' WHERE unitid=:pUnitID ';
sql.add(' AND eventtime <=:pDataDA and eventtype in '+ EventTypeList +')' );
ParamByName('pUnitID').AsInteger := mySelectedPu;
ParamByName('pDataDa').AsDateTime := DaData;
Open();
se serve posto uno screenshot delle proprietà ma a parte mettere autoreconnect a true nelle proprietà della connessione il resto credo sia tutto di default in effetti