Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-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: 24
enecumene Va por buen camino
tambien intente esto pero no me hace nada:

Código Delphi [-]
procedure TFFactura.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
       [mbYes, mbNo], 0) = mrYes then
  begin
       if ZPedido.Fields[19].AsString = ' ' then
        if ZFactura.State in [dsedit,dsinsert] then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef_2='+Quotedstr('Sí')+', oc_no_sigef='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ShowMessage(ZRegPed.SQL.Text);
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        end;

       if (ZPedido.Fields[19].AsString <> ' ') and (ZPedido.Fields[42].AsString = ' ') then
        if ZFactura.State in [dsedit,dsinsert] then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef1='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ShowMessage(ZRegPed.SQL.Text);
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        end;

       if (ZPedido.Fields[42].AsString <> ' ') and (ZPedido.Fields[43].AsString = ' ') then
        if ZFactura.State in [dsedit,dsinsert] then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef2='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ShowMessage(ZRegPed.SQL.Text);
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        end;
      end else
      showmessage('No hago nada, no estoy editando');
end;

que quebradera!!
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 13-09-2007
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 24
Rudi Va por buen camino
Hola enecumene.-

Es extraño, estas seguro que el campo que quieres comprobar es el 19?
has revisado con breakpoints y watches los valores de la comparación?

intenta utilizar para estar bien seguros FieldByName('NombreCampo') en lugar de Fields[n] es decir:

Código Delphi [-]
actual: if ZPedido.Fields[19].Value=Null then
.
intenta:if ZPedido.FieldByName('NombreCampo').Value=Null then

vamos probando para ver que pasa, pero comprueba como te dije antes, si es que no lo has hecho, los valores de los datos a comparar en el primer caso ZPedido.Fields[19].Value y vamos viendo que nos va dando.
Responder Con Cita
  #3  
Antiguo 13-09-2007
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 22
b3nshi Va por buen camino
No me tome el tiempo de ponerme a leer bien q es lo q quieres hacer, pero porq no pruebas:

Código Delphi [-]
if ZPedido.Fields[1].AsString <> ' ' then
//tiene algo

{Saludos}
Responder Con Cita
  #4  
Antiguo 21-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: 24
enecumene Va por buen camino
disculpen la demora estaba trabajando en otros temas, bien, vuelvo con este asunto, intenté hacerlo como rudi me lo sugirio:

Código Delphi [-]
procedure TFFactura.BitBtn1Click(Sender: TObject);
begin
if MessageDlg('¿Está seguro que desea Guardar?', mtConfirmation,
       [mbYes, mbNo], 0) = mrYes then
 if CheckBox1.Checked = True then
  begin
   if (DBEdit1.Text = '') or (DBEdit20.Text = '') then
      MessageDlg('Debes ingresar un número de O/C o Casa Comercial',mtError,[mbOK],0)
      else
        if ZFactura.State in [dsedit,dsinsert] then
        begin
        if ZPedido.FieldByName('oc_no_sigef').Value=null then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef_2='+Quotedstr('Sí')+', oc_no_sigef='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
        end;

       if (ZPedido.FieldByName('oc_no_sigef').Value <> null) and (ZPedido.FieldByName('oc_no_sigef2').Value=null)then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef1='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
        end;

       if (ZPedido.FieldByName('oc_no_sigef').Value <> null) and (ZPedido.FieldByName('oc_no_sigef1').Value <> null) then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef2='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
        end;
       end;
      end else begin
       if (DBEdit20.Text = '') or
          (DBEdit21.Text = '') or
          (DBCheckBox1.Checked = False) then
          MessageDlg('Debes cotejar Compras por el fondo, ingresar Casa Comercial o No. de Recibo!',mtError,[mbOK],0)
          else
          if ZFactura.State in [dsedit,dsinsert] then
            begin
            ZFactura.Post;
            ZFactura.Insert;
            MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
            end;
       end;
       DBCheckBox1.Checked:=False;
       CheckBox1.Checked:=False;
end;

esta es la parte que me da problemas:

Código Delphi [-]
 if ZPedido.FieldByName('oc_no_sigef').Value=null then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef_2='+Quotedstr('Sí')+', oc_no_sigef='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
        end;

       if (ZPedido.FieldByName('oc_no_sigef').Value <> null) and (ZPedido.FieldByName('oc_no_sigef2').Value=null)then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef1='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;
        MessageDlg('Los Datos se grabaron exitosamente!',mtConfirmation,[mbOK],0);
        end;

       if (ZPedido.FieldByName('oc_no_sigef').Value <> null) and (ZPedido.FieldByName('oc_no_sigef1').Value <> null) then
        begin
        ZRegPed.SQL.Clear;
        ZRegPed.SQL.Add('UPDATE reg_pedidos SET oc_no_sigef2='+Quotedstr(DBEdit1.Text)+'');
        ZRegPed.SQL.Add(' WHERE no = '+Quotedstr(DBEdit15.Text)+' ');
        ZRegPed.ExecSQL;
        ZFactura.Post;
        ZFactura.Insert;

el campo oc_no_sigef contiene datos que esta en el primer if, lo mas logico es que me execute el segundo if pero no lo hace aun teniendo datos me sobreescribe el campo, no se mas nada que hacer, me dan ganas de estrellarme contra el monitor!!!!

Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #5  
Antiguo 21-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 20
waly2k1 Va por buen camino
mas dudas que vos....

Estoy viendolo si queres lo seguimos un poco

Veo algo así:
ZFactura.Post;
ZFactura.Insert;


A que haces post ?, y despues insert ?
Ejecutas la consulta y nada mas, no entiendo el post ni el insert, lo veo mejor y te comento...

No uses = <> null sino
if tabla.FieldByName('Campo').IsNull then
begin
end;

ó
if not tabla.FieldByName('Campo').IsNull then
begin
end;

Última edición por waly2k1 fecha: 21-09-2007 a las 05:18:52.
Responder Con Cita
  #6  
Antiguo 21-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 20
waly2k1 Va por buen camino
Bueno he visto un poco
Para empezar si no estás modificando o dando de alta un registro deberia estar
deshabilitado/invisible el boton y no validas esto despues.
Y por favor tomate el trabajito de ponerle nombres un poco mas descriptivos a los DBEdit, sino
no sabes si lo que estas grabando es lo que realmente debería ser.
Ponés un punto de interrupción y fijate que los datos a guardar son correctos, sino en el
WHERE no encuentra nada y no hace nada hehe.

Código:
if ZPedido.FieldByName('oc_no_sigef').IsNull then
begin
     Conx.Execute( 'UPDATE Reg_Pedidos SET OC_No_Sigef1=' + QuotedStr(DBEdit1.Text) + ' WHERE no=' + QuotedStr(DBEdit15.Text) );
 // Conx es la conexion que usa la consulta (ADO)
end;
Probá con esto y me comentas
Responder Con Cita
  #7  
Antiguo 21-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: 24
enecumene Va por buen camino
Gracias waly2k1, pero lamentablemente no funciona, quite el post e insert y lo puse una sola vez que es despues de los updates, ya que lo vi mejor estaban de mas, quite los <>= y puse isnull, lo que me hace como siempre lo ha hecho es grabar en el primer campo y si tiene datos me los sustituye. ya estoy optando por estrellarme contra el monitor.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #8  
Antiguo 21-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: 24
enecumene Va por buen camino
Gracias waly2k1, pero lamentablemente no funciona, quite el post e insert y lo puse una sola vez que es despues de los updates, ya que lo vi mejor estaban de mas, quite los <>= y puse isnull, lo que me hace como siempre lo ha hecho es grabar en el primer campo y si tiene datos me los sustituye. ya estoy optando por estrellarme contra el monitor.

Saludos.
__________________

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Saber si un arreglo contiene datos lucasarts_18 PHP 7 27-12-2006 18:16:40
select sobre campo que contiene etiquetas HTML del cual quiero solo el contenido arantzal Varios 0 13-07-2006 14:28:12
reconocer sonido ebeltete Varios 0 06-06-2006 01:05:11
Hacer locate en un campo que contiene el caracter ' RONPABLO Firebird e Interbase 4 08-03-2005 06:41:48
¿Cómo gestionar una bd de acces, que contiene un campo de texto y otro con una image? Acuarius3000 Conexión con bases de datos 1 17-01-2005 09:45:33


La franja horaria es GMT +2. Ahora son las 00:17:01.


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