Hi! Here is a real examples to understand how it works, with different data types. In Spanish, but I think you can understand it.
This code is for UPDATE, but modify for SELECT as you need.
class procedure TDatabases.MaterialRenovacionGuardar(nIdPrestamo: integer; dFecha_Renovacion: TDateTime; nNumero_Renovaciones: integer);
var
SQLite3ConnectionP: TSQLite3Connection;
SQLTransactionP: TSQLTransaction;
DataSourceP: TDatasource;
SQLQueryP: TSQLQuery;
begin
SQLite3ConnectionP := TSQLite3Connection.Create(nil);
SQLTransactionP := TSQLTransaction.Create(nil);
DataSourceP := TDatasource.Create(nil);
SQLQueryP := TSQLQuery.Create(nil);
sDatabaseFilePath := TDatabases.DatabaseGetFilePath;
TDatabases.DatabaseOpenOnly(SQLite3ConnectionP, SQLTransactionP, DataSourceP, SQLQueryP, sDatabaseFilePath);
try
SQLQueryP.Close;
SQLQueryP.SQL.Text := 'UPDATE prestamos SET FECHA_RENOVACION=:A, NUMERO_RENOVACIONES=:B WHERE ID=:C';
SQLQueryP.Params.ParamByName('A').AsDate := dFecha_Renovacion;
SQLQueryP.Params.ParamByName('B').AsInteger := nNumero_Renovaciones;
SQLQueryP.Params.ParamByName('C').AsInteger := nIdPrestamo;
SQLQueryP.ExecSQL;
SQLTransactionP.Commit;
except
on e: Exception do begin
SQLTransactionP.Rollback;
ShowMessage('Renovación a Material Especial, error al guardar renovación' + #13 + 'Error: ' + e.message);
end;
end;
TDatabases.DatabaseClose(SQLite3ConnectionP, SQLTransactionP, DataSourceP, SQLQueryP);
SQLite3ConnectionP.Free;
SQLTransactionP.Free;
DataSourceP.Free;
SQLQueryP.Free;
end;