VBA Excel - Execute Stored Procedure with VBA in Sybase

VBA Excel - Execute Stored Procedure with VBA in Sybase


Executar uma SP - Stored Procedure do Sybase é uma necessidade que pode aparecer eventualmente no nosso dia-a-dia de desenvolvedor.


 Sybase's PROCs 

VBA Access - Execute Stored Procedure with VBA in Sybase


A seguir, forneço um exemplo de um Stored Procedure em Sybase e o código em VBA para criar e executar essa procedure, comentado linha a linha. A procedure será simples, retornando registros de uma tabela fictícia chamada `Clientes`. Substitua pela lógica e tabelas conforme sua necessidade.


Stored Procedure no Sybase


SQL:

CREATE PROCEDURE sp_ListaClientes

    @Cidade VARCHAR(50)

AS

BEGIN

    SELECT ClienteID, Nome, Cidade

    FROM Clientes

    WHERE Cidade = @Cidade

    ORDER BY Nome;

END;


Essa procedure aceita um parâmetro `@Cidade` e retorna todos os clientes da cidade especificada.


VBA para Criar e Executar a Procedure


O código VBA a seguir realiza as seguintes ações:


1. Conecta ao banco de dados Sybase usando ADO.

2. Verifica se a procedure já existe (e a exclui).

3. Cria a nova procedure.

4. Executa a procedure e retorna os dados formatados no Excel.


VBA:

Sub CriarEExecutarProcedureSybase()

    ' Variáveis de conexão

    Dim Conn As Object

    Dim Cmd As Object

    Dim RS As Object

    Dim strSQL As String

    Dim ws As Worksheet

    Dim i As Integer

    

    ' Define a planilha para saída dos dados

    Set ws = ThisWorkbook.Sheets("Resultados")

    ws.Cells.Clear ' Limpa os dados existentes na planilha

    

    ' Inicia a conexão ADO

    Set Conn = CreateObject("ADODB.Connection")

Conn.ConnectionString = "Driver=Sybase ASE ODBC Driver;Server=myServer;Database=myDatabase;UID=myUser;PWD=myPassword;"

    Conn.Open

    

    ' Verifica se a procedure existe e a exclui

    strSQL = "IF EXISTS (SELECT 1 FROM sysobjects WHERE name = 'sp_ListaClientes' AND type = 'P') " & _

             "DROP PROCEDURE sp_ListaClientes"

    Set Cmd = CreateObject("ADODB.Command")

    Cmd.ActiveConnection = Conn

    Cmd.CommandText = strSQL

    Cmd.Execute


    ' Cria a nova procedure

    strSQL = "CREATE PROCEDURE sp_ListaClientes " & _

             "@Cidade VARCHAR(50) AS BEGIN " & _

             "SELECT ClienteID, Nome, Cidade FROM Clientes WHERE Cidade = @Cidade ORDER BY Nome; END;"

    Cmd.CommandText = strSQL

    Cmd.Execute

    

    ' Executa a procedure

    Set Cmd = CreateObject("ADODB.Command")

    Cmd.ActiveConnection = Conn

    Cmd.CommandType = 4 ' Procedimento armazenado

    Cmd.CommandText = "sp_ListaClientes"

    

    ' Define o parâmetro

    Cmd.Parameters.Append Cmd.CreateParameter("@Cidade", 200, 1, 50, "São Paulo")

    

    ' Executa a consulta

    Set RS = Cmd.Execute

    

    ' Formata os resultados no Excel

    If Not RS.EOF Then

        ' Cabeçalhos

        For i = 1 To RS.Fields.Count

            ws.Cells(1, i).Value = RS.Fields(i - 1).Name

        Next i

        

        ' Dados

        ws.Cells(2, 1).CopyFromRecordset RS

    Else

        MsgBox "Nenhum registro encontrado.", vbInformation

    End If

    

    ' Fecha os objetos

    RS.Close

    Conn.Close

    

    ' Limpa objetos

    Set RS = Nothing

    Set Cmd = Nothing

    Set Conn = Nothing

    

    MsgBox "Procedure executada com sucesso!", vbInformation

End Sub


Explicação do Código VBA


1. Conexão ao Sybase:


   - `Conn.ConnectionString`: Insira os detalhes corretos de conexão (servidor, banco de dados, usuário e senha).


2. Verificação e exclusão da procedure existente:


   - Usa um comando SQL para verificar a existência de uma procedure chamada `sp_ListaClientes` e, se existir, excluí-la.


3. Criação da procedure:


   - Define o comando SQL para criar a procedure no banco.


4. Execução da procedure:


   - Usa `Cmd.CommandType = 4` para indicar que é um stored procedure.


   - Adiciona o parâmetro `@Cidade` com o método `Cmd.Parameters.Append`.


5. Resultado no Excel:


   - Cabeçalhos das colunas são inseridos na linha 1 da planilha.


   - Dados da consulta são inseridos a partir da linha 2 com `CopyFromRecordset`.



Configurações necessárias

 

- Certifique-se de ter o ODBC Driver para Sybase instalado.

- Ajuste as credenciais na string de conexão.

- Crie uma planilha chamada `Resultados` no Excel para visualizar os dados.


Teste e adapte conforme seu ambiente.


 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes


 Série DONUT PROJECT 2024 

DONUT PROJECT 2024 - VBA - Retorna o Valor do Conteúdo da Área de Transferência do Sistema DONUT PROJECT 2024 - VBA - Retorna a Versão do Sistema Operacional em que o Excel está sendo Executado DONUT PROJECT 2024 - VBA - Desenvolvimento de Ferramentas de Análise de Riscos

DONUT PROJECT 2024 - VBA - Desenvolvimento Obter Informações sobre a Versão do Sistema Operacional DONUT PROJECT 2024 - VBA - Automatizando Tarefas de Engenharia e Design DONUT PROJECT 2024 - VBA - Automatização de Processos de Medir Distâncias no Google Maps

DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail com o GMail DONUT PROJECT 2024 - VBA - Automatização de Processos de Marketing Mail DONUT PROJECT 2024 - VBA - Como proteger e ocultar fórmulas em uma planilha do Excel usando VBA

DONUT PROJECT 2024 - VBA - Código Exporta os dados e Atualiza as Quantidades em Estoque de um Determinado Produto na Planilha "Estoque" Crie Funções Personalizadas com Visual Basic for Applications (VBA) para Análise de Dados nos Negócios Saber programar em Visual Basic for Applications (VBA)

Nenhum comentário:

Postar um comentário

diHITT - Notícias