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 no link. 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.

Criando um novo projeto no gcc
Figura 1 – Criando um novo projeto no gcc
Criando a nossa dll denominada xp_teste
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.

Código fonte da nossa dll (dllmain.c)
Figura 3 – Código fonte da nossa dll (dllmain.c)
Código fonte da nossa dll (dll.h)
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.

Registrando nossa extended stored procedure
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.

Executando nossa extended stored procedure
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.