Fórum uma de minhas transições não funciona direito no delphi com firebird #405179
18/07/2011
0
transição
id_aux := 0; Start; try WITH dm.spauxembIU do begin params[0].AsInteger := dm.cdsauxembCODIGO.AsInteger; params[1].AsString := dm.cdsauxembCODIGOPRODUTO.AsString; params[2].AsInteger := dm.cdsauxembCONTROLE.AsInteger; params[3].AsString := dm.cdsauxembDESCRICAO.AsString; params[4].AsInteger := dm.cdsauxembCODPEDIDO.AsInteger; params[5].AsInteger := dm.cdsauxembCODCLIENTE.AsInteger; params[6].AsString := dm.cdsauxembPLACA.AsString; params[7].AsInteger := dm.cdsauxembPECA1.AsInteger; params[8].AsFloat := dm.cdsauxembPESO1.AsFloat; params[9].AsInteger := dm.cdsauxembPECA2.AsInteger; params[10].AsFloat := dm.cdsauxembPESO2.AsFloat; params[11].AsInteger := dm.cdsauxembPECA3.AsInteger; params[12].AsFloat := dm.cdsauxembPESO3.AsFloat; params[13].AsInteger := dm.cdsauxembPECA4.AsInteger; params[14].AsFloat := dm.cdsauxembPESO4.AsFloat; params[15].AsInteger := dm.cdsauxembPECA5.AsInteger; params[16].AsFloat := dm.cdsauxembPESO5.AsFloat; params[17].AsInteger := dm.cdsauxembPECA6.AsInteger; params[18].AsFloat := dm.cdsauxembPESO6.AsFloat; params[19].AsInteger := dm.cdsauxembPECA7.AsInteger; params[20].AsFloat := dm.cdsauxembPESO7.AsFloat; params[21].AsInteger := dm.cdsauxembPECA8.AsInteger; params[22].AsFloat := dm.cdsauxembPESO8.AsFloat; params[23].AsInteger := dm.cdsauxembPECA9.AsInteger; params[24].AsFloat := dm.cdsauxembPESO9.AsFloat; params[25].AsInteger := dm.cdsauxembPECA10.AsInteger; params[26].AsFloat := dm.cdsauxembPESO10.AsFloat; params[27].AsInteger := dm.cdsauxembPECA11.AsInteger; params[28].AsFloat := dm.cdsauxembPESO11.AsFloat; params[29].AsInteger := dm.cdsauxembPECA12.AsInteger; params[30].AsFloat := dm.cdsauxembPESO12.AsFloat; params[31].AsInteger := dm.cdsauxembPECA13.AsInteger; params[32].AsFloat := dm.cdsauxembPESO13.AsFloat; params[33].AsInteger := dm.cdsauxembPECA14.AsInteger; params[34].AsFloat := dm.cdsauxembPESO14.AsFloat; params[35].AsInteger := dm.cdsauxembPECA15.AsInteger; params[36].AsFloat := dm.cdsauxembPESO15.AsFloat; execproc; Comit; id_aux := params[37].AsInteger;
end; except Rollback; end;// fim da transição no data module
//inicio do evento
strsql:='select * from tempauxemb where dataemissao = '''+formatdatetime('dd.mm.yyyy',datetimepicker1.Date)+''' And CodPedido = '''+dbtext2.Caption+''' order by descrel '; dmbusca.Query1.Close; dmbusca.Query1.SQL.Clear; dmbusca.Query1.SQL.Add(strsql); dmbusca.Query1.Open;
//limpa tabela auxiliar do embarque try transc.IsolationLevel := xilreadcommitted; transc.TransactionID := strtoint(idtransaction); sqlconnection1.Connected := true; sqlconnection1.Open; SQLCONNECTION1.StartTransaction(TRANSC); errorcode := sqlconnection1.ExecuteDirect('delete from AUXEMB'); if errorcode = 0 then begin sqlconnection1.Commit(transc); end; if errorcode <> 0 then // SQLConnection1.Rollback(Transc); raise exception.Create('error: code = '+ inttostr(errorcode))
except on E: Exception do ShowMessage( E.Message ) end; //termina a transaçao
//REINICIA SEQUENCIA try transc.IsolationLevel := xilreadcommitted; transc.TransactionID := strtoint(idtransaction); sqlconnection1.Connected := true; sqlconnection1.Open; SQLCONNECTION1.StartTransaction(TRANSC); errorcode := sqlconnection1.ExecuteDirect('SET GENERATOR seq_auxemb TO 0'); if errorcode = 0 then begin sqlconnection1.Commit(transc); end; if errorcode <> 0 then // SQLConnection1.Rollback(Transc); raise exception.Create('error: code = '+ inttostr(errorcode))
except on E: Exception do ShowMessage( E.Message ) end; //termina a transaçao
dmbusca.Query1.First; Auxilio := 1; Auxcontrole := 1;
while not dmbusca.Query1.Eof do begin If Auxilio=1 Then Begin dm.cdsauxemb.Insert; dm.cdsauxembcodpedido.AsInteger := dmbusca.Query1codpedido.AsInteger; dm.cdsauxembCODIGOPRODUTO.AsString:= dmbusca.Query1CODIGOPRODUTO.Value; filters(DM.cdspedido, fsInteger,inttostr(dmbusca.Query1codpedido.AsInteger)); dm.cdsauxembcodcliente.AsInteger :=dm.cdspedidoCODCLIENTE.AsInteger; dm.cdsauxembDESCRICAO.AsString:=dmbusca.Query1DESCREL.AsString; dm.cdsauxembCONTROLE.AsInteger:=AuxControle;
dm.cdsauxembPLACA.AsString:= dmbusca.Query1PLACA.AsString; dm.cdsauxembPECA1.AsInteger:= dmbusca.Query1QTDEPC.AsInteger; dm.cdsauxembPESO1.AsFloat:=dmbusca.Query1QTDEKG.AsFloat; AuxProduto := dmbusca.Query1CODIGOPRODUTO.AsString; dmbusca.Query1.Next;
If AuxProduto=dmbusca.Query1CODIGOPRODUTO.AsString then begin dm.cdsauxembPECA2.AsInteger:=dmbusca.Query1QTDEPC.AsInteger; dm.cdsauxembPESO2.AsFloat:=dmbusca.Query1QTDEKG.AsFloat; dmbusca.Query1.Next;
dm.cdsauxemb.Post;
AuxControle:=AuxControle+1;
End;
AuxProduto := dmbusca.Query1CODIGOPRODUTO.AsString;
If AuxProduto<>dmbusca.Query1CODIGOPRODUTO.AsString Then AuxProduto := dmbusca.Query1CODIGOPRODUTO.AsString; Auxilio:=1;
sera que alguem pode me dizer porque não atualiza a tabela sem que reinicie o program se estou usando a transição como nas outras e todas deram certo?
Nislei Cassio
Curtir tópico
+ 0Posts
18/07/2011
José Curdo
Gostei + 0
18/07/2011
Nislei Cassio
APÓS O COMIT DOU UM CLICK EM UM BOTÃO E ELE GERA UM RELATÓRIO MAS SE FAÇO UM COMMIT NO IBEXPRESS VERIFICO QUE AO CONTRARIO DAS DEMAIS ESTA NAO RETORNA NADA E O MESMO ACONTECE NO RELATORIO POIS PRECISO DESSES DADOS PARA GERAR A SQL DO RELATÓRIO
Gostei + 0
09/05/2013
José
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)