Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/03/2010, 20:04
T3rryMan
 
Fecha de Ingreso: enero-2010
Ubicación: SJM Lima - Peru
Mensajes: 55
Antigüedad: 15 años
Puntos: 1
Respuesta: Conectar Visual Basic 6 a Sql Server 2000

Cita:
Iniciado por aizurieta Ver Mensaje
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 original
  1. Public Const strCon = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=SA;Initial Catalog=MyData;Data Source=PC Server"
  2.  
  3.  
  4. Function RetornaRS(ByVal NombreSP As String, ParamArray xParametros() As Variant) As ADODB.Recordset
  5.     On Error GoTo Xerr:
  6.         Dim Cmd As New ADODB.Command
  7.         Dim rs As New ADODB.Recordset
  8.         Dim pmt As New ADODB.Parameter
  9.         Dim cn As New ADODB.Connection
  10.         Dim i As Integer, n As Integer
  11.         Dim ret() As Integer
  12.         cn.Open strCon
  13.         With Cmd
  14.             .ActiveConnection = cn
  15.             .CommandType = adCmdStoredProc
  16.             .CommandText = NombreSP
  17.         End With
  18.         ReDim ret(n)
  19.         For Each pmt In Cmd.Parameters
  20.             If pmt.Name <> "@RETURN_VALUE" Then
  21.                 pmt.Value = xParametros(i)
  22.                 If (pmt.Direction = adParamInputOutput) Then
  23.                     ret(n) = i
  24.                     n = n + 1
  25.                     ReDim Preserve ret(n)
  26.                 End If
  27.                 i = i + 1
  28.             End If
  29.         Next
  30.         rs.LockType = adLockBatchOptimistic
  31.         rs.CursorLocation = adUseClient
  32.         rs.CursorType = adOpenStatic
  33.         rs.Open Cmd
  34.         If (n > 0) Then
  35.         For i = 0 To n - 1
  36.                 xParametros(ret(i)) = Cmd.Parameters(ret(i) + 1).Value
  37.         Next
  38.         End If
  39.         Set RetornaRS = rs
  40.         'Set rs = Nothing
  41.        'Set Cmd = Nothing
  42.        'Set cn = Nothing
  43.        Exit Function
  44. Xerr:
  45.         Err.Raise Err.Number, Err.Source, Err.Description
  46. 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 original
  1. Dim RsUsuarios As ADODB.Recordset
  2. Dim RsListClientes As ADODB.Recordset
  3.  
  4. Set RsUsuarios = RetornaRS("Rs_Listar_Usuarios", 1, 2, 3, 4)
  5. 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