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

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 24-08-2007
Dado de baja Dado de baja is offline
Miembro
 
Registrado: ago 2007
Posts: 140
Poder: 19
Dado de baja Va por buen camino
Perdón por no haber escrito antes. Estoy a caballo entre dos ciudades.

Os explico mejor los procesos:
  1. Recupero o creo un ticket nuevo. El procedimiento verLineas, me muestra las lineas actuales. (Por ahora todo bien).
  2. Si es un ticket nuevo, agrego un artículo a vender. es decir una linea nueva. O modifico una linea ya existente:
Código:
  Asql.Limpia;
  asql.asigna('CODIGO',Acod.Text);
  asql.asigna('DESCRIPCION',Ades.Text);
  asql.asigna('PVP',Apvp.Text);
  asql.asigna('DTO',Adto.Text);
  asql.asigna('NFACT',IntToStr(i));
  asql.asigna('CAJA',dm.T.Caja);
  asql.asigna('IVA','16');
  asql.asigna('CLIENTE',Edit4.Text);
  asql.asigna('FECHA',dm.T.IbFecha);
  asql.asigna('ALMACEN',dm.T.ALmacen);
  asql.asigna('EJERCICIO',dm.T.ejercicio);
  asql.asigna('ECODIGO',dm.T.ecodigo);

 if mpos.Text='' then  // Si es una linea nueva.
  s:=ASQL.carga('LINTIK')
 else
  begin // Es una modificación.
    asql.Clausula:=' POS='+mPOS.Text;
    s:=ASQL.cargaModif('LINTIK');
    mpos.Text:='';
  end;
   DM.T.IBSQL1.SQL.Clear;
    DM.T.IBSQL1.SQL.Add(s);
    DM.T.IBSQL1.ExecQuery;
    DM.T.IBSQL1.Close;


  s:='update lintik ';
  s:=s+'set parcial_l=uni*pvp, ';
  s:=s+'imp_dto=((parcial_l*dto)/100), ';
  s:=s+'base=parcial_l-imp_dto, ';
  s:=s+'cuota=((base*iva)/100), ';
  s:=s+'total=base-cuota';
  s:=s+' where '+filtro;

  dm.T.IBSQL1.Close;
  dm.T.IBSQL1.SQL.Clear;
  dm.t.IBSQL1.SQL.Add(s);
  dm.T.IBSQL1.ExecQuery;
  dm.T.IBSQL1.Close;

  VerLineas;
  • He puesto el código que agrega o modifica lineas. Como veis todo es por SQL.
  • Tras las modificaciones o inserciones, llamo a VerLineas que es el responsable de actualizar el DBGrid. Pero no se actualiza.
  • No le hagais caso al objeto Asql, es una unidad que diseñe para crear de forma cómoda los insert o los updates. El metodo carga o cargamodif solo retorna la sentencia SQL en funcion de los campos asignados. Esto funciona.
  • Algo significativo es que solo se ver las modificiaciones cuando cierro y abro la aplicación.
Código:
Procedure TForm1.VerLineas;
var
  s: string;
begin
 s:='SELECT CODIGO,DESCRIPCION, UNI, PVP, DTO,TOTAL,POS FROM LINTIK WHERE '+filtro;
 dm.T.IBTquery.Active:=false;
 dm.t.IBQuery1.SQL.Clear;
 dm.t.IBQuery1.SQL.Add(S);
 dm.T.IBTquery.Active:=true;
 dm.T.IBQuery1.Open;
// dbGrid1.Refresh;
// totales;
end;
__________________
Saludos Cordiales.
------------------
Responder Con Cita
 


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
PickList DBGrid (Pregunta acerca de los DBGRID) lazarous Varios 1 10-01-2006 09:53:12
Como extraer datos de un DBgrid a otro DBgrid mickey Conexión con bases de datos 13 29-01-2004 05:05:30


La franja horaria es GMT +2. Ahora son las 16:41:15.


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