Re: [firebase-br] Consulta está derrubando o serviço

Campus campus em sinos.net
Sex Jan 26 07:33:47 -03 2007


Carlos, tu já verificou se existe espaço em disco, ou na pasta onde o FB
grava os arquivos temporários ?

Já vi muita coisa maluca acontecer em informática, ontem ainda estava com um
problema num cliente, onde uma unidade C: toda foi compartilhada, mas o
win2003 não reconhecia, e tive que compartilhar uma pasta específica também,
para funcionar o programa.


----- Original Message ----- 
From: "Suporte Sinapse Informática" <suporte em sinapseinformatica.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, January 25, 2007 8:19 PM
Subject: Re: [firebase-br] Consulta está derrubando o serviço


Olá Ivan,

Segue abaixo o método que dá o erro. O erro ocorre extamente quando execute
a instrução CdsSaldoVolanteAnt.Open. Detalhe o erro não ocorre quando a
rotina está processando 3000º equipe. Como são 5570 não consegui terminar.

O cdsSaldoVolante executa o seguinte código SQL SELECT
  A.REQUIPE as EQUIPE,
  A.RCODMAT as CODMAT,
  B.CLASSIFICACAO,
  SUM(A.RTOTENT) as TOTENT,
  SUM(A.RTOTSAI) as TOTSAI,
  SUM(A.RTOTAPLIC) as TOTAPLIC,
  SUM(A.RTOTREMOV) as TOTREMOV,
  SUM(A.RSALDO) as SALDO FROM
SP_EQUIPE_GASTO_APLICADO_DATA(:pTIPOSALDO,:pCODCT,:pPROJETO,:pEQUIPE,:pDATA_
LIMITE,'-','-') A
Inner Join TB_MATERIAL B
On (B.CODMAT=A.rCODMAT)
Where (NOT A.RCODMAT Is Null and A.RCODMAT<>'')
GROUP BY A.REQUIPE,A.RCODMAT,B.CLASSIFICACAO,

Se não estiver dando para entender muito bem, eu posso te mandar o código
fonte em PVT. O programa é pequeno. Não há problema nenhum em te mandar.

Eu agradeço pela atenção que estás me dando.

At.

Carlos Henrique Meireles

Rotina que dá o erro é esse aqui.
____________________________________________________________________________
_____________________________
procedure TDmMontaRelat.ProcessarSaldoVolanteAnt(CodCt, Projeto, Equipe,
TipoSaldoAplic : String);
begin
  If Empty(Projeto) Then
     Projeto:='-';
  FrmindicaProgresso.Stacao.Caption:='Calculando o saldo volante anterior do
contrato: '+
    Codct+' | Projeto: '+Projeto+' | Equipe: '+Equipe;

(***************************************************************************
**)
  CdsSaldoVolanteAnt.Close;
  With QrySaldoVolanteAnt Do
  Begin
    ParamByName('pTIPOSALDO').AsString:=TipoSaldoAplic;
    ParamByName('pCODCT').AsString:=Codct;
    ParamByName('pPROJETO').AsString:=Projeto;
    ParamByName('pEQUIPE').AsString:=Equipe;
    ParamByName('pDATA_LIMITE').AsDate:=StrToDate('02/01/2007');
  End;
  CdsSaldoVolanteAnt.Open;// É essa linha que dá o erro.

(**************************************************************************)
  Total_Registros:=CdsSaldoVolanteAnt.RecordCount;
  Registro_Atual:=0;

(**************************************************************************)
  While Not CdsSaldoVolanteAnt.Eof Do
  Begin
    If Not CdsSaldoVolante.Locate('CODCT;PROJETO;CODMAT',

VarArrayOf([Codct,Projeto,CdsSaldoVolanteAnt.FieldByName('CODMAT').AsString]
),[]) Then
    Begin
      CdsSaldoVolante.Insert;
      CdsSaldoVolanteCODCT.Value:=Codct;
      CdsSaldoVolantePROJETO.Value:=Projeto;
      CdsSaldoVolanteEQUIPE.Value:=Equipe;

CdsSaldoVolanteCODMAT.Value:=CdsSaldoVolanteAnt.FieldByName('CODMAT').AsStri
ng;
    End
    Else
      CdsSaldoVolante.Edit;

CdsSaldoVolanteENT_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('TOTENT').A
sFloat;

CdsSaldoVolanteSAI_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('TOTSAI').A
sFloat;

CdsSaldoVolanteAPL_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('TOTAPLIC')
.AsFloat;

CdsSaldoVolanteREM_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('TOTREMOV')
.AsFloat;
    If CdsSaldoVolanteAnt.FieldByName('CLASSIFICACAO').AsString<>'R' Then

CdsSaldoVolanteSALDO_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('SALDO').
AsFloat
    Else

CdsSaldoVolanteSALDO_VOL_ANT.Value:=CdsSaldoVolanteAnt.FieldByName('TOTREMOV
').AsFloat-
         CdsSaldoVolanteAnt.FieldByName('TOTSAI').AsFloat;
    CdsSaldoVolante.Post;
    CdsSaldoVolanteAnt.Next;
    Inc(Registro_Atual);
  End;
  FrmindicaProgresso.Stacao.Caption:='Gravando o saldo volante anterior do
contrato: '+
    Codct+' | Projeto: '+Projeto+' | Equipe: '+Equipe+' |
'+IntToStr(Registro_Atual)+' / '+IntToStr(Total_Registros);
  FrmindicaProgresso.Update;
end;

Procedure
____________________________________________________________________________
_____________________________
CREATE PROCEDURE SP_EQUIPE_GASTO_APLICADO_DATA(
    TIPOSALDO VARCHAR(10),
    CODCT VARCHAR(4),
    PROJETO VARCHAR(20),
    EQUIPE VARCHAR(10),
    DATA_LIMITE DATE,
    CODMAT VARCHAR(12),
    CODCPL VARCHAR(12))
RETURNS (
    REQUIPE VARCHAR(10),
    RCODMAT VARCHAR(12),
    RCODCPL VARCHAR(12),
    RTOTENT NUMERIC(9,2),
    RTOTSAI NUMERIC(9,2),
    RTOTAPLIC NUMERIC(9,2),
    RTOTREMOV NUMERIC(9,2))
AS
begin
  If (CODMAT='' or CODMAT='-') Then
  Begin
    CODMAT=Null;
  End
  If (CODCPL='' or CODCPL='-') Then
  Begin
    CODCPL=Null;
  End
  For Select EQUIPE, CODMAT, CODCPL, SUM(SAIDA) as TOTENT, SUM(ENTRADA) as
TOTSAI From TB_ESTOQUE
  Where CODCT=:CODCT and EQUIPE=:EQUIPE and DATA<=:DATA_LIMITE
  Group By EQUIPE, CODMAT, CODCPL
  Into :rEQUIPE, :rCODMAT, :rCODCPL, :rTOTENT, :rTOTSAI
  Do
  Begin
    rTOTAPLIC=0;
    rTOTREMOV=0;
    Suspend;
   End

  For Select EQUIPE, CODMAT, CODCPL, SUM(QUANTIDADE) as TOTAPLIC,
SUM(QUANT_REMOV) as TOTREMOV From TB_MATERIAL_TAREFA
  Where CODCT=:CODCT and EQUIPE=:EQUIPE and DATA_APLIC<=:DATA_LIMITE
  Group By EQUIPE, CODMAT, CODCPL
  Into :rEQUIPE, :rCODMAT, :rCODCPL, :rTOTAPLIC, :rTOTREMOV
  Do
  Begin
     rTOTENT=0;
     rTOTSAI=0;
     Suspend;
  End
End
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


-- 
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.17.8/649 - Release Date: 23/01/2007
20:40






Mais detalhes sobre a lista de discussão lista