** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Array o recordset como parámetro a Store Procedure
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Array o recordset como parámetro a Store Procedure

 Responder Responder
Autor
Mensaje
pelydas Ver desplegable
Nuevo
Nuevo


Unido: 24/Junio/2020
Localización: España
Estado: Sin conexión
Puntos: 1
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita pelydas Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Array o recordset como parámetro a Store Procedure
    Enviado: 24/Junio/2020 a las 23:01
Hola,

estoy tratando de pasar a un procedimiento almacenado en SQL Server un arreglo o un ADO recordset pero en ambos casos me da el mismo error

"Se ha producido un error 3001 en tiempo de ejecución: Argumentos incorrectos, fuera del intervalo o en conflicto con otros"

en el recordset solo hay un registro con dos columnas

Nombre   FechaAlta
CLIENTE 1            2018-10-25

adjunto el código, muchas gracias de antemano

CREATE TYPE [dbo].[Cliente] AS TABLE(
[NOMBRE] varchar(100)  NULL,
[FECHAALTA] [date] NULL

)
GO

CREATE PROCEDURE [dbo].[SP_PruebaConClientes] 
@para1 int,@para2 Cliente READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT Nombre,FechaAlta FROM CLIENTE WHERE Cliente = 1
END

Sub Prueba1()
    Dim con As ADODB.Connection
    Dim com As ADODB.Command
    Dim rs As ADODB.Recordset
    Dim rst As ADODB.Recordset
    Dim array1, array2
    
    Set con = New ADODB.Connection
    Set com = New ADODB.Command
    Set rs = New ADODB.Recordset
    Set rst = New ADODB.Recordset
    
    con.ConnectionString = ConexionDSN
    con.Open
    rs.Open "SELECT Nombre,FechaAlta FROM CLIENTE WHERE Cliente = 1", con, adOpenKeyset, adLockReadOnly
    array1 = rs.GetRows
    array2 = TransposeArray(array1)
    Debug.Print array2(0, 0) & array2(0, 1)
    Set com = Nothing
    Set com = New ADODB.Command
    With com
        .ActiveConnection = con
        .CommandText = "SP_PruebaConClientes"
        .CommandType = adCmdStoredProc
        .Parameters.Append .CreateParameter("@para1", adBigInt, adParamInput, 1, 1)
        .Parameters.Append .CreateParameter("@para2", adArray, adParamInput, , array1)
        Set rst = .Execute
    End With
    
    con.Close
    Set con = Nothing
    Set com = Nothing
    Set rs = Nothing
End Sub

Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable