Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Hola:

Prueba así:

Código Delphi [-]
 procedure TForm2.BitBtn2Click(Sender: TObject);
 begin
   If (DBEdit1.text <> '') and (DBEdit2.text <> '') then
   begin
   With DataModule7.Table1 Do
   Begin
     Try
     Insert;
     Post;
      Except
     Application.MessageBox ('El nombre introducido no es correcto'+chr(13)+
     'El nombre esta repetido, prueba con otro',
     'Insertar registro',
     Mb_Ok+Mb_IconStop);
     Cancel;
     Insert;
     End;
    End;
    end
   else
   ShowMessage ('¡Debe rellenar todos los campos!')
 end;
 
 end.

Tenías unos parentesis demás..
__________________
No todo es como parece ser...
Responder Con Cita
  #2  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 21
Mathom Va por buen camino
Ante todo, gracias. La solción que me da LucasArt ya la he probado y no funciona correctamente (al menos como yo quería). Ahora probaré lo vtdeleon a ver que tal....
Responder Con Cita
  #3  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Hola.

Seguro debe ser un espacio que te queda en blanco, en ese sentido lo de VTDELEON debería funcionar, aún así yo te recomiendo que no uses de esa forma los parentesis, de hecho nunca he visto de esa forma la sentencia.

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #4  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 21
Mathom Va por buen camino
No es lo normal. Me refiero a utilzar así los parentesis, lo que pasa es que como no me funcionaba como yo esperaba he empezado a hacer pruebas por si era algo de los parentesis. Lo normal es que los ponga:

Código:
if (DBEdit1.text = ' ') and (DBEdit2.text = ' ' ) then
aún no he probado lo de trim. Tengo tres frentes abiertos ahora con la aplicación.. en cuanto lo pruebe os comento como he quedado.

gracias a los dos.
Responder Con Cita
  #5  
Antiguo 18-11-2005
Mathom Mathom is offline
Miembro
 
Registrado: nov 2005
Posts: 72
Poder: 21
Mathom Va por buen camino
Bien, he probado tanto el que me ha dicho vtdeleon
Código:
If ((trim(DBEdit1.text) <> '') and (trim(DBEdit2.text) <> '')) then
...como...

Código:
If((trim(DBEdit1.text) <> '') and (trim(DBEdit2.text) <> '') then
...el resultado sigue siendo el mismo..me sigue entrando dentro del with de todos modos...
Responder Con Cita
  #6  
Antiguo 18-11-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
Para empezar, pon un punto de corte en la línea que sigue al condicional y examina el valor de DBEdit1.Text y DBEdit2.Text. Muy posiblemente observes que sí tienen algún dato.

Por otra parte te comento que lo que haces es muy, pero muy raro y da pie a pensar que el error viene de otro lado.

¿Qué hace un Insert dentro del with? Eso va a provocar que el registro actual, el que estás comparando con los DBEdits, se guarde en la base y se inserte uno más en blanco. El post que le sigue guardará entonces tal registro en blanco.

Si lo que quieres es validar que ambos campos estén llenos tienes dos opciones. Una es asignar el evento OnValidate a cada campo y verificar que no esté vacío. Esta a mi no me gusta porque impide que el usuario pueda moverse de campos hasta no llenar uno.

La otra opción es usar el evento BeforePost del Table asociado y ahí checar que los campos se hayan llenado.

// Saludos
Responder Con Cita
  #7  
Antiguo 18-11-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Trata con:

Código Delphi [-]
if not DBEdit1.Field.IsNull and not DBEdit2.Field.IsNull then
begin
  //...

otra forma podría ser:

Código Delphi [-]
if (DBEdit1.Field.AsString <> '') and (DBEdit2.Field.AsString <> '') then
begin
  //...



Saludos...
Responder Con Cita
  #8  
Antiguo 18-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Cita:
Empezado por maeyanes
otra forma podría ser:

Código Delphi [-]
   if (DBEdit1.Field.AsString <> '') and (DBEdit2.Field.AsString <> '') then
   begin
     //...
Esta última tengo mis dudas, de esa forma pienso yo (no estoy seguro) que solo sirve cuando traes valores desde la base de datos, en este caso los datos se están ingresando por lo tanto que valor tendrá Field.asString ??

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 23:14:24.


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