Hintz 0 Denunciar post Postado Julho 19, 2016 Utilizo o Delhi 7 e Firebird 2.0 utilizo o Zeos para conectar no banco de dados firebird.Tenho a seguinte rotina para incluir uma Ordem Serviço:DMArq.zConexao.StartTransaction;StrSql :='Insert into Orcam_Dados_001' +'(PedNum, PedDat, PedCfo) values ' +'(:vpPedNum, :vpPedDat, :vpPedCfo)';DMArq.zqTrans.SQL.Clear;DMArq.zqTrans.Sql.Add(StrSql);DMArq.zqTrans.ParamByName('vpPedNum').Value := NrVenda;DMArq.zqTrans.ParamByName('vpPedDat').asDate := Date;DMArq.zqTrans.ParamByName('vpPedCfo').asString := 'C';ok := true;DMArq.zqTrans.ExecSQL;DMArq.zConexao.Commit;Numa tabela temporaria eu digito as informações da Ordem de Serviço.( DMArqVen.qOrcamento)Apos digitação eu gravo.DMArq.zConexao.StartTransaction;iConta := 0;oCpf := DMArqVen.qOrcamento.FieldByName('VenNum').asString;StrSql :='Update Orcam_Dados_' + Cod_Emp + ' Set ' +'PedNom = :vPedNom, ' +'PedNum = :vPedNum, ' +'PedCli = :vPedCli, ' +'PedDat = :vPedDat, ' +'PedEnd = :vPedEnd, ' +'PedBai = :vPedBai, ' +'PedCid = :vPedCid, ' +'PedCfo = :vPedCfo, ' +'PedVen = :vPedVen, ' +'PedFon = :vPedFon, ' +'PedObs = :vPedObs, ' +'PedObs1 = :vPedObs1, ' +'PedNop = :vPedNop, ' +'PedVct = :vPedVct, ' +'PedVda = :vPedVda, ' +'PedPda = :vPedPda, ' +'PedTot = :vPedTot, ' +'PedVlr1 = :vPedVlr1, ' +'PedVct1 = :vPedVct1, ' +'PedSer1 = :vPedSer1, ' +'PedEfi1 = :vPedEfi1, ' +'PedBco1 = :vPedBco1, ' +'PedChe1 = :vPedChe1, ' +'PedVlr2 = :vPedVlr2, ' +'PedVct2 = :vPedVct2, ' +'PedSer2 = :vPedSer2, ' +'PedEfi2 = :vPedEfi2, ' +'PedBco2 = :vPedBco2, ' +'PedChe2 = :vPedChe2, ' +'PedVlr3 = :vPedVlr3, ' +'PedVct3 = :vPedVct3, ' +'PedSer3 = :vPedSer3, ' +'PedEfi3 = :vPedEfi3, ' +'PedBco3 = :vPedBco3, ' +'PedChe3 = :vPedChe3, ' +'PedVlr4 = :vPedVlr4, ' +'PedVct4 = :vPedVct4, ' +'PedSer4 = :vPedSer4, ' +'PedEfi4 = :vPedEfi4, ' +'PedBco4 = :vPedBco4, ' +'PedChe4 = :vPedChe4, ' +'PedVlr5 = :vPedVlr5, ' +'PedVct5 = :vPedVct5, ' +'PedSer5 = :vPedSer5, ' +'PedEfi5 = :vPedEfi5, ' +'PedBco5 = :vPedBco5, ' +'PedChe5 = :vPedChe5, ' +'PedVlr6 = :vPedVlr6, ' +'PedVct6 = :vPedVct6, ' +'PedSer6 = :vPedSer6, ' +'PedEfi6 = :vPedEfi6, ' +'PedBco6 = :vPedBco6, ' +'PedChe6 = :vPedChe6, ' +'PedVlr7 = :vPedVlr7, ' +'PedVct7 = :vPedVct7, ' +'PedSer7 = :vPedSer7, ' +'PedEfi7 = :vPedEfi7, ' +'PedBco7 = :vPedBco7, ' +'PedChe7 = :vPedChe7, ' +'PedVlr8 = :vPedVlr8, ' +'PedVct8 = :vPedVct8, ' +'PedSer8 = :vPedSer8, ' +'PedEfi8 = :vPedEfi8, ' +'PedBco8 = :vPedBco8, ' +'PedChe8 = :vPedChe8, ' +'PedVlr9 = :vPedVlr9, ' +'PedVct9 = :vPedVct9, ' +'PedSer9 = :vPedSer9, ' +'PedEfi9 = :vPedEfi9, ' +'PedBco9 = :vPedBco9, ' +'PedChe9 = :vPedChe9, ' +'PedVlr10 = :vPedVlr10, ' +'PedVct10 = :vPedVct10, ' +'PedSer10 = :vPedSer10, ' +'PedEfi10 = :vPedEfi10, ' +'PedBco10 = :vPedBco10, ' +'PedChe10 = :vPedChe10, ' +'PedVlr11 = :vPedVlr11, ' +'PedVct11 = :vPedVct11, ' +'PedSer11 = :vPedSer11, ' +'PedEfi11 = :vPedEfi11, ' +'PedBco11 = :vPedBco11, ' +'PedChe11 = :vPedChe11, ' +'PedVlr12 = :vPedVlr12, ' +'PedVct12 = :vPedVct12, ' +'PedSer12 = :vPedSer12, ' +'PedEfi12 = :vPedEfi12, ' +'PedBco12 = :vPedBco12, ' +'PedChe12 = :vPedChe12, ' +'PedVlr13 = :vPedVlr13, ' +'PedVct13 = :vPedVct13, ' +'PedSer13 = :vPedSer13, ' +'PedEfi13 = :vPedEfi13, ' +'PedBco13 = :vPedBco13, ' +'PedChe13 = :vPedChe13, ' +'PedVlr14 = :vPedVlr14, ' +'PedVct14 = :vPedVct14, ' +'PedSer14 = :vPedSer14, ' +'PedEfi14 = :vPedEfi14, ' +'PedBco14 = :vPedBco14, ' +'PedChe14 = :vPedChe14, ' +'PedVlr15 = :vPedVlr15, ' +'PedVct15 = :vPedVct15, ' +'PedSer15 = :vPedSer15, ' +'PedEfi15 = :vPedEfi15, ' +'PedBco15 = :vPedBco15, ' +'PedChe15 = :vPedChe15 ' +'where PedNum = :vPedNum ';DMArq.zqTransD.SQL.Clear;DMArq.zqTransD.Sql.Add(StrSql);DMArq.zqTransD.ParamByName('vPedNom').asString := DMArqVen.qOrcamento.FieldByName('VenNcl').asString;DMArq.zqTransD.ParamByName('vPedNum').asInteger := DMArqVen.qOrcamento.FieldByName('VenNum').asInteger;DMArq.zqTransD.ParamByName('vPedCli').asFloat := DMArqVen.qOrcamento.FieldByName('VenCcl').asFloat;DMArq.zqTransD.ParamByName('vPedDat').asDate := StrToDate(DMArqVen.qOrcamento.FieldByName('VenDat').asString);DMArq.zqTransD.ParamByName('vPedEnd').asString := DMArqVen.qOrcamento.FieldByName('VenEnd').asString;DMArq.zqTransD.ParamByName('vPedBai').asString := DMArqVen.qOrcamento.FieldByName('VenBai').asString;DMArq.zqTransD.ParamByName('vPedCid').asString := DMArqVen.qOrcamento.FieldByName('VenCid').asString;DMArq.zqTransD.ParamByName('vPedCfo').asString := 'C';DMArq.zqTransD.ParamByName('vPedVen').asFloat := DMArqVen.qOrcamento.FieldByName('VenVen').asFloat;DMArq.zqTransD.ParamByName('vPedFon').asString := DMArqVen.qOrcamento.FieldByName('VenFone').asString;DMArq.zqTransD.ParamByName('vPedObs').asString := DMArqVen.qOrcamento.FieldByName('VenObs').asString;DMArq.zqTransD.ParamByName('vPedObs1').asString := DMArqVen.qOrcamento.FieldByName('VenObs1').asString;DMArq.zqTransD.ParamByName('vPedNop').asString := DMArqVen.qOrcamento.FieldByName('VenNat').asString;DMArq.zqTransD.ParamByName('vPedVct').asDate := StrToDate(lbData.Caption);if DMArqVen.qOrcamento.FieldByName('VenNat').asString = 'D' thenDMArq.zqTransD.ParamByName('vPedVda').asString := 'D';if SoOrcam = 'S' thenDMArq.zqTransD.ParamByName('vPedVda').asString := '*';if pDes <> 0 thenDMArq.zqTransD.ParamByName('vPedPda').asFloat := (pDes * -1)else if pAcr <> 0 thenDMArq.zqTransD.ParamByName('vPedPda').asFloat := pAcr; ;DMArq.zqTransD.ParamByName('vPedTot').asFloat := Stf(frmTotalizaOrcamento.ceVlr_Ccd.Text);for x := 1 to 15 dobeginDMArq.zqTransD.ParamByName('vPedVlr' + IntToStr(x)).asFloat := 0;DMArq.zqTransD.ParamByName('vPedSer' + IntToStr(x)).asString := ' ';DMArq.zqTransD.ParamByName('vPedEfi' + IntToStr(x)).asFloat := 0;if NATOP_Orcam = '5102.20' thenDMArq.zqTransD.ParamByName('vPedBco' + IntToStr(x)).asString := '000'elseDMArq.zqTransD.ParamByName('vPedBco' + IntToStr(x)).asString := '';DMArq.zqTransD.ParamByName('vPedChe' + IntToStr(x)).asFloat := 0;end;if (DMArqVen.qOrcamento.FieldByName('VenNat').asString = 'P') or(DMArqVen.qOrcamento.FieldByName('VenNat').asString = 'C') thenwith frmDigDuplicatas.cdsDuplicata dobeginFirst;Conta := 0;while not eof dobegininc(conta);if conta > 15 thenbreak;DMArq.zqTransD.ParamByName('vPedVct' + IntToStr(conta)).asDate := StrToDate(FieldByName('DtVcto').asString);DMArq.zqTransD.ParamByName('vPedVlr' + IntToStr(conta)).asFloat := FieldByName('Valor').asFloat;DMArq.zqTransD.ParamByName('vPedSer' + IntToStr(conta)).asString := FieldByName('Serie').asString;DMArq.zqTransD.ParamByName('vPedBco' + IntToStr(conta)).asString := FieldByName('Bco').asString;DMArq.zqTransD.ParamByName('vPedChe' + IntToStr(conta)).asFloat := FieldByName('Cheque').asFloat;Next;end;end;//ok := true;tryDMArq.zqTransD.ExecSQL;excepton E: Exception dobegininc(iConta);erroO := e.Message;MessageBox(0, pchar('Não foi possível gravar os dados!' + #13 + #13 + ErroO), 'Atenção!', MB_OK + MB_TOPMOST);end;end;DMArq.zConexao.Commit;A grande maioria as ordens de serviço gravam, algumas não gravam.O que poderia ser? Compartilhar este post Link para o post Compartilhar em outros sites
Eisenheim 67 Denunciar post Postado Agosto 18, 2016 Olá amigo! Nas que você conseguiu gravar, existe alguma coluna que não havia informação nos registros que você tentou gravar e apresentaram erro? Outro ponto, quando apresentar a mensagem de erro, tente enviar a mensagem do erro para que fique fácil tentar compreende-lo e assim poder te ajudar. Compartilhar este post Link para o post Compartilhar em outros sites