[Lazarus-es] leer todos los Record con SQLdb
Jose Antonio Cuello
jcuello en artextrading.com
Vie Nov 4 15:51:49 CET 2016
Hola, no termino de entender el problema respecto al código que introduces. Personalmente no realizaría un execute sino un open sobre el dataset. Eso debería traer todos los registros.
"Traer" no significa que te lea de "golpe" todo sino que el cursor solicita los datos al servidor y este los tiene preparados. Cuando te vayas moviendo por el dataset el motor de bases de datos irá dando al dataset lo que necesite.
Creo que te bastaría con:
begin
fdm.SQLite3Connection1.DatabaseName:=camino_BD + '\temp.db';
fdm.SQLite3Connection1.Open;
fdm.dsSQLQuery1.DataSet:=fdm.tTemp2; // Esto no sé para que es
fdm.SQLQuery1.Close;
fdm.SQLQuery1.SQL.Text := 'SELECT * FROM Temp2 WHERE codNegSerAct = :SelCodigoNegSerAct ORDER BY codNegSerAct';
fdm.SQLQuery1.Params.ParamByName('SelCodigoNegSerAct').AsString := SelNSA;
fdm.SQLQuery1.Open;
fEstadoCuenta_2.frReport2.LoadFromFile(camino_actual+'\plantillas\Extendida_2.lrf');
fEstadoCuenta_2.frDBDataSet2.DataSet := fdm.SQLQuery1;
fEstadoCuenta_2.frReport2.ShowReport;
fdm.SQLQuery1.Close;
fdm.SQLite3Connection1.Close;
De: "hfiandor via Lazarus-es" <lazarus-es en lists.lazarus-ide.org>
Para: lazarus-es en lists.lazarus-ide.org
CC: "hfiandor" <hfiandor en ceniai.inf.cu>
Enviados: Viernes, 4 de Noviembre 2016 11:20:07
Asunto: [Lazarus-es] leer todos los Record con SQLdb
Amigos listeros:
En el documento SQLdb How to do se explica por qué solamente se leen los primeros 10 registros al ejecutar una consulta y brinda una solución para que lea todos los registros.
Tengo una aplicación donde hago lo siguiente:
begin
fdm.SQLQuery1.Active := False;
fdm.dsSQLQuery1.DataSet:=fdm.tTemp2;
fdm.SQLite3Connection1.DatabaseName:=camino_BD + '\temp.db';
fdm.SQLQuery1.SQL.Text := 'SELECT * FROM Temp2 WHERE codNegSerAct = :SelCodigoNegSerAct ORDER BY codNegSerAct';
fdm.SQLQuery1.Params.ParamByName('SelCodigoNegSerAct').AsString := SelNSA;
fdm.SQLQuery1.ExecSQL;
fdm.tTemp2.Last; //para que lea completo
if fdm.SQLQuery1.Active = False then fdm.SQLQuery1.Active := True
else begin end;
fEstadoCuenta_2.frDBDataSet2.DataSet := fdm.SQLQuery1;
fEstadoCuenta_2.frReport2.LoadFromFile(camino_actual+'\plantillas\Extendida_2.lrf');
fEstadoCuenta_2.frReport2.ShowReport;
fdm.SQLQuery1.Close;
fdm.SQLTransaction1.Active := False;
fdm.SQLite3Connection1.Connected := False;
No tengo la certeza de haber escrito la instrucción fdm.tTemp2.Last; //para que lea completo en el lugar correcto.
Agradecería que alguien me comentara al respecto y cualquier otra sugerencia que deseen.
Saludos
Ing. Héctor F. Fiandor Rosario
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20161104/759615fb/attachment.html>
Más información sobre la lista de distribución Lazarus-es