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-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 21
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
  #2  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
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
  #3  
Antiguo 14-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 21
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
  #4  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Cambia la instrucción Update por Post
__________________

Responder Con Cita
  #5  
Antiguo 14-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 21
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
  #6  
Antiguo 14-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.740
Poder: 26
ContraVeneno Va por buen camino
Pues si que esta bastante raro.

me he quedado sin ideas.
__________________

Responder Con Cita
  #7  
Antiguo 14-07-2005
Chocoslovaco Chocoslovaco is offline
Miembro
 
Registrado: jun 2005
Ubicación: Puebla, México
Posts: 66
Poder: 21
Chocoslovaco Va por buen camino
Alguna otra sugerencia...

Gracias ContraVeneno por tomarte la molestia de contestar
y agradezco tus comentarios. Gracias.
Alguien más podria escribir algun comentario???? por favor....
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 21:47:36.


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