MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Stored procedure do SQL Server no Access

    avatar
    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 363
    Registrado : 13/10/2011

    Stored procedure do SQL Server no Access Empty Stored procedure do SQL Server no Access

    Mensagem  ifahidalgo em 28/5/2020, 22:43

    Senhores

    Boa Noite

    Precisando de ajuda.

    Tenho 3 Stored procedure criadas no sql server;

    - dbo.GetCompany = retorna as empresas cadastradas e o código que eu deverei informar nas demais procedures
    - dbo.GetUserSetup = retorna os usuários e e-mail cadastrado dentro da Empresa informada na procedure anterior
    - dbo.GetAdditionalApprovers = retorna os aprovadores do respectivo centro de custo (1º parâmentro código da Empresa, 2º Parâmetro código do Centro de Custo) ordenado pela a sequência dos Aprovadores [Approval Sequence No_]

    Precisaria entender como é o funcionamento de uma stored, e como utilizar o retorno desses dados para compor uma tabela dentro do access.

    o esperado é;
    uma tabela com o retorno de uma tabela com as empresas
    uma tabela com o retorno dos usuários cadastrado na empresa anterior
    uma tabela com o retorno dos aprovadores dos centros de custos da empresa retornada na primeira procedure.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2136
    Registrado : 22/11/2016

    Stored procedure do SQL Server no Access Empty Re: Stored procedure do SQL Server no Access

    Mensagem  DamascenoJr. em 29/5/2020, 00:19


    Precisaria entender como é o funcionamento de uma stored...

    Ao trabalhar com banco de dados nos deparamos com os termos front-end e back-end. O front-end é onde inserimos, alteramos e excluímos informações. O back-end é onde as informações que sofrem as ações do front-end ficam.

    Nesse ambiente, uma stored procedure é um procedimento armazenado do lado do back-end para ser chamado pelo front-end.

    Como assim procedimento armazenado?

    Imagine o front-end se conectando ao back-end para inserir um produto vendido em uma tabela de itens vendidos. Depois ter que enviar também do front-end um comando para a baixa no estoque do item vendido. E se for feito um controle dos itens mais vendidos do mês, ter também que enviar um comando para contabilizar nela a venda do tal produto. Imaginou isso? São três comandos enviados pela rede. Dependendo do desenvolvimento e do controle das informações, poderiam ser muito mais. Ou seja, seriam muitos comandos trafegando na rede. Em uma base de dados robusta onde muitos usuários podem estar conectando, essa sobrecarga de comandos na conexão deve ser evitada.

    E é aí que entram stored procedures.

    Você pode programar nela diversos comandos e chamar a execução dela uma única vez e tudo acontece lá do lado do back-end, sem necessidade de constantes comandos sendo enviados do front-end para o back-end.

    --------------------------------------------

    Sobre chamar uma stored procedure através do access, veja os tópicos abaixo encontrados com a ferramenta de busca do site
    https://www.maximoaccess.com/t14600-resolvidoenvio-de-relatorio-diario-automatico-store-procedure
    https://www.maximoaccess.com/t36169-resolvidoaccess-vba-como-chamar-stored-procedure-do-mysql
    https://www.maximoaccess.com/t19677-modo-correto-de-executar-store-procedure-sql-server-com-vba
    https://www.maximoaccess.com/t14260-chamar-stored-procedure-do-sql-server-a-partir-do-ms-access
    https://www.maximoaccess.com/t33378-executar-uma-store-procedure-do-sql-atraves-do-vba
    https://www.maximoaccess.com/t20654-resolvidoconexao-com-procedure
    https://www.maximoaccess.com/t10264-access-sql-server



    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    avatar
    ifahidalgo
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 363
    Registrado : 13/10/2011

    Stored procedure do SQL Server no Access Empty Re: Stored procedure do SQL Server no Access

    Mensagem  ifahidalgo em 3/6/2020, 23:31

    Obrigado Damasceno.

    olhei os links do resultado das pesquisas, mas ainda fiquei cheio de duvidas.

    temporariamente o DBA, me disponibilizou 2 viwer, do banco onde faço o vinculo com o access via odbc, pelo assistente. tenho lá as tabelas no meu access, sem mistério

    agora quando se fala em SP, não significar está lá na lista da conexão odbc como a viwer. essa minha duvida

    o access precisa se conectar ao sql server e ter acesso a essa SP, ou eu via código envio os parâmetros para a SP e ela me retorna uma tabela que eu vinculo ao access?

    por exemplo, chamo a SP dbo.GetCompany, via codigo e retorna a tebela dessa SP?

    estou muito confuso.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2136
    Registrado : 22/11/2016

    Stored procedure do SQL Server no Access Empty Re: Stored procedure do SQL Server no Access

    Mensagem  DamascenoJr. em 4/6/2020, 02:49

    o access precisa se conectar ao sql server e ter acesso a essa SP...
    O acesso a stored procedure é via código, como mostrado nos links.

    ...ou eu via código envio os parâmetros para a SP e ela me retorna uma tabela que eu vinculo ao access?
    Sim, via código é que você acessa e chama pelas stored procedures. Elas podem ser usadas para retornar um conjunto de registros (recordsets). Mas também podem só executar ações sem retornar nada.
    Não, stored procedures não retornam tabelas para serem vinculadas.

    por exemplo, chamo a SP dbo.GetCompany, via codigo e retorna a tabela dessa SP?
    Stored procedures podem retornar um conjunto de registros (recordsets), ou seja, os registros da tabela, mas não o objeto tabela. Se você já usa tabelas vinculadas então não precisa usar stored procedures para retornar conjunto de registros.

    --------------------------------------------------------------------------

    Vou tentar mais uma vez explicar o funcionamento de uma stored procedure

    Parte 1 - Contexto
    Imagine que nesse período de pandemia você é o gerente de um supermercado e pertence ao grupo de risco. Nesse caso, você está em casa resolvendo tudo via mensagem.

    Parte 1 - Explicação
    Em banco de dados, não estar no supermercado equipara-se a não usar tabelas vinculadas.

    Parte 2 - Contexto
    No supermercado que você gerencia existem dois funcionários especialistas em executar determinadas tarefas. Eles são acionados via mensagem celular.

    O primeiro funcionário se chama Sérgio Portela, ele é mais conhecido por SP1.
    O segundo funcionário se chama Simão Pacheco, ele é mais conhecido por SP2.

    Parte 2 - Explicação
    Em banco de dados, os funcionários seriam stored procedures.

    Parte 3 - Contexto
    O SP1 é fiscal de prateleira. Ele foi contratado para receber mensagem com o nome de um produto e avaliar se esse produto ainda tem na prateleira. Após verificar o status do tal produto ele responde a mensagem relatando a situação.
    O SP2 é repositor. Ele foi contratado para receber mensagem com o nome de um produto e repor esse produto na prateleira.

    Parte 3 - Explicação
    Em banco de dados, o SP1 é do tipo que retorna registros. Já o SP2 é do tipo que apenas executa.

    Com tudo isso estruturado, basta enviar uma mensagem com "álcool em gel" para o SP1, ele retorna "não há nas prateleiras". Você então envia uma mensagem com "álcool em gel" para o SP2 e ele repõe o produto.

    --------------------------------------------------------------

    Como eu já disse lá atrás escreveu:Se você já usa tabelas vinculadas então não precisa usar stored procedures para retornar conjunto de registros.
    Imagine agora que você não é do grupo de risco. Ou seja, nesse caso você já estaria no supermercado. Em banco de dados, nesse contexto você usa tabelas vinculadas.

    Já estando no supermercado você não precisaria do SP1. Você mesmo pode fazer a verificação da situação de determinado produto na prateleira e acionar o SP2.

    Em banco de dados, já que você usa tabelas, você pode criar uma consulta.

    ---------------------------------------------------------------

    As possibilidades são infinitas. Por exemplo, no contexto do supermercado, você poderia ter um funcionário que consultasse a prateleira e dependendo da situação do produto então ele mesmo reporia o estoque.

    Bom, se não tiver entendido minha explicação prática, segue o link com explicações técnicas
    devmedia.com.br/introducao-aos-stored-procedures-no-sql-server/7904
    devmedia.com.br/forum/o-que-sao-e-para-que-realmente-servem-as-stored-procedures/274013
    pt.wikipedia.org/wiki/Procedimento_armazenado
    docs.microsoft.com/pt-br/sql/relational-databases/stored-procedures/stored-procedures-database-engine?view=sql-server-ver15


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 5/8/2020, 20:50