Criando extended stored procedures em SQL Server 2000

Paulo Sérgio Pereira

 

Caro amigo leitor, neste meu primeiro artigo para o site da SQL Magazine vou mostrar um recurso muito interessante do SQL Server 2000 que são as extended stored procedures (normalmente o nome destas procedures iniciam-se por “xp_”). As extended stored procedures são dll’s escritas em C/C++ e você pode desenvolver sua própria extended stored procedure para criar uma funcionalidade não disponível no SQL Server. Através das extended stored procedures você pode obter acesso a API do Windows, acesso direto aos discos, memória, rede, etc.Você pode verificar no Books Online do SQL Server as extended stored procedures padrões do SQL Server. Vamos desenvolver uma extend stored procedure bem simples, apenas para mostrar o processo de criação, registro e execução de uma extended stored procedure.

 

Desenvolvendo nossa extended stored procedure

 

Para o desenvolvimento da nossa extended stored procedure vamos usar o compilador gcc, pois é gratuito e tem um ambiente de desenvolvimento para Windows também gratuito que é o Dev-C++, você pode baixar esta IDE em http://www.bloodshed.net/devcpp.html. A versão utilizada para este artigo foi a 4.9.9.2. Vamos começar então, veja nas figuras 1 e 2  os passos para criação da nossa dll.

 

31-07pic01.JPG 

Figura 1 – Criando um novo projeto no gcc

 

31-07pic02.JPG 

Figura 2 – Criando a nossa dll denominada xp_teste

 

Agora vamos ao código, nas figuras 3 e 4 você pode ver o código fonte da nossa dll, a função exportada pela dll é a xp_teste, a qual iremos chamar no SQL Server quando registramos nossa extended stored procedure. Ao criar o projeto você poderá verificar que o Dev-C++ já coloca a parte necessária do código automaticamente.

 

31-07pic03.JPG 

Figura 3 – Código fonte da nossa dll (dllmain.c)

 

 

31-07pic04.JPG    

Figura 4 – Código fonte da nossa dll (dll.h)

 

A nossa extended stored procedure é bem simples, retornado apenas um inteiro(2) para o procedimento que chama a função. O próximo passo é registrar a nossa extended stored procedure no nosso SQL Server, isto será feito através de uma stored procedure chamada sp_addextendedproc. Veja abaixo na Figura 5.

 

31-07pic05.JPG 

Figura 5 – Registrando nossa extended stored procedure

Vamos agora executar a nossa extended stored procedure, na figura 6 você pode ver o retorno da nossa extended stored procedure sendo atribuído a variável @Teste e em seguida a exibição do conteúdo da variável.

 

 

31-07pic06.JPG 

Figura 6 – Executando nossa extended stored procedure

 

 

Conclusão: Neste artigo demonstramos o que são e para que servem as extended stored procedures, também mostramos um exemplo prático de uma extended stored procedure. Este recurso pode ser muito bem aproveitado para estender as funcionalidades do SQL Server. Agora você deve dar asas a sua imaginação e desenvolver suas próprias extended stored procedures. Um abraço a todos e até a próxima.