PDA

Ver la Versión Completa : Uso de Recordset.Delete(arCurrent)


saldanaluis
19-12-2007, 21:03:41
Estimados amigos del foro.
Estoy tratando de eliminar algunos de los registros que se obtienen con un TADOQuery dependiendo de los resultados de unos calculos en cada uno de los registros del recordset.
Recorro cada uno de los registros y voy efectuando los calculos necesarios. Si la condicion se cumple entonces ejecuto
TADOQuer1.Recordset.Delete(arCurrent);
Pero me marca error con 'arCurrent' en donde se menciona que no esta definida.
¿que le tengo que añadir al codigo para que lo identifique? Me imagino que tengo que añadir algo en el 'uses...'
Lo que quiero lograr es elimiar los registros del recordset para que no los muestre en un DBGrid, pero no quiero que lo elimine de la base de datos.
¿Estoy haciendo lo correcto?
Gracias por sus amables respuestas.
:confused:

Caral
19-12-2007, 22:06:32
Hola
No conozco el sistema pero segun lo que veo pertenece a ADODB, por lo que si usas ado no necesitas nada mas en el uses.
TAffectRecords-AdoDb.pas.
Saludos

saldanaluis
19-12-2007, 23:12:12
Gracias por la respuesta.
En el uses le alladí 'ADODB tal como lo mencionaste. Ahore el error que me devuelve el otro. Este otro error dice:
'[Error] UPendPago.pas(60): Incompatible types: 'TOleEnum' and 'TAffectRecords'
Buscaré a que se refiere. Aparentemente el delete está esperando algo del tipo TOleEnum.
Si saben algo de esto les agradecería su comentario.
Muchos saludos.

tefots
19-12-2007, 23:30:31
que yo sepa desde delphi , al usar un tadoquery , para borrar el registro actual has de llamar a adoquery1.delete directamente.

saludos.

jachguate
20-12-2007, 00:54:25
Lo que en realidad querés es el filtrado de la tabla.

Esto en delphi, podes hacerlo programando un evento "OnFilterRecord" sobre el ADOQuery y poniendo su propiedad Filtered a True.

En el evento OnFilterRecord, devolves True si el registro será visible, o False si no lo será.

Hasta luego.

;)