Ir para conteúdo
  • Cadastre-se

marcelo.hp

Membros
  • Total de ítens

    28
  • Registro em

  • Última visita

Community Answers

  1. marcelo.hp's post in Controle de transações Delphi + Zeoslib was marked as the answer   
    Juliomar, obrigado pelo retorno.
    Quando comecei o projeto e identifiquei o problema, fiz alguns estudos com os exemplos. Mas achei melhor revisar novamente depois do seu post.
    Confesso que não identifiquei exemplo onde eu consiga aplicar as atualizações realizadas em um único processo, que afetam mais de uma tabela, em uma única transação. Estou baixando do svn http://svn.code.sf.net/p/zeoslib/code-0/branches/testing-7.2. Se você baixa de outra url me avise por favor.
    Fiz algumas pesquisas no fórum e li que você tem várias soluções inclusive PDV com Zeos.
    No meu caso atendo transportadoras.
    Como exemplo, poderia nos dizer como você trata a transação no Zeoslib ao confirmar uma venda (nota, produtos, impostos)?
    --
    Abaixo o método que fiz para configurar o TZConnection.
    function TRDBMS.doBDConfig():WideString;
    const
      sPass:String='senha';
    var
      sSGDB,sHost,sLib,sDB:String;
      iPort:Integer;
    begin
      result := '';
      try
        sSGDB := objUtils.LerIni('DSGD.ini','GESTOR','SGDB','');
        sHost := objUtils.LerIni('DSGD.ini','GESTOR','Host','');
        sLib  := objUtils.LerIni('DSGD.ini','GESTOR','Lib','');
        iPort := objUtils.LerIni('DSGD.ini','GESTOR','Porta',0);
        sDB   := objUtils.LerIni('DSGD.ini','GESTOR','Banco','');
        if Trim(sSGDB) <> ''  then
        begin
          Case AnsiIndexStr(sSGDB,['MSSQL','MYSQL']) of
            0:begin
                objConn.User := 'sa';
                objConn.Protocol := 'mssql';
              end;
            1:begin
                objConn.User := 'root';
                objConn.Protocol := 'mysql-5';
              end;
          End;
          objConn.AutoCommit := True;
          objConn.TransactIsolationLevel := tiReadCommitted;
          objConn.HostName := sHost;
          objConn.LibraryLocation := sLib;
          objConn.Database := sDB;
          objConn.Password := sPass;
          if iPort > 0 then
            objConn.Port := iPort;
        end;
      except on e:exception do
        begin
          result := e.Message;
        end;
      end;
    end;
    --
    Abaixo, parte do código de um teste bastante simples para gravar duas tabelas na mesma transação.
    qry = TZQuery;
    cds = TClientDataSet;
    Como é um teste, tenho um TEdit em tela onde digito a chave de integridade das tabelas.
      app.Banco.Conexao.StartTransaction;
      try
        qry.Post;
        cds.ApplyUpdates(0);
        app.Banco.Conexao.Commit;
        app.Utils.MsgAviso('Gravou!');
      except on e:exception do
        begin
          app.Banco.Conexao.Rollback;
          app.Utils.MsgErro('Erro '+e.Message);
        end;
      end;
     
  2. marcelo.hp's post in Erro De Impressão Zebra Gc420T was marked as the answer   
    O problema foi resolvido substituindo o driver do instalador atual baixado do site da indústria versão 3.1, por outro anterior 2.6.77.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.