Como Executar Stored Procedure com TCSPExec no ADVPL

Reading time: 1 minute

Olá, no post de hoje iremos aprender como executar stored procedure com TCSPExec no ADVPL. Stored procedure são um conjunto de comandos SQL que podemos criar e armazenar no banco de dados para serem executadas a qualquer momento por programas externos. Em um exemplo mais objetivo, stored procedure são funções que criamos que contém comandos SQL e assim podemos chamar essas funções para execução desses comandos SQL.

No nosso exemplo nesse post a função TCSPExec em ADVPL executa uma stored procedure definida. Ela é uma das funções de acesso a banco de dados em ADVPL.

 

Sintaxe:

TCSPExec(cProcedure,xParamN)

Parâmetro(s):

Retorno:

Abaixo criamos uma stored procedure  chamada BUSCA_TABPROTHEUS e o parâmetro chamado tabela, esse parâmetro que iremos passar para a procedure para que a mesma execute a instrução SQL SELECT * FROM SX3990 WHERE X3_ARQUIVO = @Tabela e assim no retornar a tabela do Protheus na SX3:

CREATE PROCEDURE BUSCA_TABPROTHEUS

@Tabela VARCHAR(3)

AS
SELECT * FROM SX3990 WHERE X3_ARQUIVO = @Tabela

Exemplo em ADVPL:

#include 'protheus.ch'
#include "tbiconn.ch"


/*{Protheus.doc} User Function fTCSPExec
    (Essa função tem por finalidade mostrar a função de Acesso a Banco de Dados TCSPExec em ADVPL)
    @type  Function
    @author Adilio Costa
    @since 20/10/2023
    @version Protheus 12.1.2210
    @site https://www.protheusadvpl.com.br
    @canal https://www.youtube.com/protheusadvpl
    @instagram https://www.instagram.com/protheusadvpl
    @Portal ProtheusAdvpl:https://hotmart.com/pt-br/marketplace/produtos/portal-protheusadvpl/O10336806O
    @Post:Como Executar Stored Procedure com TCSPExec no ADVPL
*/

User Function fTCSPExec()
	Local cProcedure := "BUSCA_TABPROTHEUS"
	Local cParam1 := "SA1"
	Local aRet := {}
	Local nI


	//Executa a Stored Procedure
	aRet := TCSPExec(cProcedure,cParam1)

	If(aRet <> nil)
		For nI := 1 To Len(aRet)
			conout(aRet[nI])
		Next nI
	Else
		Conout('Erro na execução da Stored Procedure: ' + TcSqlError() )
	Endif


Return

Bem, finalizamos mais um post aqui no blog. Espero que você tenha entendido, qualquer dúvida nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus.

Links de referência(s):

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.