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 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Problema de comprobacion de datos existentes

Hola de nuevo aqui vuelvo con otro problema, estoy tratando de comprobar si los datos entre dos campos son iguales segun lo que digita el usuario para poder avisarle al usuario que esos datos ya existen, aqui codigo:

Código Delphi [-]
procedure TFTramite.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
       [mbYes, mbNo], 0) = mrYes then
begin
if (dbModal.Text=ZTramite.FieldByName('tipo_tra').Value) and (dbTramite.Text=ZTramite.FieldByName('tramite_no').Value) then
begin
  ShowMessage('Tramite ya exise');
  end else begin
   If (dbArea.Text = '') OR
   (dbModal.Text = '') OR
   (dbTramite.Text = '') OR
   (dbRubro.Text = '') OR
   (dbfechacre.Text = '') OR
   (dbRespon.Text = '') OR
   (dbfechaent.Text = '') OR
   (DBComboBox1.Text = '') OR
   (dbStatus.Text = '') then
     MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   else
    begin
     ZTramite.post;
    ZTramite.insert;
   end;
end;
end;
end;

y lo unico que hace es tirarme el showmessage, si no me explique muy bien, por favor diganmelo que no tengo ningun problema en explicarlo de nuevo.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 18-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¿Qué tipo de componentes son dbModal y dbTramite? ¿Qué almacenas en su propiedad Text?

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 18-09-2007 a las 08:56:28.
Responder Con Cita
  #3  
Antiguo 18-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Puede ser que ZTramite.FieldByName('tipo_tra').Value o que ZTramite.FieldByName('tramite_no').Value sea null ?
Responder Con Cita
  #4  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola [Ivanzinho] dbModal y dbTramite son TDBEdits, y duilioisola los campos no son nulos, los datos existen. Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 18-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
¿El DataSource que proveé los datos a los dbedits a que tabla apunta, no será a ZTramite?

De no ser así, ¿como buscas el registro a comparar en la tabla ZTramite?

Si te tira siempre el showmessage es porque se cumple la condición, prueba a ejecutar en modo Debug y pon un punto de interrupción en el if para ver los valores.

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #6  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Cita:
Empezado por Ivanzinho Ver Mensaje
¿El DataSource que proveé los datos a los dbedits a que tabla apunta, no será a ZTramite?

De no ser así, ¿como buscas el registro a comparar en la tabla ZTramite?

Si te tira siempre el showmessage es porque se cumple la condición, prueba a ejecutar en modo Debug y pon un punto de interrupción en el if para ver los valores.

Un saúdo
El Datasource apunta la tabla ZTramite, yyyy lo demas no entendi lo que me referias, perdona mi ignorancia.

Saludos..
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #7  
Antiguo 18-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
lo que sucede es que estas comparando solo con el registro activo, dos opciones, o capturas la excepcion o realizas la busqueda antes de insertar pero en otro datasource para que este no pierda el registro activo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #8  
Antiguo 18-09-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Cita:
Empezado por enecumene Ver Mensaje
El Datasource apunta la tabla ZTramite, yyyy lo demas no entendi lo que me referias, perdona mi ignorancia.

Saludos..
Ahí está el problema, estas comparando los mismos valores y por lo tanto de va a dar siempre "true". Lo que deberias hacer es crear otra tabla que apunte a la misma tabla de la base de datos y en el procedimientoBitBtn1Click compruebas si existen los datos utilizando un locate o un findkey. También puedes hacerlo lanzando una consulta a la base de datos mediante un query.

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #9  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
bueno estoy haciendo lo siguiente:

Código Delphi [-]
procedure TFTramite.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
       [mbYes, mbNo], 0) = mrYes then
begin
if (ZTramite.FieldByname('tramite_no').value = dbTramite.Text) and (ZTramite.FieldByname('tipo_tra').value = dbModal.Text) then
begin
  with ZQuery1 do
  begin
    Close;
    ParamByName('tipo').Value:= dbModal.Text;
    ParamByName('tramite').Value:= dbTramite.Text;
    Open;
    if RecordCount > 0 then
    begin
      showmessage('Tramite ya existe');
      Abort;
    end;
  end;
end else begin
   If (dbArea.Text = '') OR
   (dbModal.Text = '') OR
   (dbTramite.Text = '') OR
   (dbRubro.Text = '') OR
   (dbfechacre.Text = '') OR
   (dbRespon.Text = '') OR
   (dbfechaent.Text = '') OR
   (DBComboBox1.Text = '') OR
   (dbStatus.Text = '') then
     MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0)
   else
    begin
    ZRegistro.SQL.Clear;
    ZRegistro.SQL.Text:= '//consulta sql';
    ZRegistro.execsql;
   end;
end;
end;
end;

problema? no hace nada, ni inserta, ni me presenta el mensaje, ni un error, se queda igual..

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 18-09-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
porq despues que compruebas no das opciones, prueba esto

Código Delphi [-]
procedure TFTramite.BitBtn1Click(Sender: TObject);
begin
  if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
     //Valida que los campos esten vacios
     If (dbArea.Text = '') OR
        (dbModal.Text = '') OR
        (dbTramite.Text = '') OR
        (dbRubro.Text = '') OR
        (dbfechacre.Text = '') OR
        (dbRespon.Text = '') OR
        (dbfechaent.Text = '') OR
        (DBComboBox1.Text = '') OR
        (dbStatus.Text = '') then
     begin
          MessageDlg('Hay Casillas sin Llenar Por Favor Llenarlo',mtError,[mbOK],0);
          Exit;
     end; //Valida que este espacios en blanco
     with ZQuery1 do
     begin
         Close;
         ParamByName('tipo').Value:= dbModal.Text;
         ParamByName('tramite').Value:= dbTramite.Text;
         Open;
         if RecordCount > 0 then
         begin
           showmessage('Tramite ya existe');
           Exit;
         end;
     end; //with zquery

     ZRegistro.SQL.Clear;
     ZRegistro.SQL.Text:= '//consulta sql';
     ZRegistro.execsql;
  end; //Pregunat si desea guardar
end; //Fin del procedure
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 18-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Gracias Eduarcol, lamentablemente no he podido probar tu sugerencia debido a un problema Acentos como en el hilo que abri hace 1 dia.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #12  
Antiguo 19-09-2007
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola Eduarcol, ya pude probar tu sugerencia y debo decirte que me funciono de mil maravillas, lo probe con una base de datos en mi casa ya que no tiene problema de acentos, solo es en la oficina donde trabajo que tiene ese problema, me da la impresion que es la version del paquete que tiene instalado, pos mañana hare la prueba instalando la version que tengo en mi casa,

De nuevo muchas a todos que me echaron mano en esto.

Saludos.
__________________

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
Acceder a datos existentes de outlook 2003 saldanaluis Varios 1 18-05-2007 18:25:16
Comprobación del formato de fecha luxus OOP 7 14-09-2006 22:35:18
Conocer ip de las conexiones existentes anduj Firebird e Interbase 8 01-03-2005 15:50:14
Comprobacion si la imagen cargada es un jpg Oreades Gráficos 1 02-07-2004 22:21:55
Insertar registro entre 2 existentes Rox77 Tablas planas 5 23-07-2003 11:15:56


La franja horaria es GMT +2. Ahora son las 10:06:27.


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