Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con el locate (https://www.clubdelphi.com/foros/showthread.php?t=72697)

rinaib 07-03-2011 13:19:52

Problemas con el locate
 
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


La franja horaria es GMT +2. Ahora son las 18:58:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi