Recent

Author Topic: procesar secuencialmente registros de una tabla  (Read 1026 times)

claudio3920

  • New member
  • *
  • Posts: 6
procesar secuencialmente registros de una tabla
« on: December 11, 2020, 05:38:24 pm »
Hola, vengo de otros lenguajes de programación, soy nuevo en Lazarus. Mediante  TSQLQuery (salvo que sea con otra cosa y yo no lo sepa) obtengo varios registros de una tabla de SQLite, necesito que el programa procese registro a registro volcando los datos de cada campo a variables para realizar un proceso.
Lo que no logro entender es como accedo a los registros de la consulta y extraer los datos.
Gracias

lucamar

  • Hero Member
  • *****
  • Posts: 4023
Re: procesar secuencialmente registros de una tabla
« Reply #1 on: December 11, 2020, 08:37:29 pm »
Muy, muy basicamente, accede a los campos del registro actual con: TheQuery.FieldValues, TheQuery.FieldByName o a través de su Fields property; y muévete de un registro a otro con TheQuery.First, TheQuery.Next, etc.

Puedes encontrar explicaciones bastante buenas, aunque algo cortas, en la documentación de la FCL, y hay varios tutoriales, ejemplos y páginas de ayuda en el wiki; empieza en Database Portal y sigue desde ahí.

¡Feliz caza! ;)
« Last Edit: December 11, 2020, 08:43:40 pm by lucamar »
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

BlueIcaro

  • Hero Member
  • *****
  • Posts: 651
    • My github
Re: procesar secuencialmente registros de una tabla
« Reply #2 on: December 11, 2020, 08:40:08 pm »
Hola, puedes echar un vistazo al tutorial que hay el wiki de Lazarus.

https://wiki.freepascal.org/SQLdb_Tutorial1

/BlueIcaro

claudio3920

  • New member
  • *
  • Posts: 6
Re: procesar secuencialmente registros de una tabla
« Reply #3 on: December 12, 2020, 02:00:22 am »
Exelente..!! gracias a ambos..!!

daragor

  • New Member
  • *
  • Posts: 30
    • Blog Webscom
Re: procesar secuencialmente registros de una tabla
« Reply #4 on: December 15, 2020, 12:17:15 am »
Aporto un poco mas, es sensillo, te doy una opción

con un query ya ejecutado con un SELECT, puedes recorrerlo secuencialmente con un while o un for.

Code: Pascal  [Select][+][-]
  1.   qtodos.Active:= false;
  2.   qtodos.SQL.Text:= 'SELECT * FROM tabla';
  3.   qtodos.Open;
  4.   // consultamos que no este vacio
  5.   if not qtodos.IsEmpty then
  6.   begin
  7.     while not qtodos.EOF do {irá del principio hasta el final!}
  8.     begin
  9.      // Aquí ejecutas el codigo que necesites;
  10.      qtodos.Next; {pasa al siguiente registro}
  11.     end;
  12.   end;
  13.  

Yo uso siempre los componentes de ZeosLib, tanto para conectar con la BD como los querys y demas.

saludos!
« Last Edit: December 15, 2020, 12:18:56 am by daragor »
Inculcando el software libre.
https://www.webscom.com.ar

claudio3920

  • New member
  • *
  • Posts: 6
Re: procesar secuencialmente registros de una tabla
« Reply #5 on: February 11, 2021, 04:16:20 pm »
Excelente..!!

 

TinyPortal © 2005-2018