[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