Código fuente y explicación sobre cómo acceder a un servidor de base de datos Oracle mediante Microsoft Visual Basic, Microsoft Remote Data Object (RDO) y ODBC.
En primer lugar instalaremos el Driver ODBC correspondiente al motor de base de datos a la que queramos acceder. Todos los fabricantes (Oracle, Access, SQL Server, MySQL, Informix, DB2, …) disponen de este software en su web. Si utilizamos como Sistema Operativo Microsoft Windows XP es muy posible que ya incluya la mayoría de ellos. En nuestro caso utilizaremos como ejemplo el driver de Oracle 9.2.
Crearemos un origen de datos nuevo desde «Inicio» – «Configuración» – «Panel de control» – «Herramientas administrativas» – «Orígenes de datos ODBC»:
Pulsaremos en «Herramientas administrativas»:
Y en «Orígenes de datos ODBC»:
Si queremos que este origen de datos esté disponible para cualquier usuario del equipo pulsaremos en la pestaña «DSN de Sistema», pulsaremos en «Agregar»:
Seleccionaremos el controlador correspondiente y pulsaremos en «Finalizar»:
Introduciremos los datos necesarios para el origen de datos:
- Data Source Name: nombre con el que se referenciará desde Visual Basic al origen de datos.
- Description: una breve descripción del origen de datos.
- TNS Service Name: nombre del servicio TNS (sólo en Driver ODBC de Oracle).
- User ID: usuario con el que probaremos la conexión.
Si queremos realizar una prueba de conexión pulsaremos «Test Connection», en caso contrario guardaremos el Origen de datos pulsando en «OK».
Nota: esta ventana variará en función del tipo de controlador seleccionado (MySQL, SQL Server, DB2, Informix, …).
Abriremos Microsoft Visual Basic 6.0, pulsaremos en «Archivo» – «Nuevo proyecto», seleccionaremos «EXE Estándar» y pulsaremos en «Aceptar»:
Elegiremos «EXE estándar»:
Para visualizar las propiedades del formulario principal de nuestra aplicación Visual Basic pulsaremos en «Ver» – «Ventana Propiedades»:
Modificaremos las propiedades
- Nombre: formMenuPrincipal
- Caption: AjpdSoft Acceso Oracle VB
- StartUpPosition: 2 – CenterScreen
Guardaremos el proyecto pulsando en «Archivo» – «Guardar proyecto» y especificaremos la ruta y el nombre del fichero del formulario principal y el nombre del propio proyecto:
Elegiremos la carpeta:
Y el nombre del fichero del proyecto:
Para poder utilizar las funciones propias de Microsoft Remote Data Object (RDO) deberemos añadir, desde «Proyecto» – «Referencias», este componente a la aplicación:
Seleccionaremos «Microsoft Remote Data Object», el cual necesitará la librería «MSRDO20.DLL» para su funcionamiento:
Añadiremos los componentes necesarios y modificaremos sus propiedades, en nuestro caso hemos utilizado 5 TextBox (dos de ellos con la propiedad Multiline a True para permitir múltiples líneas y uno de ellos con la propiedad PasswordChar a «*» para que al escribir la contraseña no se visualice). También hemos añadido 6 Label, un CheckBox y 2 CommandButton, el formulario resultante será el siguiente:
A continuación mostramos los componentes usados en el formulario de nuestra aplicación y sus propiedades principales.
Para el Label:
La propiedad Caption:
Para el TextBox:
La propiedad Nombre:
La propiedad PasswordChar:
La propiedad Multiline:
Para el CommandButton:
La propiedad Nombre:
La propiedad Caption del Label:
Propiedad ScrollBars del TextBox txtContenido:
Componentes CheckBox:
Con su propiedad Caption:
El CommandButton para bSalir:
El TextBox para txtNumReg:
Agregaremos el código Visual Basic correspondiente al botón bEjecutar:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
Private Sub bEjecutar_Click() Dim rdoEntorno As rdoEnvironment Dim rdoConexion As rdoConnection Dim rsConsulta As rdoResultset Dim conODBC As String Dim contenidoL As String Dim i As Integer Dim numRegMostrar As Integer Dim numRegActual As Integer On Error GoTo cError conODBC = "DSN=" + txtODBC.Text + ";ODBC;" + _ ";uid=" + txtUsuario.Text + ";pwd=" + txtContrasena.Text Set rdoEntorno = rdoEngine.rdoEnvironments(0) Set rdoConexion = rdoEntorno.OpenConnection(txtODBC.Text, False, True, conODBC) Set rsConsulta = rdoConexion.OpenResultset(txtSQL.Text, rdOpenStatic) rsConsulta.MoveLast rsConsulta.MoveFirst lInfo.Caption = CStr(rsConsulta.RowCount) txtContenido.Text = "" If opMostrarContenido.Value Then numRegMostrar = CInt(txtNumReg.Text) numRegActual = 0 Do Until rsConsulta.EOF contenidoL = "" numRegActual = numRegActual + 1 If numRegActual <= numRegMostrar Then For i = 0 To rsConsulta.rdoColumns.Count - 1 If Not IsNull(rsConsulta(i).Value) Then If contenidoL <> "" Then contenidoL = contenidoL + " | " + CStr(rsConsulta(i).Value) Else contenidoL = CStr(rsConsulta(i).Value) End If End If Next i txtContenido.Text = txtContenido.Text + (contenidoL + Chr(13) + Chr(10)) rsConsulta.MoveNext Else Exit Sub End If Loop End If cSalir: Exit Sub cError: MsgBox Err.Description End Sub |
Agregaremos el código Visual Basic correspondiente al botón bSalir:
1 2 3 |
Private Sub bSalir_Click() End End Sub |
3. Compilaremos la aplicación pulsando en «Ejecutar» – «Iniciar con compilación completa», el resultado será:
4. Generaremos el fichero ejecutable correspondiente, desde «Archivo» – «Generar accesoOracle.exe»