Fórum Interbase um update na tabela #37183
29/06/2003
0
tabcontrato
codcontrato
dtvencimento
codfase
tabfase
codfase
diasinicio
diasfinal
dtvencimento= data do vencimento do contrato
diasinicio= total de dia em atrazo inicial
diasfim = total de dia em atrazo final
preciso analizar a tabela de contrato, saber quantos dias de atrazo e jogar a fase correspondente, para o campo codfase da tabela de contrato
Midas
Curtir tópico
+ 0Posts
29/06/2003
Afarias
SELECT codfase FROM tabfase WHERE
CURRENT_DATE-C.dtvencimento BETWEEN diasinicio AND diasfinal)
-- atualiza o codefase para todos os contratos...
adicione : WHERE C.codcontrato = <codigo>
no final para atualizar apenas 1 contrato desejado!
Vc pode ainda usar um storedProcedure se preferir.
T+
Gostei + 0
29/06/2003
Midas
Gostei + 0
30/06/2003
Midas
Gostei + 0
30/06/2003
Afarias
---
O procedimento com IBX seria: coloque um IBSQL no form/data module, preencha as propriedades Database, Transaction e SQL, e use um código tipo (ex:):
procedure Txxx.AtualizarFasesDosProjetos;
begin
with IBSQL1 do
try
Transaction.StartTransaction;
ExecQuery;
finally
Transaction.Commit;
end;
end;
Abraço!
Gostei + 0
30/06/2003
Midas
Gostei + 0
30/06/2003
Midas
Gostei + 0
30/06/2003
Afarias
A transação em uso pelo componente IBSQL já estava ativa (provavelmente pq é utilizada em outro processo ou pq vc definiu a propiedade Active do componente para TRUE em tempo de projeto -- o q não é aconselhado)
vc pode alterar se código para:
if not Transaction.InTransaction then
Transaction.StartTransaction;
ou ainda:
if Transaction.InTransaction then
Transaction.Commit;
Transaction.StartTransaction;
depende do seu caso.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)