Fórum como executar commit imediato? #414243
18/03/2012
0
como executar commit imediato?
us este código e obtenho o numero da venda atraves desta função GenID que SR. adriano_servitec profissional TOP me ensinou porem é o seguinte:
Estou com problemas para usar uma IBQuery pois eu faço o insert poremquando vou usar para preencher minha tabela Itensvendas diz que o numero não exite sendo que o numero foi de fato gerado o que acontece é que minha tabela não foi feito o talves o commit ou sei lá o que.
Resumo: Minha tabela Vendas gera o código da venda pelo gerador do firebird porem quando vou usar ele no itensvendas diz que não existe.
esse um pequeno videos.
http://www.4shared.com/video/SoiTXbGj/Ajuda.html
esse é meu código.
procedure TFRM_Pedido.SalvarVenda(Sender: TObject);
begin
Edit_VEN_NUMERO.Text := IntToStr(GenID(NUMEROVEN));
with IBQry_Venda do
begin
Close;
Sql.Clear;
//SQL.Text:=select gen_id(GEN_NUMEROVEN, 1) from rdb$databa;
Sql.Text := INSERT INTO VENDAS (+
FUN_CODIGO, +
SIT_CODIGO, +
LOJ_CODIGO, +
CLI_CODIGO, +
USU_CODIGO, +
VEN_TIPO, +
VEN_DATA) +
VALUES ( +
:FUN_CODIGO, +
:SIT_CODIGO, +
:LOJ_CODIGO, +
:CLI_CODIGO, +
:USU_CODIGO, +
:VEN_TIPO, +
:VEN_DATA);
ParamByName(FUN_CODIGO).AsInteger :=StrToInt(Edit_FUN_CODIGO.Text);
ParamByName(SIT_CODIGO).AsInteger :=1;
ParamByName(LOJ_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioLOJ_CODIGO.Value;
ParamByName(CLI_CODIGO).AsInteger :=StrToInt(Edit_CLI_CODIGO.Text);
ParamByName(USU_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioUSU_CODIGO.Value;
ParamByName(VEN_TIPO).AsString :=(RGrupo_VEN_TIPO.Value);
ParamByName(VEN_DATA).AsDate :=Date;
ExecSql;
{// IBQry_Venda.Transaction.CommitRetaining; }
//Depois faça o transaction para comitar
try
DM_Base.IBTrans.CommitRetaining; // ou commit
except
DM_Base.IBTrans.Rollback; //Ou rollbackretaing
us este código e obtenho o numero da venda atraves desta função GenID que SR. adriano_servitec profissional TOP me ensinou porem é o seguinte:
Estou com problemas para usar uma IBQuery pois eu faço o insert poremquando vou usar para preencher minha tabela Itensvendas diz que o numero não exite sendo que o numero foi de fato gerado o que acontece é que minha tabela não foi feito o talves o commit ou sei lá o que.
Resumo: Minha tabela Vendas gera o código da venda pelo gerador do firebird porem quando vou usar ele no itensvendas diz que não existe.
esse um pequeno videos.
http://www.4shared.com/video/SoiTXbGj/Ajuda.html
esse é meu código.
procedure TFRM_Pedido.SalvarVenda(Sender: TObject);
begin
Edit_VEN_NUMERO.Text := IntToStr(GenID(NUMEROVEN));
with IBQry_Venda do
begin
Close;
Sql.Clear;
//SQL.Text:=select gen_id(GEN_NUMEROVEN, 1) from rdb$databa;
Sql.Text := INSERT INTO VENDAS (+
FUN_CODIGO, +
SIT_CODIGO, +
LOJ_CODIGO, +
CLI_CODIGO, +
USU_CODIGO, +
VEN_TIPO, +
VEN_DATA) +
VALUES ( +
:FUN_CODIGO, +
:SIT_CODIGO, +
:LOJ_CODIGO, +
:CLI_CODIGO, +
:USU_CODIGO, +
:VEN_TIPO, +
:VEN_DATA);
ParamByName(FUN_CODIGO).AsInteger :=StrToInt(Edit_FUN_CODIGO.Text);
ParamByName(SIT_CODIGO).AsInteger :=1;
ParamByName(LOJ_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioLOJ_CODIGO.Value;
ParamByName(CLI_CODIGO).AsInteger :=StrToInt(Edit_CLI_CODIGO.Text);
ParamByName(USU_CODIGO).AsInteger :=FRM_Venda_Mais.IBQry_Autorizacao_UsuarioUSU_CODIGO.Value;
ParamByName(VEN_TIPO).AsString :=(RGrupo_VEN_TIPO.Value);
ParamByName(VEN_DATA).AsDate :=Date;
ExecSql;
{// IBQry_Venda.Transaction.CommitRetaining; }
//Depois faça o transaction para comitar
try
DM_Base.IBTrans.CommitRetaining; // ou commit
except
DM_Base.IBTrans.Rollback; //Ou rollbackretaing
Jarbas Marinho
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)