Jump to content

dev botao

  • Este tópico foi criado há 3847 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Posted

ola a todos, uso a procedure set_context no firebird e em alguns clientes, acontece erro.

 

   V_APLICATIVO = RDB$GET_CONTEXT('USER_SESSION', 'APLICATIVO');
  IF (  NOT( V_APLICATIVO = 'teste' )  OR ( V_APLICATIVO IS NULL ) ) THEN
     BEGIN
        EXCEPTION ACESSONEGADO;
        EXIT;
     END
 
e sempre quando inicio o programa passo o valor correto para variavel V_APLICATIVO e em alguns clientes, cai na EXCEPTION, ou seja é como se o firebird nao tivesse recebendo a variavel passada, uso firebird 2.5.2 Delphi Xe6, se alguem tiver uma dica , agradeço.
  • Fundadores
Posted

Em que momento você faz isso ?

 

Uso técnica semelhante e nunca tive problemas...

 

Você pode ainda fazer um Loop até ter certeza que o Valor foi gravado... Ex:


           repeat
              SQL.Text := 'select RDB$SET_CONTEXT(''USER_SESSION'', ''APLICATIVO'', '''+SuaChave+ ''')'+
                          ' from rdb$database' ;
              Open;

              Close ;
              SQL.Text := 'select RDB$GET_CONTEXT(''USER_SESSION'', ''APLICATIVO'' ) as DJ_KEY from rdb$database';
              Open;
           until FieldByName('APLICATIVO').AsString = SuaChave;
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Posted

estou usando Firedac TFDCOMMAND será esse o problema ou algo com o firebird 2.5.2, sempre executo o set context apos conectar o banco de dados, sera isso?

 

   try
     CONTEXTO.Close;
     CONTEXTO.ParamByName('USU').AsString := sNomeUsuario;
     CONTEXTO.ParamByName('EMP').AsInteger := iEmp;
     CONTEXTO.ParamByName('APP').AsString := 'teste';
     CONTEXTO.Execute();
   except on E: Exception do
     begin
       ShowMessage('Erro ao executar comando ' + E.Message );
     end;
   end;
  • Consultores
Posted

Será que você não fecha a conexão e abre ela novamente em alguma circunstância? Isso faria com que as variáveis de contexto fossem zeradas.

 

É possível que algumas de suas chamadas estejam sendo executadas ao mesmo tempo que você envia o comando para definir o valor da variável?

Já tentou fazer um log do momento exato onde isso acontece e verificar o código está realmente utilizando a mesma sessão que deveria?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Posted

eu executo depois de conectar o database no datamodule, e na hora de gerar alguns arquivos que precisa eu executo ela novamente pra garantir que seja passado a variavel, será esse o problema, ou o firebird 2.5( versao ) ou talvez porque nao estou executando usando objeto FDSTOREDPROC e sim um FDCOMMAND?

Posted

perdao, mais ja li todas, inclusive respondir acima, falando como faço o procedimento aqui, usando fdcommand e nao fdquery ou fdstoredproc, alguem de voces usam o firebird 2.5.2 , será bug de versao ou de codigo?

  • Consultores
Posted

perdao, mais ja li todas, inclusive respondir acima, falando como faço o procedimento aqui, usando fdcommand e nao fdquery ou fdstoredproc, alguem de voces usam o firebird 2.5.2 , será bug de versao ou de codigo?

Até onde me lembro não há problemas no Firebird 2.5.x de variáveis de contexto.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Posted

fiz como sugerido pelos colega Daniel , só me resta aguardar , mais acho que vai funcionar, pq uso 2 connection um pra local e outro pra Rede com servidor, e verifiquei que quando faço o Set_Context uma vez se verificar no outro conection esta gravado no firebird, pq antes usar uma procedure chamada set_contexto onde passava os parametros, mudei pra forma que nosso amigo Daniel sugeriu, e estou testando, agradeço a todos pela ajuda.

  • Este tópico foi criado há 3847 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.