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-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
MessageDlg Con varios DBEdits

Hola amigos aqui estoy de nuevo, tengo una de como hacer esto aqui dejo codigo:

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If DBEdit7.Text = '' then MessageDlg('Debe especificar el número de Pedido',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;

como agrego mas DBEdits a parte del DBEdit7.Text = ''? seria de esta manera?:

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If DBEdit7.Text = '', DBEdit8.Text = '', etc, etc then MessageDlg('Debe especificar el número de Pedido',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;

eso me pasa por estar un poco alejado de la programacion delphi..

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 16-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If (DBEdit7.Text) and (DBEdit8.Text) and (DBEdit9.Text) = ' ' then MessageDlg('Debe especificar el número de Pedido',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 16-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Hola, Caral gracias por tu pronta respuesta, pero me sucede lo siguiente me sale este error 'Operator is not applicable to this operand type' este es el codigo modificado segun tu ejemplo:

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If (DBEdit7.Text) and (DBComboBox2.Text) and (DBEdit13.Text) and (DBLookUpComboBox5.Text) and(DBLookUpComboBox6.Text) and (DBLookUpComboBox7.Text) and (DBLookUpComboBox8.Text) and (DBEdit14.Text) and (DBEdit15.Text) and (DBLookUpComboBox1)= '' then MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 16-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 26
Caral Va por buen camino
Hola
Revisa el codigo, al ultimo combobox le falta el text.
Me cuentas
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 16-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Yo creo que debería ser así,

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If (DBEdit7.Text = '') and 
   (DBComboBox2.Text = '') and 
   (DBEdit13.Text = '') and 
   (DBLookUpComboBox5.Text = '') and
   (DBLookUpComboBox6.Text = '') and 
   (DBLookUpComboBox7.Text = '') and 
   (DBLookUpComboBox8.Text = '') and 
   (DBEdit14.Text = '') and 
   (DBEdit15.Text = '') and 
   (DBLookUpComboBox1.Text = '') then 
    MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;
No puedes hacer la comparación como la quieres hacer

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 16-08-2007 a las 01:11:10.
Responder Con Cita
  #6  
Antiguo 16-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Pero pensandolo bien mas bien debería ser así

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If (DBEdit7.Text = '') OR
   (DBComboBox2.Text = '') OR
   (DBEdit13.Text = '')  OR 
   (DBLookUpComboBox5.Text = '') OR
   (DBLookUpComboBox6.Text = '') OR 
   (DBLookUpComboBox7.Text = '') OR 
   (DBLookUpComboBox8.Text = '') OR 
   (DBEdit14.Text = '') OR 
   (DBEdit15.Text = '') OR 
   (DBLookUpComboBox1.Text = '') then 
    MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;

Con una sola de las condiciones que se cumpla te debe dar el error.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 16-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
excelente egostar muchas gracias me funciona de pelos y sucede que tambien faltaba un else asi:

Código Delphi [-]
procedure TFPedido.BitBtn1Click(Sender: TObject);
begin
If (DBEdit7.Text = '') AND
   (DBComboBox2.Text = '') and
   (DBEdit13.Text = '')  and 
   (DBLookUpComboBox5.Text = '') and
   (DBLookUpComboBox6.Text = '') and 
   (DBLookUpComboBox7.Text = '') and 
   (DBLookUpComboBox8.Text = '') and 
   (DBEdit14.Text = '') and 
   (DBEdit15.Text = '') and 
   (DBLookUpComboBox1.Text = '') then 
    MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   else <--- Aqui ---> 
   begin
      TbPedido.Insert;
      MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
   end;
end;

porque sin ella aunque apareciera el mensaje como quiera se grababa los datos en blanco.

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #8  
Antiguo 16-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Checa con el segundo post que te envié, le cambie los AND por OR y nos comentas

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 16-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
gracias egostar igual me funciona, de nuevo te lo agradezco.

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 16-08-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A riesgo de ser "pedante" o de no aportar nada en absoluto (cualquiera de estas cosas pueden ser) prepararía una función "EmptyTextProperty" tal que esta:

Código Delphi [-]
function EmptyTextProperty(controls:
 array of TWinControl): boolean;
var
  i: integer;
  buffer: array [0..MAX_PATH] of char;
begin
  result := false;
  for i := Low(controls) to High(controls) do begin
    GetWindowText(controls[i].Handle,buffer,Length(buffer));
    if (Trim(buffer) = EmptyStr) then begin
      result := false;
      break;
    end
    else
      result := true;
  end;
end;

De modo que podrías usarla tal que así:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if EmptyTextProperty([ then
    DBEdit7,
    DBEdit14,
    DBEdit15,
    DBEdit13,
    DBComboBox2,
    DBLookUpComboBox5,
    DBLookUpComboBox6,
    DBLookUpComboBox7,
    DBLookUpComboBox8,
    DBLookUpComboBox1
  ]) then begin
    // Ningún control tiene su propiedad "Text" vacía
  end else begin
    // Algún control tiene su propiedad "Text" vacía
  end;
end;

Aunque para mi gusto esos controles deberían tener un nombre descriptivo, un identificador que los identificase. De ese modo creo que las cosas quedarían bastante más claras. A modo de ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if EmptyTextProperty([ then
    dbcbPais,
    dbedNombre,
    dbedCiudad,
    dbedApellidos,
    dbcbProvincia,

    { Resto de controles }

  ]) then begin
    // Ningún control tiene su propiedad "Text" vacía
  end else begin
    // Algún control tiene su propiedad "Text" vacía
  end;
end;

En fin. No sé si te valdrá de algo o te darán ganas de mandarme allí donde cristo dio las tres voces, pero, bueno, ahí queda.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 16-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por dec Ver Mensaje
En fin. No sé si te valdrá de algo o te darán ganas de mandarme allí donde cristo dio las tres voces, pero, bueno, ahí queda.
Vamos amigo David, que eso que pones esta genial, a veces uno solo contesta con la respuesta inmediata, pero viendo lo que posteas, no me queda mas que decir, excelente....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 16-08-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.119
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Gracias egostar. Repasando el asunto, parece que no queda muy claro que se llame la función "EmptyTextProperty" y retorne "false" si algún control tiene su propiedad "Text" vacía... pareciera que debería ser al revés, es decir:

Código Delphi [-]
function EmptyTextProperty(controls:
 array of TWinControl): boolean;
var
  i: integer;
  buffer: array [0..MAX_PATH] of char;
begin
  result := true;
  for i := Low(controls) to High(controls) do begin
    GetWindowText(controls[i].Handle,buffer,Length(buffer));
    if (Trim(buffer) = EmptyStr) then begin
      result := true;
      break;
    end
    else
      result := false;
  end;
end;

De este modo ahora se "lee" mejor:

Código Delphi [-]
if EmptyTextProperty([Control1,Control2]) then
  // Alguna propiedad Text de los controles está vacía
else
  // Ninguna propiedad Text de los controles está vacía

Creo que así se lee mejor y más claro. ¿Verdad?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #13  
Antiguo 16-08-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.562
Poder: 25
egostar Va camino a la fama
Por supuesto, está mejor, por cierto, me has dado una buena idea con ese código,

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #14  
Antiguo 16-08-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 22
enecumene Va por buen camino
Gracias Dec Excelente tambien me sirve. gracias a los dos de nuevo..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Los DBEdits drakkon Conexión con bases de datos 1 12-06-2007 03:47:41
DBEdits firebird istradlin Conexión con bases de datos 2 22-03-2005 14:29:14
Mostrar en blanco los dbedits y los dblookupcombobox al inicio de la ejecucion vhirginia Conexión con bases de datos 3 29-04-2004 01:41:28
Validación en DBEdits Marina Conexión con bases de datos 3 29-08-2003 02:02:52
Campos Numericos en DBEDITS jfloro OOP 2 04-06-2003 12:40:22


La franja horaria es GMT +2. Ahora son las 00:47:58.


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