BASES DE DATOS ORACLE

http://www.redcientifica.com/oracle/


Administración y Optimización de Bases de Datos Oracle
Copyright 1999-2004 Manuel de la Herrán Gascón

Acceso a Bases de Datos Oracle mediante Visual Basic

Ejemplo 1

Este ejemplo realiza una consulta a una base de datos oracle mediante DAO (Microsoft DAO 3.51 Object Library) y ODBC.

Para ejecutarlo correctamente se deben seguir los siguientes pasos:

  1. Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas) en alguna carpeta del disco duro
  2. Instalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando un cliente oracle (SQL * Plus...)
  3. Ir al panel de control

  4. Ira ODBC

  5. En la pestaña DSN de sistema, pulsar "Agregar"

  6. Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar"

  7. Escribir algún identificativo en "Data Source Name" y pulsar "OK"

  8. Ejecutar el proyecto Visual Basic
  9. Si la conexión es a la base de datos por defecto, el parámetro "Connect" del OpenDatabase puede especificarse como:
    DSN=oracle;odbc;uid=scott;pwd=tiger
  10. Si la conexión es a una base de datos remota, el parámetro "Connect" del OpenDatabase puede especificarse como:
    DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger
    donde tcp-loopback es un identificativo de cadena de conexión del fichero tnsnames.ora
    Tcp-loopback.world =
      (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS =
              (PROTOCOL = TCP)
              (Host = 127.0.0.1)
              (Port = 1521)
            )
        )
        (CONNECT_DATA = (SID = ORCL)
        )
      )
    

Código fuente

A continuación se muestra el código de los ficheros que componen el proyecto

dao_ora.vbp
Type=Exe
Reference=*\G{00025E01-0000-0000-C000-000000000046}#4.0#0#C:\Archivos de programa\Archivos comunes\Microsoft Shared\DAO\DAO350.DLL#Microsoft DAO 3.51 Object Library
Form=dao_ora.frm
Startup="frm_dao_ora"
HelpFile=""
Command32=""
Name="dao_ora"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="Universidad de Deusto"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1
dao_ora.frm
VERSION 5.00
Begin VB.Form frm_dao_ora 
   Caption         =   "frm_dao_ora"
   ClientHeight    =   1395
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   3465
   LinkTopic       =   "vb0001_1"
   ScaleHeight     =   1395
   ScaleWidth      =   3465
   StartUpPosition =   3  'Windows Default
End
Attribute VB_Name = "frm_dao_ora"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim db1 As Database
Private Sub Form_Load()
    Dim rs1 As Recordset
    'Set db1 = OpenDatabase("oracle", False, False, "DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger")
    Set db1 = OpenDatabase("oracle", False, False, "DSN=oracle;odbc;uid=scott;pwd=tiger")
    Set rs1 = db1.OpenRecordset("emp", dbOpenSnapshot)
    MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
    rs1.MoveNext
    MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB")
    rs1.MovePrevious
    MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB")
    End
End Sub

Ejemplo 2

Este ejemplo realiza una consulta a una base de datos oracle mediante RDO (Microsoft Remote Data Object 2.0) y ODBC.

Para ejecutarlo correctamente se deben seguir los siguientes pasos:

  1. Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas) en alguna carpeta del disco duro
  2. Instalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando un cliente oracle (SQL * Plus...)
  3. Ir al panel de control

  4. Ira ODBC

  5. En la pestaña DSN de sistema, pulsar "Agregar"

  6. Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar"

  7. Escribir algún identificativo en "Data Source Name" y pulsar "OK"

  8. Ejecutar el proyecto Visual Basic
  9. Si la conexión es a la base de datos por defecto, el parámetro "Connect" del OpenDatabase puede especificarse como:
    DSN=oracle;odbc;uid=scott;pwd=tiger
  10. Si la conexión es a una base de datos remota, el parámetro "Connect" del OpenDatabase puede especificarse como:
    DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger
    donde tcp-loopback es un identificativo de cadena de conexión del fichero tnsnames.ora
    Tcp-loopback.world =
      (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS =
              (PROTOCOL = TCP)
              (Host = 127.0.0.1)
              (Port = 1521)
            )
        )
        (CONNECT_DATA = (SID = ORCL)
        )
      )
    

Código fuente

A continuación se muestra el código de los ficheros que componen el proyecto

rdo_ora.vbp
Type=Exe
Reference=*\G{EE008642-64A8-11CE-920F-08002B369A33}#2.0#0#C:\WINNT\System32\msrdo20.dll#Microsoft Remote Data Object 2.0
Module=bas_rdo_ora; rdo_ora.bas
Startup="Sub Main"
HelpFile=""
Command32=""
Name="rdo_ora"
HelpContextID="0"
CompatibleMode="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0
VersionCompanyName="Universidad de Deusto"
CompilationType=0
OptimizationType=0
FavorPentiumPro(tm)=0
CodeViewDebugInfo=0
NoAliasing=0
BoundsCheck=0
OverflowCheck=0
FlPointCheck=0
FDIVCheck=0
UnroundedFP=0
StartMode=0
Unattended=0
ThreadPerObject=0
MaxNumberOfThreads=1
rdo_ora.bas
Attribute VB_Name = "bas_rdo_ora"
Option Explicit
Global rdoEnvironment1 As rdoEnvironment
Global rdoConnection1 As rdoConnection
Sub main()
  Dim rs1 As rdoResultset
  Set rdoEnvironment1 = rdoEngine.rdoEnvironments(0)
  Set rdoConnection1 = rdoEnvironment1.OpenConnection("oracle", False, True, "DSN=oracle;odbc;database=ORCL@tcp-loopback;uid=scott;pwd=tiger")
  'Set rdoConnection1 = rdoEnvironment1.OpenConnection("oracle", False, True, "DSN=oracle;odbc;uid=scott;pwd=tiger")
  Set rs1 = rdoConnection1.OpenResultset("select * from emp") ' por defecto es forward-only
  MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
  rs1.MoveNext
  MsgBox rs1("EMPNO") & "-" & rs1("ENAME") & "-" & rs1("JOB")
  'rs1.MovePrevious 'Esta instruccion produciría un error porque el tipo de rs1 es forward-only
  Set rs1 = rdoConnection1.OpenResultset("select * from emp", rdOpenStatic)
  MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
  rs1.MoveNext
  MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
  rs1.MovePrevious
  MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
  Set rs1 = rdoConnection1.OpenResultset("select * from emp", rdOpenKeyset)
  MsgBox rs1(0) & "-" & rs1(1) & "-" & rs1(2)
  End
End Sub


Este curso esta incluido en el CD-ROM de REDcientífica. Solicítalo por correo haciendo click aquí. http://www.redcientifica.com/cdrom/


Enviar un e-mail a Manuel de la Herrán Gascón Buzón de contacto
© 1999-2004 Manuel de la Herrán Gascón
Volver a la página anteriorIr a la página principalIr a la página siguiente3/5