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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2008
dakar08 dakar08 is offline
Registrado
 
Registrado: nov 2008
Posts: 2
Poder: 0
dakar08 Va por buen camino
Problemas modificando una tabla

Hola,
Mi nombre es Jordi, vivo cerca de Valencia, y llevo casi 10 años programando en Delphi.
Saludos a tod@s!!!
Llevo el programa de gestión de un centro médico, el cual empecé el año 99 en Delphi5, y sigo con esa versión por miedo a incompatibilidades.
Uso una BBDD en Interbase. Empecé con v5.5, ahora uso la versión 8.1 (2007).
Nunca he tenido problemas con el programa, pero ahora me ocurre una cosa que no llego a comprender, por eso os pido ayuda:

Una factura incluye varias visitas. Las visitas facturadas las marco Facturado=Si.
Cuando editamos una factura que ya existe, se permite modificar las fechas de facturación
Si se cambian, es necesario desmarcar Facturado=Si de las visitas de la factura original y marcar las nuevas, de la siguiente forma:
-desmarcar: MarcarVisitesFacturades( True );
-marcar: MarcarVisitesFacturades( False );
Las funciones se llaman una detrás de otra, modificando las fechas (Data0 y Data1) antes de la segunda llamada.

Código Delphi [-]

procedure TGenFact.MarcarVisitesFacturades( bDesmarcar: Boolean );

begin

  with DBmodule.Query do

  begin

    Close;

    try

      SQL.Clear;

      SQL.Add( 'UPDATE Visita' );

      SQL.Add( 'set Facturat = :Fac' );

      SQL.Add( 'where Mutua = :CodMut' );

      SQL.Add( 'and Tipo = :TipMut' );

      SQL.Add( 'and DataFact >= ata0 and DataFact <= ata1' );

 

      if bDesmarcar then

        ParamByName('Fac').AsString := 'N'

      else

        ParamByName('Fac').AsString := 'S';

      ParamByName('CodMut').AsString := CodMut.Text;

      ParamByName('TipMut').AsString := TipMut.Text;

      ParamByName('Data0').AsDate := Data0.Date;

      ParamByName('Data1').AsDate := Data1.Date;

    finally

      ExecSql;

    end;

  end;

end;

Por alguna razón que desconozco, la querie de MarcarVisitesFacturades( False ) no actualiza la base de datos al momento. Es necesario cerrar el programa totalmente y volver a entrar para ver que las visitas están facturadas… ¿Por qué pasa esto?
Únicamente cerrando y abriendo el form de facturación no se actualizan.

En el FormClose hago DBModule.Query.Close;

Esta es la llamada al form de facturación, ¿quizás el “Free” no es correcto? Con “Release” el problema sigue…

Código Delphi [-]

with TGenFact.Create(Application) do

try

  Tag := 1;   // Nova factura

  TipMut.Text := aTipMut[ cbMutues.ItemIndex ];

  CodMut.Text := IntToStr( aMutues[ cbMutues.ItemIndex ] );

  NomMut.Text := cbMutues.Text;

 

  ShowModal;

finally

  Free;

end;

Agradezco de antemano cualquier ayuda o pista para llegar a solucionar este problema.

Saludos cordiales,
Jordi
Responder Con Cita
 



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
Modificando la base de datos a traves de un Datagrid miss flakita Firebird e Interbase 17 01-02-2008 03:54:45
Modificando Procedimiento para concatenar imagenes JPG Thorax Gráficos 2 04-01-2008 01:50:06
Dos aplicaciones modificando el mismo registro ... seoane Firebird e Interbase 31 27-09-2007 12:32:28
Modificando total de acuerdo a existencia karlaoax SQL 5 02-05-2007 23:06:46
Modificando exes b0rn Varios 3 06-03-2007 22:36:18


La franja horaria es GMT +2. Ahora son las 05:39:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi