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 16-06-2005
alfredosg19 alfredosg19 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Barcelona
Posts: 91
Poder: 20
alfredosg19 Va por buen camino
Encontrar un registro determinado.

Hola a todos!!, estoy haciendo una agenda personal y en una parte donde quiero poner un cuadro que guarda los horarios, con la hora i el dia, que cuando el usuario clica me crea un registro con el título de trabajo y la hora y el dia correspondiente al cuadro que cliquea, el caso es que si ya existe un registro del (por ejemplo) Lunes a las 12, de 12 a 13 si añado el siguiente cuadro no quiero que se me cree un registro sino que me modifique el anterior. Por tanto y resumiendo ¿como puedo encontrar un registro con una serie de requisitos? (por ejemplo con una determinada fecha, hora y cita), y ¿cómo puedo hacer que si existe este registro me lo modifique y si no que me lo cree de nuevo?. Se me ha ocurrido algo así, (esta mal eso es seguro):
Código:
		   If (ADOTAgenda.FieldByName('Cita_T01').AsString<>'Trabajar') and
 		    (ADOTAgenda.FieldByName('Fecha_T01').AsString<>FormatDateTime('dd"/"mm"/"yyyy',now+I))
 			and (ADOTAgenda.FieldByName('Fin_T01').AsString<>InttoStr(Acol+7)+':00:00') then
 			  Begin
 			  Showmessage('Hola');
 			  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']:='';
 			  ADOTAgenda['Fin_T01']:=InttoStr(Acol+7+(horasdia(Acol)))+':00:00';
 			  ADOTAgenda['Prioridad_T01']:=True;
 			  ADOTAgenda.Post;
 			  End
 			Else
 			  Begin
 				ADOTAgenda.Edit;
 				DsAgenda.DataSet.Insert;
 				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)+':00:00';
 				ADOTAgenda['Prioridad_T01']:=True;
 				ADOTAgenda.Post;
 			  End;
 			End;
Muchísimas gracias por vuestro tiempo, pues llevo tres días detrás de este problema que debe ser algo sencillo pero por más que busco en los foros no consigo acoplar la información a lo que necesito.
__________________
"La perseverancia es el camino del éxito"
Responder Con Cita
  #2  
Antiguo 16-06-2005
S.M.S. S.M.S. is offline
Miembro
 
Registrado: jun 2003
Ubicación: España
Posts: 56
Poder: 21
S.M.S. Va por buen camino
¿No te vale con la función locate?, si existe el registro te posicionará en él.
Saludos.
Responder Con Cita
  #3  
Antiguo 20-06-2005
Ryu Ryu is offline
Miembro
 
Registrado: abr 2005
Posts: 62
Poder: 20
Ryu Va por buen camino
Lightbulb yo diria

Yo creo que el locate no es bueno
pues aun cuando no encuentre el valor seva al ultimo registro

siempre es mejor usar un confiable Query


'select * from tabla where campo = 'parametro'
Responder Con Cita
  #4  
Antiguo 20-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Ryu
Yo creo que el locate no es bueno
pues aun cuando no encuentre el valor seva al ultimo registro
¿Estás seguro?

En la descripción del método Locate de TDataSet (del cuál descienden TAdoDataSet y TAdoTable) se dice:

Cita:
This function:
  • Checks whether the dataset is unidirectional, and if so, raises an EDatabaseError exception.
  • Returns false, indicating that a matching record was not found and the active record was not changed.
Y la descripción de TADODataSet.Locate no dice que cambie este comportamiento.

// Saludos
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 11:39:03.


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