PDA

Ver la Versión Completa : Problemas con el locate


rinaib
07-03-2011, 13:19:52
Hola, mi problema es el siguiente :

Tengo un tabla cabecera (cliente, fecha, ... ) y otra tabla clientes (cliente,nombre, ...), en la table clientes en la propiedad Mastersource tengo la tabla cabecera y en la propiedad Masterfields los campos clientes de las 2 tablas, bueno pues si ejecuto la siguiente instrucción :

if not clientes.Locate('cliente','880000',[]) then activecontrol:=edit1;

me da el siguiente error, "El valor de BOF o EOf es True, o el actual registro se elimino;la operacion solictada requiere un registro actual " sin embargo, si quito de la propiedad Mastersource y Masterfileds la relacion no me da ningun error, es decir, que me hace bien la instruccion locate.

Por favor ayudarmen , ya que no encuentro la solución.

olbeup
08-03-2011, 08:41:21
Este error que te da un es un error de Delphi sino un error del componente de Delphi, creo que estas utilizando Delphi 5 con el componente Query, intenta utilizar ADO con (ADOConnection -> ADOQUERY) con estos componentes no te parasara, si solo utilizas ADOQUERY o QUERY igual mente te parasar el error de El valor de BOF o EOf es True, a menos que actualices el Delphi 5 que tienes,
dame tu correo y te envío la actualización que necesitas, si estas utilizando Delphi 5 claro, el fichero pesa unos 40Mb.

Un saludo.

rinaib
09-03-2011, 11:30:41
Utilizo Delphi 7 adoconnection y adotable


adotable2.append;
if not adotable1.Locate('codigocliente','880000',[]) then activecontrol:=edit1

adotable2 y adotable1 estan relacionadas con mastersource y masterfield por el campo codigocliente


saludos y gracias

Chris
09-03-2011, 18:12:51
Una pregunta: ADOTable2 no es el "MasterSource" de ADOTable1? Si fuese así, seguro que el problema que tienes es que estás entrando en modo de inserción de registro en ADOTable2 antes de llamar a la función Locate de ADOTable1. Cuando entras en modo de inserción en el Datasource maestro, los Datasource detalles entran en un estado vacío, empty, donde EoF y BoF son True. Talvez deba ser porque estás trabajando con ADO, pero nunca he visto que la función Locate genere una excepción cuando el Dataset está vacío.

Al González
09-03-2011, 19:42:03
¿No será algo como esto?: http://www.clubdelphi.com/foros/showthread.php?t=70361

rinaib
10-03-2011, 11:43:46
lo curioso es que este mismo codigo con Windows 2000 y Delphi 5.0, me funciona muy bien