Cita:
Iniciado por aizurieta Hola saludos a todos,
Estoy desarrollando un programa en Visual Basic 6, pero necesito hacer la conexión con sql server 2000... he tratado de muchas forma realizar la conexion pero ninguna me ha funcionado o no se si estaré realizando algo mal.
He pensado que exista la posibilidad que me de problema porque tengo instalado visual basic 6 y sql server 2000 en la misma máquina... por favor ayuda con este caso...
Hola la verdad que q no corresponde al foro pero al final ya q estas aca manos a la obra
Sinceramente no creo que este instalado mal el sql 2000 o el vb6 yo pienso mas bien que no agregaste la referencia para usar la programcion ADO.
Menu Proyecto \ Referencias y ahi marcas Microsoft ActiveX Data Object 2.x segun tu tipo de programacion.
Lo que siempre hago es creo un Modulo y ahi creo la conexion
con una funcion que llame a mis procedimientos almacenados con n Parametros de entrada.
Código vb:
Ver originalPublic Const strCon = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=SA;Initial Catalog=MyData;Data Source=PC Server"
Function RetornaRS(ByVal NombreSP As String, ParamArray xParametros() As Variant) As ADODB.Recordset
On Error GoTo Xerr:
Dim Cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim pmt As New ADODB.Parameter
Dim cn As New ADODB.Connection
Dim i As Integer, n As Integer
Dim ret() As Integer
cn.Open strCon
With Cmd
.ActiveConnection = cn
.CommandType = adCmdStoredProc
.CommandText = NombreSP
End With
ReDim ret(n)
For Each pmt In Cmd.Parameters
If pmt.Name <> "@RETURN_VALUE" Then
pmt.Value = xParametros(i)
If (pmt.Direction = adParamInputOutput) Then
ret(n) = i
n = n + 1
ReDim Preserve ret(n)
End If
i = i + 1
End If
Next
rs.LockType = adLockBatchOptimistic
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Open Cmd
If (n > 0) Then
For i = 0 To n - 1
xParametros(ret(i)) = Cmd.Parameters(ret(i) + 1).Value
Next
End If
Set RetornaRS = rs
'Set rs = Nothing
'Set Cmd = Nothing
'Set cn = Nothing
Exit Function
Xerr:
Err.Raise Err.Number, Err.Source, Err.Description
End Function
Te recomiento trabajar directamente con procedimientos almacenados de consulta actualizacion y eliminacion
y asi lo llamo en cualquien evento en el cual crea conveniente segun mi tipo de programacion y asi creas los famosos RECORDSET DESCONECTADOS.
Código vb:
Ver originalDim RsUsuarios As ADODB.Recordset
Dim RsListClientes As ADODB.Recordset
Set RsUsuarios = RetornaRS("Rs_Listar_Usuarios", 1, 2, 3, 4)
set RsListClientes = RetornaRS("Rs_Listar_Clientes", 0)
Siempre me es gratificante el cooperar en la busqueda de soluciones para los demas.
www.bitxense.com.pe | Soluciones Informaticas S.A.C. -
[email protected]
Cualquier duda soy Jhon Bautista Palomino aqui esta mi correo MSN
[email protected] Lima-Peru