Buen día colega,
De los problemas que planteas a mi entender deberias:
FiveWiDi wrote:No tiene clave primaria y las sentencias que le preceden son:
cSqlA := "SELECT * FROM latabla WHERE (TIPUSOLI = 'A' OR TIPUSOLI = 'B') AND ESTAT = 1 LIMIT 1"
(Pongo 'LIMIT 1' porque quiero trabajar registro a registro).
La clave primaria es fundamental para la modificación UPDATE y el borrado DELETE de registros específicos que no idéntifi
End[/quote]cas a través de un WHERE directo, por cual agrega una clave primaria autoincremental y después hace este tipo de pruebas, la referencia se hará sola.
[quote="FiveWiDi"]cSqlA := "SELECT * FROM latabla WHERE (TIPUSOLI = 'A' OR TIPUSOLI = 'B') AND ESTAT = 1 LIMIT 1"
(Pongo 'LIMIT 1' porque quiero trabajar registro a registro).
oQry := oConDB:Query( cSqlA )
While oQry:nRecCount > 0
../... resto de código.
oQry := oConDB:Query( cSqlA )
Acá si en la sentencia colocas LIMIT 1 te va a traer un solo registro, o sea que el while que haces después lo debes cambiar por un if y ademas siempre se va a traer al primero que encuentre que puede ser el mismo que antes.
Y como tu dices te peta es porque no haces un skip en los datos se queda trabado en el primero.
Saludos y espero te sea de ayuda.