Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Error al encontrar registro.

Hola, tengo un problema a la hora de localizar un registro, he puesto el siguiente código:
Código:
			  
  If ADOTAgenda.Locate('Cita_T01','Trabajar',[locaseinsensitive]) and		   ADOTAgenda.Locate('Fecha_T01',FormatDateTime('dd"/"mm"/"yyyy',now+I),
  [locaseinsensitive]) and ADOTAgenda.Locate('Fin_T01',InttoStr(Acol+7)+':00:00',[locaseinsensitive] then
  				Begin
  				  Showmessage('Hola');
  				  ADOTAgenda.Edit;
 				  ADOTAgenda['Fin_T01']:=InttoStr(Acol+8)+':00:00';
 				  ADOTAgenda['Prioridad_T01']:=True;
  				  ADOTAgenda.Post;
  				End
  			  Else
  				Begin
  				  ADOTAgenda.Edit;
  				  DsAgenda.DataSet.Append;
 				  ADOTAgenda['Cita_T01']:='Trabajar';
 				  ADOTAgenda['Fecha_T01']:=FormatDatetime('dd"/"mm"/"yyyy',now+I);
 				  ADOTAgenda['Hora_T01']:=InttoStr(Acol+7)+':00:00';
 				  ADOTAgenda['Fin_T01']:=InttoStr(Acol+8+(horasdia(Acol)))+':00:00';
 				  ADOTAgenda['Prioridad_T01']:=True;
  				  ADOTAgenda.Post;
  				End;
  		  End;
y me da el siguiente error:

Cita:
Project Agenda.Exe raised exception class OleException with message 'El valor de BOF o EOF es True, o el actual registro se eliminó; la operación solicitada requiere un registro actual'. Proccess Stopped. Use Step o Run to continue.
Deduzco que el problema es con la base de datos, pero no entiendo por qué, ¿alguien sabe a que puede deberse?. Muchas gracias.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #2  
Antiguo 04-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cada instrucción locate busca 1 valor, por tanto, si en el if tienes 3 locates, se realizan 3 búsquedas distintas, es decir, el registro encontrado tendrá Fin_T01, pero no tiene que cumplir las otras 2 condiciones.

Necesitas hacer una búsqueda por los 3 parámetros juntos a la misma vez, mira la ayuda de TCustomADODataSet.Locate
Código Delphi [-]
with ADOTable1 do

  Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
Aqui si se busca 1 registro en el que coincide la compañia, el contacto y el número de telefono con los datos suministrados.

Por otra parte, en el else tienes un Edit, y justo despues un Append ¿?¿?¿

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:38:31.


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
Copyright 1996-2007 Club Delphi