Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
collapsefalse
TCSqlReplay( <nOpc>< nOption >, < @cMessage <@cParmRet>> )

Parâmetros

cParmRetString com parâmetro adicional, depende da opção identificada no primeiro parâmetro.

Nome

Tipo

Descrição

Obrigatório

Referência

nOpcnOption

numérico

Número da opção de controle.

  • Verificar existência do recurso
  • Habilitar Trace
  • desabilitar trace
  • Verificar se a coleta está ligada
  • Coletar informações do processo atual

    Opção desejada detalhada nas observações.

    X

     

    cMessage

    caractere

    Parametro de entrada e/ou Mensagem de retorno

    X

    X

    Retorno

    Nome

    Tipo

    Descrição

    lOklRet

    lógico

    Retorna verdadeiro (.T.), se a operação solicitada foi realizada com sucesso. Caso stored procedure existir, caso contrário, retorna .F., e a string em cParmRet é preenchida com algum detalhe ou informação adicional sobre o motivo ou falha encontrados.

    Observações

    • Caso estejam em uso as configurações SQLReplay no Environment do APPServer.ini, as chamadas da TCSqlReplay vão atuar sobre a coleta de dados do processo atual, podendo interferir com a coleta já em andamento. O objetivo desta função é permitir ao FrameWork AdvPL criar uma forma instrumentada de, dicamicamente de dentro de uma aplicação AdvPl, permitir instrumentar um trecho de código para gerar informações pertinentes a um processamento, para fins de deputação ou mesmo profiler, sem que uma coleta global esteja habilitada no ambiente.
    • Existe praticamente um aumento de duas vezes a quantidade de I/O quando utilizamos a coleta de dados de trace do DBAccess no TOTVS | Application Server. Este overhead será mais percebido em ambientes onde o TOTVS Application Server e o DBAccess estão em equipamentos separados por uma rede física. Por estas questões, recomendamos o uso deste recurso apenas em processos onde uma rastreabilidade em maior profundidade seja realmente necessária.

    Opções

    • 1 - Retorna se a versão utilizada do DBAccess está com a implementação do TCSqlReplay
    • 2 - Inicia o TCSqlReplay e caso necessário atribuir no segundo parametro o nome do arquivo
    • 3 - Finaliza o TCSqlReplay
    • 4 - Verifica se o TCSqlReplay foi iniciado
    • 5 - Retorna o Buffer com o log do usuário atual.
    • 6 - Altera / Retorna o valor do Log de rotinas internas
    • 7 - Altera / Retorna o valor de Call Stack retornados.

    Exemplos

    Bloco de código
    languagecpp
    themeEclipsetitleExemplo 1
    linenumberstrue
    collapsefalse
    User Function exemplo()
      //
     VErifica seLocal ocMessage recurso esta disponivel:= ""
      
      cParmRet := ''TcLink()
      
      lOk :=if TCSqlReplay(1,@cParmRet) @cMessage) == .F.
        conout("Não existe a implementação")
        Return
      Ifendif
     !lOk 
      // inicia o TCSqlReplay
       MsgStop(cParmRet)
         Return
      EndifcMessage := "/sqlreplay.log"
      TCSqlReplay(2, @cMessage)
      
      // liga o log de rotinas internas
      cMessage := "1"
      TCSqlReplay(6, @cMessage)
      
      // Habilitaaltera ao coletavalor de dados em arquivo call stack para 5
      cMessage := "5"
      TCSqlReplay(7, @cMessage)
      
      cParmRetcMessage := '\sqlreplay\meulog.txt'
     ""
      if TCSqlReplay(24,@cParmRet)
     @cMessage) == .T.
        DoSomeStuff()conout("TCSqlReplay foi iniciado")
      endif
      
      // TODO: your desabilitacode ahere
     coleta 
      // cParmRetFinaliza :=o ''TCSqlReplay
      TCSqlReplay(3,@cParmRet) @cMessage)
      
      TcUnlink()
      
    Return
    

    Abrangência

    ...

    Esta função está disponível no Application Server - build 7.00.131227A, com data de geração superior a 09/08/2016 e depende de um DBAccess com build superior a 20161016.

    Veja também