Procedimientos almacenados desde VB !

Respuesta de
lordtomas
a
Usuario
Hola lordtomas, tengo las siguientes preguntas:

1. ¿Cómo puedo llamar a un procedimiento almacenado de SQL (sp_server_info, por ejemplo) y que me devuelva el resultado en un recordset que pueda yo manipular?.

2. ¿Cómo puedo llamar un procedimiento almacenado que use parámetros desde
visual basic 6.? Por ejemplo un procedimiento almacenado hecho por el usuario que inserte registros en una tabla, edite y borre.

Saludos y de antemano agradezco sus comentarios.

Edmundo J. Dávila
Experto
ADO te permite resolver el problema de manera sencilla, para eso tienes que utilizar el objeto Command para la manipulación de procedimientos almacenados (Se puede hacer con cualquier otro objeto, como son connection o recordset, pero no ofrecen tanta funcionalidad como command para los procemientos almacenados, en especial para el uso de parámetros).


Ejemplito que me brotó del alama... si me calificas con 5 no me enojo ;)
Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Private Sub Command1_Click()
Dim constring As String
connstring = "Provider=SQLOLEDB;Data Source=localhost;User Id=sa;Password=;Connect Timeout=3;network library=dbmssocn;"
Set conn = New ADODB.Connection
conn.ConnectionString = connstring
conn.Open

Set cmd = New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "sp_server_info"
Set rs = cmd.Execute
While Not rs.EOF
Debug.Print rs.Fields(0) & Chr(9) & rs.Fields(1) & Chr(9) & rs.Fields(2)
rs.MoveNext
Wend

'Para trabajar con parámetros creas un objeto Parameter y lo atachas al Command actual.
Set prm1 = cmd.CreateParameter("dbname", adBSTR, adParamInput, 10, "master")
cmd.Parameters.Append prm1
cmd.CommandText = "sp_helpdb"
Set rs = cmd.Execute
While Not rs.EOF
Debug.Print rs.Fields(0) & Chr(9) & rs.Fields(1) & Chr(9) & rs.Fields(2)
rs.MoveNext
Wend
End Sub

Usuario
Muchas gracias, buena respuesta.