Autor Tópico: Como rodar uma procedure dentro do scriptcase  (Lida 96 vezes)

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Como rodar uma procedure dentro do scriptcase
« Online: Dezembro 06, 2018, 03:27:54 pm »
Pessoal,
Preciso executar uma procedure dentro da aplicação em um bloco PHP, mas estou com dificuldade em achar a documentação no site do scriptcase, preciso rodar a procedure que terá parametros de entrada e saida e um dataset de saida.

Alguem pode postar um exemplo COMPLETO?


Declare @codigo varchar(20);
Declare @retorno varchar(20);
exec dbo.stp_avaliacao @codigo='.A', @retorno=@retorno output
--select top 1 * from dbo.t_avaliacao order by 1 desc
select @retorno


Create Procedure dbo.stp_avaliacao
@codigo varchar(20),
@retorno varchar(20) output
As
   Begin
     set @retorno = 'X' + @codigo ;
    insert into dbo.T_Avaliacao values (@retorno) ;
    select top 1 * from dbo.t_avaliacao order by 1 desc
     return;
  End

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #2 Online: Dezembro 06, 2018, 03:49:43 pm »
Colega,

Na documentação...
Onde fala como fazer para passar os parametros?
Onde fala como fazer para recuperar os parametros?

Essa documentação e muito ruim.

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #3 Online: Dezembro 06, 2018, 03:52:29 pm »
se você fosse executar a stored procedure direto no banco como usaria a instrução?

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #4 Online: Dezembro 06, 2018, 04:07:00 pm »
Declare @codigo varchar(20);
Declare @retorno varchar(20);
exec dbo.stp_avaliacao @codigo='.A', @retorno=@retorno output
--select top 1 * from dbo.t_avaliacao order by 1 desc
select @retorno

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #5 Online: Dezembro 06, 2018, 04:10:10 pm »
jogue tudo dentro de uma variável php e coloca a variável na macro:

$variavel=" instrução sql";
sc_exec_sql($variavel);


se a proc tiver retorno use sc_lookup em vez de sc_exec_sql.


ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #6 Online: Dezembro 06, 2018, 05:54:51 pm »
Mesmo assim não retorna nada.

$qry = "stp_avaliacao";
//sc_exec_sql( $qry) ;


$qry = "call dbo.stp_avaliacao @codigo='.A' , @retorno output";
sc_lookup(result, $qry) ;

if(empty($result)){
   ECHO 'VAZIO';
   }
   
var_dump($result);
//echo $result[0][0];

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #7 Online: Dezembro 06, 2018, 06:44:57 pm »
Analise o debug

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #8 Online: Dezembro 07, 2018, 09:25:30 am »
Como analisar o debug?

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #9 Online: Dezembro 07, 2018, 09:32:21 am »
Não sabe colocar a aplicação em modo debug?


Como analisar o debug?

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #10 Online: Dezembro 07, 2018, 09:34:34 am »
Não.

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #11 Online: Dezembro 07, 2018, 09:35:48 am »
Form menu -> Application -> Settings -> ERROR SETTINGS -> Debug Mode: Yes

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #12 Online: Dezembro 07, 2018, 09:53:48 am »
Sim.


Form menu -> Application -> Settings -> ERROR SETTINGS -> Debug Mode: Yes

ricardobrasil

  • Novato
  • *
  • Mensagens: 10
Re:Como rodar uma procedure dentro do scriptcase
« Responder #13 Online: Dezembro 07, 2018, 10:07:26 am »
Mesmo assim, não consigo achar o problema.

(pdo-dblib): call stp_avaliacao('A',@retorno) 
20018: Incorrect syntax near 'A'. [20018] (severity 15) [(null)]
         ADOConnection._Execute(call stp_avaliacao('A',@retorno) , false) % line 1149, file: adodb.inc.php
      ADOConnection.Execute(call stp_avaliacao('A',@retorno) ) % line 1347, file: ReativarAssinatura_apl.php
   ReativarAssinatura_apl.sc_btn_Atualizar() % line  971, file: ReativarAssinatura_apl.php
ReativarAssinatura_apl.ini_controle() % line 1001, file: ReativarAssinatura_apl.php
ReativarAssinatura_apl.controle() % line 1995, file: index.php

Haroldo

  • Expert
  • *****
  • Mensagens: 8712
  • Conhecimento diminui limitações.△TFA△
    • InfinitusWeb Software de Gestãol/Gestão ITIL/Consultoria Scriptcase
Re:Como rodar uma procedure dentro do scriptcase
« Responder #14 Online: Dezembro 07, 2018, 10:13:14 am »
Fazem anos que não mexo com MSSQL, mas se não me engano a chamada a SP se da pelo comando EXEC, não?


Mesmo assim, não consigo achar o problema.

(pdo-dblib): call stp_avaliacao('A',@retorno) 
20018: Incorrect syntax near 'A'. [20018] (severity 15) [(null)]
         ADOConnection._Execute(call stp_avaliacao('A',@retorno) , false) % line 1149, file: adodb.inc.php
      ADOConnection.Execute(call stp_avaliacao('A',@retorno) ) % line 1347, file: ReativarAssinatura_apl.php
   ReativarAssinatura_apl.sc_btn_Atualizar() % line  971, file: ReativarAssinatura_apl.php
ReativarAssinatura_apl.ini_controle() % line 1001, file: ReativarAssinatura_apl.php
ReativarAssinatura_apl.controle() % line 1995, file: index.php