Sp de sql2000 desde vb6

Hola emperador mi consulta es sobre como llamar a un procedimiento almacenado de sql2000 desde vb6 y pasarle parámetros, por ejemplo a unos sp de insert o update, perdona si mi pregunta es muy molesta es que recién me inicio en esto de trabajar con sql y visual
Respuesta
1
Si lo tengo pero es mucho código, todo depende en mi caso de una clase que maneja que tipo de comando le mandas
si es store, si es recordset, si es consulta etc.
Este es un ejemplo de como llamar a un stored
declaras
Dim ObjAccesoDB As AccesoDB
Dim VarParametrosIN As Variant
VarParametrosIN = Array(txttipoliq.Text, txtmes.Text, txtaños.Text, CodMadreSel, SubColSel, FecPago, txtleyhab.Text, chacumula.Value, Me.txtobserv.Text)
    StrComandoSQL = "altaCaratula"
    BytTipoComando = adCmdStoredProc
    ObjAccesoDB.EjecutarCmd StrComandoSQL, BytTipoComando, , VarParametrosIN
    MsgBox "Se dio de Alta con exito"
   ObjAccesoDB. EjecutarCmd StrComandoSQL, BytTipoComando,, VarParametrosIN, VarParametrosOUT
DESPUES ESTO VA A LA CLASE
TE LA PASO POR ACA, ESPERO QUE ENTIENDAS
Public Sub EjecutarCmd(ByVal StrComandoSQL As String, _
                       ByVal BytTipoComando As Byte, _
                       Optional ByRef ObjRs As Variant, _
                       Optional ByVal VarParametrosIN As Variant, _
                       Optional ByRef varParametrosOUT As Variant)
    Dim IntIndice As Integer
    Dim ObjComando As ADODB.Command
'On Error GoTo Errores
    'Abro la conexión
    Abrir
    Set ObjComando = New Command
    ObjComando.CommandText = StrComandoSQL
    ObjComando.CommandType = BytTipoComando
    'Tipo Comando es adCmdText ,adCmdStoredProc
    ObjComando.ActiveConnection = objCon
    'Aca se validan los parametros
    If Not IsMissing(VarParametrosIN) Then
        ' Trae los parametros del Stored Procedure
        ObjComando.Parameters.Refresh
        If ObjComando.Parameters.Count > 1 Then
            If IsArray(VarParametrosIN) Then
                For IntIndice = 0 To UBound(VarParametrosIN)
                    ObjComando.Parameters(IntIndice + 1).Value = VarParametrosIN(IntIndice)
                Next
            Else
                ObjComando.Parameters(1).Value = VarParametrosIN
            End If
        End If
    End If
    'Aca verifica si existe un recorset por parametro
    If Not IsMissing(ObjRs) Then
        Set ObjRs = CreateObject("adodb.Recordset")
        ObjRs.CursorLocation = adUseClient
        ObjRs.CursorType = adOpenStatic
        ObjRs.LockType = adLockOptimistic
        ObjRs.Open ObjComando
        Set ObjRs.ActiveConnection = Nothing
    Else
    'Aca ejecuta el Comando y verifica si existen parametros de salida
                                                                                                                                                         ObjComando.Execute
        If Not IsMissing(varParametrosOUT) Then
            Dim objParametro As ADODB.Parameter
            IntIndice = 0
            varParametrosOUT = Array("")
            For Each objParametro In ObjComando.Parameters
                If objParametro.Direction = adParamOutput Or objParametro.Direction = adParamInputOutput Then
                    ReDim Preserve varParametrosOUT(0 To IntIndice)
                    varParametrosOUT(IntIndice) = objParametro.Value
                    IntIndice = IntIndice + 1
                End If
            Next
            Set objParametro = Nothing
        End If
    End If
     Set ObjComando = Nothing
    'Cierra la conexión
    Cerrar
    Exit Sub
CON TODO ESTO, podes llamar a distintos comandos
y los parámetros, tantos como sean necesarios ya que actúan como vectores que guardan todo
espero que te sirva
saludos
leandro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas