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)
-   -   Validar Datos de una tabla de memoria (https://www.clubdelphi.com/foros/showthread.php?t=83173)

nickolas 18-05-2013 23:49:01

Validar Datos de una tabla de memoria
 
Hola a todos. Estoy usando un clientdataset para crear una tabla de memoria a la cual le agrego datos (fechas Sacadas de un DateTimePicker) lo que necesitaria seria saber como hacer para que no la tabla de memoria no me permita colocar dos veces la misma Fecha.si alguno sabe como hacerlo lo Agradeceria.

el codigo que tengo hasta ahora es este:

Código Delphi [-]
procedure TFRM_ViajeAgregar.BT_FechaAgregarClick(Sender: TObject);
var
  FechaColocar:TDate;

begin
 FechaColocar :=DTP_1.Date;

  while not CDST_ViajeFechas.Eof do   {Mientras no llegue al final de la tabla de memoria.}
   begin
    {Comparo si la fecha a colocar es la misma que alguna de que haya hay colocadas}
   if FechaColocar = CDST_ViajeFechas.FieldByName('CDSTCAM__FECHA').Value then
     begin
       Application.MessageBox('Fecha ya seleccionada','Agregar Fecha',MB_ICONWARNING);
     end
   else
     begin
       // Agrego una fila mas para que se coloque los datos
      CDST_ViajeFechas.Append;

      // Coloco el CLIENTDATASET en Modo de edicion
      CDST_ViajeFechas.Edit;

      // Agreguo la fecha
      CDSTCAM__FECHA.AsDateTime := FechaColocar;
     end
   end;
end;

Gracias espero sus respuestas

Caminante 19-05-2013 01:34:58

Y si usas Locate.

Código Delphi [-]
if not CDST_ViajeFechas.Locate('CDSTCAM__FECHA',FechaColocar,[])then
begin
       // Agrego una fila mas para que se coloque los datos
      CDST_ViajeFechas.Append;

      // Coloco el CLIENTDATASET en Modo de edicion
      CDST_ViajeFechas.Edit;

      // Agreguo la fecha
      CDSTCAM__FECHA.AsDateTime := FechaColocar;
     end;


No se si sea lo que buscas.

Saludos

nickolas 19-05-2013 02:21:29

Gracias por la pronta respuesta. me sirvio perfectamente.

Al González 19-05-2013 04:07:49

Hola nickolas. :)

Sólo agregar que la sentencia CDST_ViajeFechas.Edit está de más. Esto es porque el método Append ya pone al ClientDataSet en modo de recibir datos.

Saludos.

Caminante 20-05-2013 19:17:47

Es verdad. No me había percatado de esa linea al copiar el código...

PepeLolo 26-05-2013 00:48:07

Otra forma es definir un índice único en el clientdataset, entonces no te dejara grabar un duplicado al ejecutar el método post.


La franja horaria es GMT +2. Ahora son las 16:36:43.

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