Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-12-2005
kman kman is offline
Miembro
 
Registrado: dic 2005
Ubicación: República Dominicana.
Posts: 67
Poder: 21
kman Va por buen camino
Cita:
Empezado por jachguate
La idea de validar un field es simplemente verificar que el valor esté dentro de los parámetros válidos y si no, elevar una excepción.

por ejemplo:

Código Delphi [-]
 procedure TForm1.Query1CodigoValidate(sender : TField);
 begin
   if Query1Codigo.AsInteger < 0 then
     raise Exception.Create('Error: el código no puede ser menor que 0.  Verifique!')
 end;



Hasta luego.

Comprendí tu ejemplo, e inclusive lo puedo aplicar para algunos casos en mi proyecto, pero parece que no me doy a entender, lo que quiero (a ver si no la hago bolas otra vez) es buscar o localizar un dato desde mi TABLA y compararlo con el que se esta introduciendo en el dbedit y asi no repetirlo que no sea con sentencias sql que me vuelvo bolas con ellas, o mejor aun cómo controlo el raise exception (ya que lo mencionas) que da delphi cuando intentas duplicar un registro que ya existe????

Perdón la molestia pero me urge esto para terminar un pequeño proyecto de la uni.

Gracias.
Responder Con Cita
  #2  
Antiguo 03-12-2005
kman kman is offline
Miembro
 
Registrado: dic 2005
Ubicación: República Dominicana.
Posts: 67
Poder: 21
kman Va por buen camino
Por fin lo solucioné:
Código Delphi [-]
 procedure form1.Button1Click(Sender: TObject);
 var field: tfield;
 VAR texto: string;
 begin
 texto:=Edit1.Text;
 if TABLA.Locate('CAMPO',texto,[]) then begin
 showmessage('DATO YA  EXISTE');
 end else begin
 tabla1.Edit;
 Field := Tabla1.FieldByName('CAMPO');
 Field.AsString := Edit1.Text;
 end;
 end;

Si tienen algún comentario sobre este código, se recibirá con mucho agrado, ah y gracias por los comentarios anteriores.
Responder Con Cita
  #3  
Antiguo 05-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por kman
Comprendí tu ejemplo, e inclusive lo puedo aplicar para algunos casos en mi proyecto
En tu caso, creo que lo mejor es lanzar una consulta contra la base de datos para deteriminar si un código está duplicado o no:

supongamos que qDup es un TQuery (o equivalente) tiene el siguiente SQL
Código SQL [-]
Select count(*) contador from tabla where codigo = :codigo;

en el evento on validate podríamos hacer algo como:

Código Delphi [-]
if TablaCodigo.IsNull then
else begin
  qDup.ParamByName('codigo').AsInteger := tablaCodigo.AsInteger;  
  qDup.Open;
  try
    if qDupCONTADOR.AsInteger > 0 then
      raise Exception.CreateFmt('Error: el código %d ya existe y no puede '
                + 'ser duplicado.  Verifique!', [tablaCodigo.AsInteger]);
  finally
    qDup.Close;
  end;
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 13-03-2007
moyo18 moyo18 is offline
Miembro
 
Registrado: mar 2007
Posts: 11
Poder: 0
moyo18 Va por buen camino
usando este codigo

Código Delphi [-]
procedure form1.Button1Click(Sender: TObject);
 var field: tfield;
 VAR texto: string;
 begin
 texto:=Edit1.Text;
 if TABLA.Locate('CAMPO',texto,[]) then begin
 showmessage('DATO YA  EXISTE');
 end else begin
 tabla1.Edit;
 Field := Tabla1.FieldByName('CAMPO');
 Field.AsString := Edit1.Text;
 end;
 end;

para ver si un dato esta en la tabla ya y q no se guarde si es repedido lo pongo todo pero me sale aunq no este repedido el mismo mensaje q ya esta repetido y no se guarda.


este es mi codigo

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
field: string;
texto: string;
begin
 field:='userID'  ;
 texto:=DBEdit2.Text;
 if ADOTable1.Locate(field,texto,[]) then
  begin
   showmessage('DATO YA  EXISTE');
  end
 else
  begin
   Maskedit1.visible := false;
   Maskedit2.visible := false;
   Maskedit3.visible := false;
   Maskedit4.visible := false;
   ADOTable1.Edit;
    DBEdit9.text := Pri;
    DBEdit2.text := Maskedit1.Text ;
    DBEdit6.text := Maskedit2.Text ;
    DBEdit8.text := Maskedit3.Text ;
    DBEdit10.text := Maskedit4.Text ;
    ADOTable1UserID.AsString := DBEdit2.text;
    ADOTable1LastName.AsString := DBEdit3.text;
    ADOTable1Name.AsString := DBEdit4.text;
    ADOTable1Address.AsString := DBEdit5.text;
    ADOTable1PostalCode.AsString := DBEdit6.text;
    ADOTable1City.AsString := DBEdit7.text;
    ADOTable1Phone.AsString := DBEdit8.text;
    ADOTable1Email.AsString := DBEdit9.text;
    ADOTable1Birthday.AsString := DBEdit10.text;
   ADOTable1.Post;

   DBEdit3.Text := '' ;
   DBEdit4.Text := '' ;
   DBEdit5.Text := '' ;
   DBEdit7.Text := '' ;
   DBEdit9.Text := '' ;
   Maskedit1.Text := '' ;
   Maskedit2.Text := '' ;
   Maskedit3.Text := '';
   Maskedit4.Text := '' ;
   combobox2.visible := false;


  end;
end;
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 05:19:54.


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