Sp y Recordset

23/09/2004 - 18:27 por Gustavo Venturo | Informe spam
Hola a todos, tengo un sp que adjunto a continuación, el que opera
perfectamente con un SQLDataReader en VB.Net, sin embargo cuando trato de
crear una función para obtenerlo en Vb 6.0, no obtengo registro alguno, me
podría dar una ayuda por favor

Aqui va el SP
CREATE PROCEDURE sp_ObtenerProximosDespachos
@idObra NVARCHAR(8),
@fIni DATETIME,
@fFin DATETIME
AS
SET NOCOUNT ON
SELECT F.RazonSocial, A.idObra, G.nombre_p, E.Proyecto, A.NumOC,
D.NMaterial,
B.Marca, B.Modelo, B.Color, CASE WHEN b.Cant=0 THEN
B.CantUBase ELSE B.Cant END as Cantidad,
ISNULL(B.Presentacion,B.und) as Presenta, C.fec,
C.Porc
FROM tblEmpresas F INNER JOIN
IPCBase E INNER JOIN
tblOCompra A INNER JOIN
tblDetalleOCompra B ON A.idDoc = B.idDoc INNER JOIN
tblCronogramaEntregaGlobal C ON B.idDoc = C.idDoc
INNER JOIN
tblMateriales D ON B.idItem = D.idMaterial ON
E.Iniciales = A.idObra ON
F.idEmpresa = A.idEmpresa INNER JOIN
tblProveedores_clientes G ON A.RUT=G.RUT
WHERE
A.idObraÊSE WHEN @idObra='' THEN A.idObra ELSE @idObra END AND
C.Fec BETWEEN CASE WHEN @Fini IS NULL THEN c.Fec ELSE @fIni END AND
CASE WHEN @fFin IS NULL THEN c.Fec ELSE @fFin END
ORDER BY c.Fec, e.Proyecto
GO

y aquí la función VB donde quiero recuperarlo
Public Function DespachosSemana(Fini as variant, FFin as variant) As
ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim cc As String
Dim d As Integer
cc = CadenaConexion 'esta funcion me devuelve la cadena de conexion a la BD
SQL 2000
cmd.ActiveConnection = cc
cmd.CommandText = "sp_ObtenerProximosDespachos"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append cmd.CreateParameter("@idObra", adVarChar,
adParamInput, 8, "")
cmd.Parameters.Append cmd.CreateParameter("@fIni", adDate, adParamInput, ,
FIni)
cmd.Parameters.Append cmd.CreateParameter("@fFin", adDate, adParamInput,
,FFin)
Set DespachosSemana = cmd.Execute
End Function
 

Leer las respuestas

#1 marco
23/09/2004 - 18:43 | Informe spam
A primera vista, creo que falta crear el objeto Parameter, antes de
agregarlo al comando:
(la verdad nunca he intentado tu sintaxis)
sobre tu mismo código:

Public Function DespachosSemana(Fini as variant, FFin as variant) As
ADODB.Recordset
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command

Dim objParam as ADODB.Parameter <--

Dim cc As String
Dim d As Integer
cc = CadenaConexion 'esta funcion me devuelve la cadena de conexion a la BD
SQL 2000
cmd.ActiveConnection = cc
cmd.CommandText = "sp_ObtenerProximosDespachos"
cmd.CommandType = adCmdStoredProc

Set objParam = objCommand.CreateParameter _
("@idObra", adVarChar, adParamInput, 8, "")
cmd.Parameters.Append objParam.

Set objParam = objCommand.CreateParameter _
("@fIni", adDate, adParamInput, , FIni)
cmd.Parameters.Append objParam

Set objParam = objCommand.CreateParameter _
("@fFin", adDate, adParamInput, ,FFin)
cmd.Parameters.Append objParam

Set DespachosSemana = cmd.Execute
End Function


Saludos

Marco

Preguntas similares