Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Oracle: Acceso a Oracle mediante Microsoft Visual Basic, RDO y ODBC
Visual Studio .NET


Código fuente y explicación paso a paso y con capturas de pantalla para acceso a Oracle mediante Microsoft Visual Basic, Microsoft Remote Data Object (RDO) y ODBC.

Acceso a Oracle (o cualquier otra base de datos: MySQL, SQL Server, Access, etc) mediante Microsoft Visual Basic, RDO y ODBC

1. En primer lugar instalaremos el Driver ODBC correspondiente al motor de base de datos a la que queramos acceder. Todos los fabricates (Oracle, Access, SQL Server, MySQL, Informix, DB2, ...) disponen de este sofware 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.

2. Crearemos un origen de datos nuevo desde "Inicio" - "Configuración" - "Panel de control" - "Herramientas administrativas" - "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, ...).

2. Abriremos Microsoft Visual Basic 6.0, pulsaremos en "Archivo" - "Nuevo proyecto", seleccionaremos "EXE Estándar" y pulsaremos en "Aceptar":

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:

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últimes 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:

 

Los componetes y sus propiedades principales:

Agregaremos el código Visual Basic correspondiente al botón bEjecutar:

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:

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"



Nota: Otra forma de acceder al valor de un campo, utilizando el nombre de éste en vez de su posición es:

valorCampo = rsConsulta.rdoColumns("NOMBRE_COLUMNA").Value

Anuncios


Enviado el Martes, 30 mayo a las 08:06:12 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A