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 11-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 20
Chocoslovaco Va por buen camino
Si QKardex si me arroja datos...de hecho antes de que entre a realizar el proceso con los registros tengo esto despues de abrir la consulta...
Código Delphi [-]
.... 
if Not(Eof) then //SI CONSULTA KARDEX NO ES VACIA
     begin
.....
No entiendo cual pueda ser el problema pues hice esto para probar..
Código Delphi [-]
.. .. 
   FieldValues['Parcial']:=true; FieldValues['ParcialE']:=true;
   FieldValues['Importe']:= FieldValues['ImporteE'].AsCurrency;
  end;
  Update;
  ShowMessage(CurrToStr( FieldValues['Importe']));
y me arroja el valos que se asigno dos lineas arriba...¿Existe alguna otra cosa que deba revisar??? o ¿Deberia revisar algo mas??, tengo otros ADOQuery donde uso por ejemplo actualizacion o eliminacion y esos si surten efecto sobre la tabla afectada. Gracias de nuevo
Responder Con Cita
  #2  
Antiguo 13-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 20
Chocoslovaco Va por buen camino
Debo Cambiar de Componente???

Hola de nuevo a todos, aun sigo sin poder resolver el problema de la actualizacion de los campos .... he buscado en los foros si ya existe una consulta similar sin tener exito, ahora no se si lo que pasa es que ¿utilize el componente incorrecto?, ¿deberia cambiar el componente?..por un ADODataSet...si es asi alguien me pude explicar como debo usarlo. Gracias
Responder Con Cita
  #3  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
en la parte del showmessage es correcto ¿cierto?

¿pero no se reflejan los cambios? si en el showmessage es correcto, entonces los cambios ya deberían estar hechos. ¿No te hará falta hacer un refresh en donde revisas si se hicieron los cambios?
__________________

Responder Con Cita
  #4  
Antiguo 14-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 20
Chocoslovaco Va por buen camino
Abro directamente la BD

Efectivamente los cambios ya deberian estar hechos.
Para revisar he abierto despues de que termina mi aplicacion,
la BD, y consultado directamente las tablas, y solo las tablas
que afecte haciendo un UPDATE o DELETE, son las que registraron
los cambios, en las tablas donde utilize modificaciones a traves del
ADOQuery....Edit.....Update... no pasó absolutamente nada.
coloco de nuevo el codigo (espero no se torne muy tedioso)
y agradezco la atencion prestada y los comentarios que me
puedan hacer al respecto. Saludos
Código Delphi [-]
 
procedure TInicio.RepagadoEspecifico(Cliente:string);
var
  IdCliente,prNoFactura:integer;
  AbonoP:Real;
begin
  with QActualiza do 
   begin
    SQL.Clear; SQL.Text:='DELETE * FROM [Abonos no Aplicados]'; ExecSQL;
    SQL.Clear; SQL.Text:='DELETE * FROM [Abonos Pendientes]';   ExecSQL;
    SQL.Clear; SQL.Text:='SELECT Id AS Registro FROM Clientes WHERE '+
                                   'NombreCompañía=' + Quotedstr(Cliente); Open;
    IdCliente:=FieldValues['Registro']; SQL.Clear;
    SQL.Text:='UPDATE Tabla7 SET '+ 
             'Pagada=0,PagadaE=0,Parcial=0,PArcialE=0,Importe=0,ImporteE=0 '+
              'WHERE ((Pedido="Cargo") OR (Pedido="Nota de Cargo") ' + 
              'OR  (Pedido="CargoF") OR (Pedido="Abono")) '+
              'AND NombreCompañía='+ Quotedstr(Cliente);
    ExecSQL; SQL.Clear;
    If IdCliente <> 0 Then
    begin
      SQL.Text:='UPDATE Pedidos SET Pagada=0,PagadaE=0,ParcialE=0,ImporteE=0 WHERE Idpor=3 And IdCliente='+  IntToStr(IdCliente);
      ExecSQL; SQL.Clear;
      SQL.Text:='SELECT IdMovimiento, Aplicar, Factura FROM [Consulta A&B PagadoEspecifico] '+
                'WHERE NombreCompañía=' + Quotedstr(Cliente) +' ORDER BY Fecha';
      Open;
    end;
  end;
  while Not(QActualiza.Eof) do
    begin  //Inicia While
    prNoFactura:=QActualiza.FieldValues['Factura'];
    with QKardex do
      begin   //Inicia With QKardex
      Close; SQL.Clear;
      SQL.Text:='SELECT IdCrédito,Pagada,PagadaE,Parcial,ParcialE,Importe,ImporteE,Totales FROM Tabla7 '+
                'WHERE ((Pedido="Cargo") OR (Pedido="Nota de Cargo") OR (Pedido="CargoF")) '+
                'AND NoFactura=' + IntToStr(prNoFactura) + 'AND NombreCompañía='+ Quotedstr(Cliente);
      Open;
      if Not(Eof) then //SI CONSULTA KARDEX NO ES VACIA
        begin
        Edit;
        FieldValues['ImporteE']:=FieldValues['ImporteE'] + QActualiza.FieldValues['Aplicar'];
        if FieldValues['ImporteE']>=FieldValues['Totales'] then
          begin // SI ImporteE>=Totales
          if FieldValues['ImporteE']>FieldValues['Totales'] then
            begin
            AbonoP:=FieldValues['ImporteE'].AsReal - FieldValues['Totales'].AsReal;
            QInsertados.Close;
            QInsertados.SQL.Clear;
            QInsertados.SQL.Text:='INSERT INTO [Abonos Pendientes] (Cliente,Importe,IdAbono) VALUES('+ Quotedstr(Cliente) + ',' + CurrToStr(AbonoP)+ ',' + IntToStr(prNoFactura) +')';
            QInsertados.ExecSQL;
            FieldValues['ImporteE']:= FieldValues['Totales'].AsCurrency;
            Update;
            QInsertados.Close;
            end;// Fin ImporteE>Totales
          FieldValues['Pagada']:=True; FieldValues['PagadaE']:=True;
          FieldValues['Parcial']:=False; FieldValues['ParcialE']:=False;
          FieldValues['Importe']:=FieldValues['ImporteE'];
          Update;
          QInsertados.SQL.Clear;
          QInsertados.SQL.Text:='UPDATE Pedidos SET Pagada=-1,PagadaE=-1,ParcialE=0,ImporteE='+ CurrToStr(FieldValues['Importe']) + ' WHERE IdPedido=' + IntToStr(FieldValues['IdCrédito']);
          QInsertados.ExecSQL;
          QInsertados.Close;
          end
        else //Else SI ImporteE>=Totales
          begin
          FieldValues['Pagada']:=False; FieldValues['PagadaE']:=False;
          FieldValues['Parcial']:=True; FieldValues['ParcialE']:=True;
          FieldValues['Importe']:=FieldValues['ImporteE'];
          Update;
          QInsertados.SQL.Clear;
          QInsertados.SQL.Text:='UPDATE Pedidos SET Pagada=-1,PagadaE=-1,ParcialE=0,ImporteE='+ CurrToStr(FieldValues['Importe']) +' WHERE IdPedido=' + IntToStr(FieldValues['IdCrédito']);
          QInsertados.ExecSQL;
          QInsertados.Close;
          end; // Termina SI ImporteE>=Totales
        end
      else // Else SI CONSULTA KARDEX NO ES VACIA
        begin
        Close; SQL.Clear;
        SQL.Text:='SELECT IdCrédito,Pagada,PagadaE,Parcial,ParcialE,Importe,ImporteE,Totales '+
                  'FROM Tabla7 '+
                  'WHERE IdCrédito=1 AND ((Pedido="CargoF") OR (Pedido="Nota de Cargo") OR (Pedido="Cargo")) AND NombreCompañía=' + QuotedStr(Cliente);
                  Open;
        If Eof then
          begin
          QInsertados.SQL.Clear;
          QInsertados.SQL.Text:='INSERT INTO [Abonos Pendientes](Cliente,Importe,IdAbono) VALUES ('+ QuotedStr(Cliente) + ',' + CurrToStr(QActualiza.FieldValues['Aplicar']) + ',' + IntToStr(QActualiza.FieldValues['Factura']) + ')';
          QInsertados.ExecSQL;
          QInsertados.Close;
          end
        else
          begin
          Edit;
          FieldValues['ImporteE']:=FieldValues['ImporteE']+FieldValues['Haber'];
          if FieldValues['ImporteE']>=FieldValues['Totales'] then
            begin
            if FieldValues['ImporteE']>=FieldValues['Totales'] then
              begin
              AbonoP:=FieldValues['ImporteE'].AsReal - FieldValues['Totales'];
              QInsertados.SQL.Clear;
              QInsertados.SQL.Text:='INSERT INTO [Abonos Pendientes] (Cliente, Importe, IdAbono) VALUES ('+ QuotedStr(Cliente) + ','+ CurrToStr(AbonoP) + ','+ IntToStr(prNoFactura) +',';
              QInsertados.ExecSQL;
              QInsertados.Close;
              FieldValues['ImporteE']:= FieldValues['Totales'].AsCurrency;
              end;
            FieldValues['Pagada']:=true; FieldValues['PagadaE']:=true;
            FieldValues['Parcial']:=false; FieldValues['ParcialE']:=false;
            FieldValues['Importe']:= FieldValues['ImporteE'].AsCurrency;
            end
          else
            begin
            FieldValues['Pagada']:=false; FieldValues['PagadaE']:=false;
            FieldValues['Parcial']:=true; FieldValues['ParcialE']:=true;
            FieldValues['Importe']:= FieldValues['ImporteE'].AsCurrency;
            end;
          Update;
          end
        end; //TERMINA SI CONSULTA KARDEX NO ES VACIA
        QActualiza.Next;
      end;  // Termina With QKardex
    end; // Termina While
end;//Repagado Especifico
Responder Con Cita
  #5  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Cambia la instrucción Update por Post
__________________

Responder Con Cita
  #6  
Antiguo 14-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 20
Chocoslovaco Va por buen camino
Es muy raro???

Ya realize el cambio que me sugeriste. y sigue sin surtir efecto.
¿Que estaré hacindo mal?..
La BD la abro de la sig forma:
Código Delphi [-]
  
procedure TInicio.FormCreate(Sender: TObject);
begin
try
  ConexionBD.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Servidor\Back Sistema Empresarial1.3.mdb;Persist Security Info=False';
  ConexionBD.LoginPrompt:=False;
  ConexionBD.Connected:=True;
  MessageDlg('Conexion','Conexión con la Base de Datos establecida con éxito',mtInformation,[mbOK],0,mbOK);
except
  on E:Exception do
    begin
      MessageDlg('Error de Conexion','Error en la Conexión con la Base de Datos',mtWarning,[mbOK],0,mbOK);
      ConexionBD.Close
    end;
end;
end;

la Propiedad en diseño: Mode esta en cmShareDenyNone, o sera un problema
con el componente??? o con el ADO??..pero esto :
Código Delphi [-]
...
with QActualiza do
  begin
    SQL.Clear; SQL.Text:='DELETE * FROM [Abonos no Aplicados]'; ExecSQL;
    SQL.Clear; SQL.Text:='DELETE * FROM [Abonos Pendientes]';   ExecSQL;
    SQL.Clear; SQL.Text:='SELECT Id AS Registro FROM Clientes WHERE NombreCompañía=' + Quotedstr(Cliente);
    Open;
...

Si funciona las tablas son afectadas....
Responder Con Cita
  #7  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 24
ContraVeneno Va por buen camino
Pues si que esta bastante raro.

me he quedado sin ideas.
__________________

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 09:26:42.


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