RES: [firebase-br] Não grava registro em um determinado periodo..

José Aparecido da Silva joseasilva em bol.com.br
Qui Fev 8 13:54:32 -03 2007


Um modo de saber se o registro foi inserido ou modificado nesse modo é usar 
O método RowsAffected que irá retornar o número de linhas afetada pelo 
Seu comando sql.

Depois de DM.IBCaixa.ExecSql;
Você testa o sucesso da inserção dos dados tipo: if DM.IBCaixa.RowsAffected
= 0 then ShowMessage('Houve erro na inserção do registro!');

[ ]'
Jose Aparecido da Silva

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Dimas Bolognani
Enviada em: quinta-feira, 8 de fevereiro de 2007 09:35
Para: FireBase
Assunto: Re: [firebase-br] Não grava registro em um determinado periodo..

Marcelo
O componente de uso é o IBO e nele esta configurado Read Committed, mas a 
intenção é abrir a fechar a transação a cada rotina ficando a transação 
aberto o mesmo tempo possivel.
a rotina q usa p/ gravar os dados na tabela q as vezes não grava o registro 
e assim:

      DM.IBCaixa.Unprepare;
      DM.IBCaixa.Close;
      DM.IBCaixa.SQL.Clear;
      DM.IBCaixa.SQL.Add('INSERT INTO CAIXA ');
 
DM.IBCaixa.SQL.Add('(CX_DATAMOV,CX_HORAMOV,CX_CRED_DEB,CX_DESCLANCAMENTO,');
 
DM.IBCaixa.SQL.Add('CX_TIPOENTRADA,CX_VALORDINHEIRO,CX_VALORCHEQUE,CX_VALORC
ARTAO,CX_VALORPRAZO,');
 
DM.IBCaixa.SQL.Add('CX_VALORTROCO,CX_NUMEROTERMINAL,CX_CODVENDEDOR,CX_NPEDID
O,CX_NCOMPROVANTE,');
 
DM.IBCaixa.SQL.Add('CX_NUMEROCUPOMECF,CX_CAIXAFECHADO,CX_CODFORMAPAGTO,EMPRE
SA)');
      DM.IBCaixa.SQL.Add('VALUES');
      DM.IBCaixa.SQL.Add('(:DATAMOV,:HORAMOV,:CRED_DEB,:DESCLANCAMENTO,');
 
DM.IBCaixa.SQL.Add(':TIPOENTRADA,:VALORDINHEIRO,:VALORCHEQUE,:VALORCARTAO,:V
ALORPRAZO,');
 
DM.IBCaixa.SQL.Add(':VALORTROCO,:NUMEROTERMINAL,:CODVENDEDOR,:NPEDIDO,:NCOMP
ROVANTE,');
 
DM.IBCaixa.SQL.Add(':NUMEROCUPOMECF,:CAIXAFECHADO,:CODFORMAPAGTO,:EMPRESA)')
;

      DM.IBCaixa.Prepare;
      DM.IBCaixa.ParamByName('DATAMOV').AsDate := datadosupervisor;
      DM.IBCaixa.ParamByName('HORAMOV').AsDateTime := TIME;
      DM.IBCaixa.ParamByName('DESCLANCAMENTO').AsString := EditCliente.Text;
      DM.IBCaixa.ParamByName('VALORDINHEIRO').AsDouble := 0;
      DM.IBCaixa.ParamByName('VALORCHEQUE').AsDouble := 0;
      DM.IBCaixa.ParamByName('VALORCARTAO').AsDouble := 0;
      DM.IBCaixa.ParamByName('VALORPRAZO').AsDouble := 0;
      DM.IBCaixa.ParamByName('VALORTROCO').AsDouble := 0;
      DM.IBCaixa.ParamByName('NUMEROTERMINAL').AsInteger := VTERMINAL;
      DM.IBCaixa.ParamByName('CODVENDEDOR').AsInteger := VUSUARIO;
      DM.IBCaixa.ParamByName('CRED_DEB').AsString := Edit_C_D.Text;
      DM.IBCaixa.ParamByName('TIPOENTRADA').AsString := Edit_R_V.Text;
      DM.IBCaixa.ParamByName('NPEDIDO').AsInteger := 0;
      DM.IBCaixa.ParamByName('NCOMPROVANTE').AsInteger := 
strtoint(NUMERACAO);
      DM.IBCaixa.ParamByName('NUMEROCUPOMECF').AsInteger := 0;
      DM.IBCaixa.ParamByName('CAIXAFECHADO').AsString := 'N';
      DM.IBCaixa.ParamByName('CODFORMAPAGTO').AsInteger := 
trunc(CodFormaPagto.Value);
      DM.IBCaixa.ParamByName('EMPRESA').AsInteger := VEMPRESA;
      DM.IBCaixa.ParamByName('VALORDINHEIRO').AsDouble := 
NEditDinheiro.Value;
      DM.IBCaixa.ParamByName('VALORCHEQUE').AsDouble := NEditCheque.Value;
      DM.IBCaixa.ParamByName('VALORCARTAO').AsDouble := NEditCartao.value;
      DM.IBCaixa.ParamByName('VALORTROCO').AsDouble := NEditTroco.Value;

      DM.IBCaixA.ExecSQL;
      DM.IBCaixa.SQL.Clear;


DBSOFT INFORMÁTICA LTDA
OURO FINO - MG
TEL.(35)3441-5254
Dimas Bolognani
----- Original Message ----- 
From: "Marcelo Silva" <marcvan em ig.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, February 08, 2007 8:29 AM
Subject: Re: [firebase-br] Não grava registro em um determinado periodo..


Será que vc não está esquecendo de algum post ???
Por exemplo as vezes voces pode estar dando o post na mesma primeira tabela 
e esquecendo da segunda, por ter usado o famoso Ctrl+C e Ctrl+V ... isso 
ocorre muito :)

Ex.
tabela1.append;
tabela1campo.astipo = valor;
tabela1.post;

tabela2.append;
tabela2campo.astipo = valor;
tabela1.post; <- olha aqui o esquecimento o post na tabela 1 denovo ou sem 
post

transacao.commit;


Outro detalhe... visto que esta usando COMMIT ao inves de COMMITRETAINNING 
lembre-se de que o Commit fecha a comunicação com o banco logo em seguida, 
ou seja se ele estiver "entre" o primeiro e o segundo POST o segundo não vai

ser executado pois a transação estará fechada.

Apesar de o try ajudar muito, muitas vezes ele pode ser o vilão da história 
ocultando os erros :) verifique-os

----------------------
Marcelo Silva
(11) 9693-4251
(11) 6723-3106 - LESTCRED
MSN: marcvan em ig.com.br

----- Original Message ----- 
From: "Dimas Bolognani" <dimas em dbsoftinformatica.com.br>
To: "Antonio Carlos" <a.lima.silva em terra.com.br>; "FireBase" 
<lista em firebase.com.br>
Sent: Thursday, February 08, 2007 8:09 AM
Subject: Re: [firebase-br] Não grava registro em um determinado periodo..


NÃO DA ERRO NENHUM....


DBSOFT INFORMÁTICA LTDA
OURO FINO - MG
TEL.(35)3441-5254
Dimas Bolognani
______________________________________________
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




______________________________________________
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.30/674 - Release Date: 7/2/2007
15:33
 

-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.17.30/674 - Release Date: 7/2/2007
15:33
 





Mais detalhes sobre a lista de discussão lista