Hola, en este segmento te voy a mostrar como poder conectarte a una tabla de una base de datos que se encuentra en Sql Server, utilizando la forma de conexión por ODBC, para realizar una consulta.
Para poder conectar una base de
datos que se encuentra en Sql Server, mediante ODBC utilizando el lenguaje de
Visual Basic 6.0 debes de hacer lo siguiente:
Selecciona “Proyecto” en el menú principal
de opciones del lenguaje de Visual Basic 6.0; después selecciona la opción
denominada “Referencias”.
Te presenta una ventana el cual
buscaras y seleccionaras la referencia denominada “Microsoft Remote Data Object
2.0” y la seleccionaras, en seguida presiona el botón de “Aceptar”.
Después posiciona tu cursor en
medio de la ventana de formulario y entra a tu área de código, realizando doble
click en el formulario que ya tienes
presente y listo para la creación de tu conexión ODBC con una base de datos
ubicada en Sql Server.
Una vez que te encuentras en tu
area de trabajo o área de código, ve al principio o inicio de tu área de de
trabajo en donde se encuentran las declaraciones, ahí copia lo siguiente:
Option
Explicit
Dim
oEnn As rdoEnvironment
Dim oRnn As rdoConnection
Crea una variable oEnn para crear
un objeto remoto que permitirá realizar una conexión remota.
Crea una variable oRnn para crear
un objeto que permita hacer conexión remota con la base de datos a la cual te
vas a conectar.
Después en tu formulario pero en
el área de diseño de pantalla indica la etiqueta y una cuadricula utilizando el
control MSFLEXGRID.
A tu etiqueta indícale el nombre
de “Consulta de datos”, el grid proporciona el tamaño según los campos que
indicarás, para este efecto lo ubico debajo de la etiqueta y le doy un ancho de
izquierda a derecha de tal forma que pueda yo apreciar la información que se me
presenta en cada columna.
El nombre del grid en este caso
lo llamare “msgPers”
Después creó un botón de comando
que me permita realizar la carga y presentación de la información en el grid,
el cual lo llamare “Carga de Datos”.
Vuelve a entrar a tu área de
trabajo y copia el siguiente código que
te indico:
En primera instancia crea una
función, en este caso yo lo hice poniéndole el nombre de “vsCargaDatosOdbc”, después
creo dos variables denominadas strConnect como un string y oRs como un
recordset
Function
vsCargaDatosOdbc() As Boolean
Dim strConnect As String
Dim oRs As rdoResultset
Indica una salida de error para
cualquier eventualidad de fallo de conexión externo, que te ofrecerá una salida
sin complicaciones, aún cuando no se haya efectuado la conexión.
On Error GoTo vError
En seguida captura el string de
conexion que te permitirá conectarte a la base de datos indicada.
En donde “Driver={SQL Server}”, es el provider odbc
que el lenguaje utiliza como motor de conexión o sea que medio estamos
utilizando para conectarnos, de hecho si lo haces con otro tipo de motor esta
parte cambia.
Server=SYSMEREDID, en esta parte
se le indica a que servidor me estoy conectando y que es donde se encuentra mi Sql
Server.
Database=Cafeterias, es el nombre
de la base de datos a la que me voy a conectar y que se encuentra dentro de Sql
Server.
Username=sa, capturar el nombre
de usuario.
PWD= , si cuenta con una
contraseña o password, es aquí donde se le debe indicar.
De tal forma que el string de conexión
queda de la siguiente manera:
strConnect =
"Driver={SQL Server}; server=SYSMEREDID;database=Cafeterias;Username=sa;PWD=;"
A continuación se crean los
objetos oEnn, oRnn y el objeto oRs, además se ejecuta el objeto oRnn para
indicar un tiempo límite en el que hará conexión para ello utilizamos la
instrucción “Querytimeout = 600”.
Set
oEnn = rdoEngine.rdoEnvironments(0)
Set oRnn =
oEnn.OpenConnection(dsname:="", prompt:=rdDriverNoPrompt,
ReadOnly:=False, _ Connect:=strConnect)
oRnn.QueryTimeout = 600
La creación del objeto oRs es muy
importante ya que es aquí donde se le indica que consulta se va a efectuar, es
aquí donde le indicamos los campos, y la tabla a consultar, después le
indicamos como traeremos o como se realizara dicha consulta.
Set
oRs = oRnn.OpenResultset(Name:="Select
pers_usuario,pers_idusuario,pers_passw,pers_nombre,pers_appaterno,pers_apmaterno
From caf_personal", _
Type:=rdOpenForwardOnly,
LockType:=rdConcurReadOnly, Options:=rdExecDirect)
Una vez que ya estamos conectados
con la base de datos y ya efectuamos la consulta a una tabla en particular,
preparamos nuestro grid con los campos que se solicitaron en la consulta a la tabla
denominada “CAF_PERSONAL”.
With msgPers
.Clear
.Rows = 2
.FormatString = "Clave|Id. Usuario|Contraseña|Nombre|Ap.
Paterno|Ap. Materno"
.ColWidth(0) = 100
.ColWidth(1) = 500
.ColWidth(2) = 700
.ColWidth(3) = 1200
.ColWidth(4) = 1200
.ColWidth(5) = 1200
End With
Después solo vaciamos el contenido
de la información, resultado de la consulta realizada anteriormente en el grid “msgPers”,
note como es cargado cada campo “oRs”, en cada celda del grid.
Do
While Not oRs.EOF
msgPers.Col = 0
msgPers.Text =
oRs("pers_usuario")
msgPers.Col = 1
msgPers.Text =
oRs("pers_idusuario")
msgPers.Col = 2
msgPers.Text =
oRs("pers_passw")
msgPers.Col = 3
msgPers.Text = oRs("pers_nombre")
msgPers.Col = 4
msgPers.Text =
oRs("pers_appaterno")
msgPers.Col = 5
msgPers.Text =
oRs("pers_apmaterno")
oRs.MoveNext
If Not oRs.EOF Then
msgPers.Rows = msgPers.Rows + 1
msgPers.Row = msgPers.Row + 1
End If
Loop
Una vez que se ha cargado el
grid, le indicamos que el ejercicio se realizo con exito por lo que le
indicamos True o verdadero al nombre de la función ya que le regreso un dato
booleano como indicación del resultado de dicho ejercicio; seguido del cierre
de los objetos utilizados para tal efecto que son oRs, oRnn y oEnn, para después
terminar la función con exit function.
vsCargaDatosOdbc = True
oRs.Close
oRnn.Close
oEnn.Close
Exit Function
Esta es la parte donde el
programa utilizará para absorber el error de falla de conexión, en donde le doy
indicación de falso ya que no se efectuó la conexión y dando a la vez una
salida que permita que el programa no falle, sino simplemente de una manera
elegante presente un medio para indicar que la conexión no se realizo sin que
truene o se corte la ejecución del programa.
vError:
vsCargaDatosOdbc = False
End Function
Nos vemos hasta la próxima,
espero que este código de ejemplo les sea de utilidad.
No hay comentarios:
Publicar un comentario