Exibindo Stored Procedures do SQL Server via ADO


Você pode exibir os procedimentos armazenados ( Stored Procedures ) existentes em qualquer banco de dados do SQL Server. Quer saber como ?

Muito simples !!! Acompanhe o código abaixo:

1- Inicie um novo projeto no Visual Basic e faça uma referência a biblioteca - Microsoft ActiveX Data Objects 2.X

2- No formulário padrão insira um controle Listbox - List1 - , um Combobox -combo1 e um commandButton - command1.

3- Na seção General Declarations do formulário insira o código que declara as variáveis usadas no projeto:

Dim Conexao As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSql As String

4- No evento Load do formulário o código preenche o controle Combo1 com o nome das tabelas : Northwind , Pubs e Clientes , escolhidas para serem usadas como exemplo:

Private Sub Form_Load()
Combo1.AddItem "Northwind"
Combo1.AddItem "Pubs"
Combo1.AddItem "Clientes"
Combo1.ListIndex = 0
End Sub

5- Finalmente no evento click do botão de comando temos o código que abre a conexão com o banco de dados e exibe as Stored Procedures no listbox.

Private Sub Command1_Click()

Conexao.Provider = "SQLOLEDB"
Conexao.Properties("Data Source").Value = "MACORATI\MACORATTI"
Conexao.Properties("Initial Catalog").Value = UCase(Combo1.Text)
Conexao.Properties("User ID").Value = "sa"
Conexao.Properties("Password").Value = ""
List1.Clear

Conexao.Open

strSql = "Select * from sysobjects where type='P' and Category = " & 0
rst.Open strSql, Conexao, adOpenStatic, adLockReadOnly, adCmdText

While Not rst.EOF
  List1.AddItem rst.Fields(0)
  rst.MoveNext
Wend

rst.Close
Set rst = Nothing
Conexao.Close

End Sub

Um detalhe : Este código não exibe as stored procedures do Sistema ( System ).

Veja o resultado do processamento para os banco de dados Northwind e Clientes:

Até a próxima...


José Carlos Macoratti