Visual Basic - Store Procedure con Parametros

Life is soft - evento anual de software empresarial
 
Vista:

Store Procedure con Parametros

Publicado por Gerardo Lopez (11 intervenciones) el 06/02/2008 01:18:09
Hola a todos, en realidad es la primera vez que trato de crear un modulo con store procedure. He leido la ayuda del SQL, he leido algunos ejemplos que han mandado en este foro, pero no hay caso no logro dar con la tecla. Mi problema es el siguiente
tengo una tabla que se llama con_proveedores y quiero crear un stored procedure con parametros, es decir desde el visual basic pasarle una variable que es el nro de documento y que el stored me devuelva el nombre y apellido. Ademas como hago para mostrar en un form del visual basic un conjunto de registros, ejemplo si le paso un parametro a un stored que este me devuelva (al visual basic) las ordenes de pago que tiene ese proveedor (la tabla donde estan las ordenes de pago se llama con_ordenes_pago) todo esto lo tengo escrito en visual pero cuando las consultas son demasiado grandes tengo problemas con la red. Espero haberme explicado y que me puedan ayudar. Uso Visual basic 6.0 y SQL Server 2000. Desde ya nuchas gracias

Gerardo Lopez
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Store Procedure con Parametros

Publicado por Wolgang Finschi (1 intervención) el 08/02/2008 19:51:57
Esta es la estructura del procedimiento almacenado

CREATE PROCEDURE num_doc

@ndoc varchar(8)

AS

declare @consulta varchar(2000)
declare @ejecutar varchar(2000)

set @consulta = 'where numdoc=' + "'" + @ndoc +"'"
set @ejecutar = 'SELECT nombre, apellido FROM dbo.conprovedores'

set @ejecutar = @ejecutar + @consulta + ' order by nombre,apellido'

exec(@ejecutar)
GO

`////////////////////////////////
´Visual Basic

'''''''''''''''''''''
' ndoc, es tu menero de documento
'+++++++++++++++++++++++++++++

Dim Rsbo As New ADODB.Recordset
Dim i As Integer
Set Rsbo = Nothing
query = " { CALL num_doc('" & ndoc & "')}"
Rsbo.CursorLocation = adUseClient
Rsbo.Open query, SqlServerConnection, adOpenKeyset, adLockOptimistic

If Rsbo.RecordCount <> 0 Then

While Not Rsbo.EOF

Prg1.Value = Prg1.Value + 1
MsGrid.Rows = fila + 2
MsGrid.TextMatrix(fila + 1, 0) = Rsbo.Fields(0)'el primer campo de la consulta `
''tu procedimiento
MsGrid.TextMatrix(fila + 1, 1) = Rsbo.Fields(1)' el segundo campo
fila = fila + 1
DoEvents
Rsbo.MoveNext

Wend

Else

MsgBox "No se Encontraron Registros Coincidentes"

End If


''++++++++++++++++++++++++++++++++++++
te acobsejo usar el componente mshflexgrid, ya que permite una mayor cantidad de registros que la grilla convencional
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar