Labels

22 abr 2010

Conectar VB6 a SQL Server

Se que VB6 no es muy utilizado en la actualidad, pero de cualquier forma, les dejo este código de cómo conectarlo con SQL Server (el código aplica para 2000, 2005 y 2008) a petición de un compa del Tec:

'Antes que cualquier cosa, necesitarán importar las bibliotecas de:
'Microsoft SQLDMO Object Library
'Microsoft ActiveX Data Objects 2.5 Library

'Declaro 2 variables que usaré en las dos funciones
Public objConexion as Connection
Public strConexion as String

'----------------------------------------------------
Public Function cargaConsulta(pConsult As String)as ADODB.Recordset

'Si hay un error ve al manejador
On Error GoTo Handler

'Creo la cadena de conexión
strConexion = "Provider=SQLOLEDB; DATA SOURCE = .; INITIAL CATALOG = TuBaseDeDatos; USER ID = TuUsuario; PASSWORD = TuPassword"
'Esto suponiendo que el servidor del SQL está en tu máquina(por eso el punto) y que sabes el usuario y contraseña para entrar al SQL Server

'Mando llamar la función encargada de conectar
Conecta

'No se exactamente que hagan, pero pónganlo
cargaConsulta.CursorLocation = adUseClient
cargaConsulta.CursorType = adOpenDynamic
cargaConsulta.LockType = adLockOptimistic

'Aquí le meto la consulta en la cadena junto con la conexión activa
cargaConsulta.Open pConsult, objConexion

'Me salgo de la función antes de entrar al manejador
Exit Function

Handler:
msgbox("Error número " & Err.Number & ": " & Err.Description,vbInformation,"Error")

End Function

'--------------------------------------------------------------
Public Function Conecta()
On Error GoTo Handler

objConexion.Provider = "SQLOLEDB"
objConexion.ConnectionString = strConexion
objConexion.Open

Exit Function

Handler:
MsgBox "No se ha podido conectar con la BD, proporcione otros datos de Conexión", vbExclamation, "Error"

End Function

Y listo, ya sólo es cuestion de usar Recordsets para manipular los datos por ejemplo así:

Dim rsRecord as ADODB.Recordset
Dim strNombre as String
Dim strCorreo as String

rsRecord = cargaConsulta("SELECT * FROM Posteadores")

'Si no está al final por que viene con datos
If Not rsRecord.EOF
'Así se saca el valor de la columna especificada en el row actual
strNombre = rsRecord!Nombre
strCorreo = rsRecord!Correo
end If

'Suponiendo que la tabla Posteadores tenga las columnas de Nombre y Correo

'Otros métodos para moverse entre los rows del recordset
rsRecord.MoveNext
rsRecord.MovePrevious
rsRecord.MoveLast
rsRecord.MoveFirst

Y bueno, así es masomenos como se conecta y utilizan los datos de SQLServer desde VB6.
Dudas o aclaraciones, ps hay me los dejan en un comment...

Saludos y que la fuerza los acompañe, el resto... lo dejo a su criterio...

0 comentarios:

Publicar un comentario

Los comentarios son gratis......deja uno