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
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:
- Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas) en alguna carpeta del disco duro
- Instalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando un cliente oracle (SQL * Plus...)
- Ir al panel de control
- Ira ODBC
- En la pestaña DSN de sistema, pulsar "Agregar"
- Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar"
- Escribir algún identificativo en "Data Source Name" y pulsar "OK"
- Ejecutar el proyecto Visual Basic
- 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 |
- 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)
)
)
|
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
|
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:
- Guardar todos los archivos de este programa ejemplo (*.vbp, *.frm, *.bas) en alguna carpeta del disco duro
- Instalar en el cliente los drivers de ODBC de Oracle, por ejemplo instalando un cliente oracle (SQL * Plus...)
- Ir al panel de control
- Ira ODBC
- En la pestaña DSN de sistema, pulsar "Agregar"
- Seleccionar "Oracle ODBC Driver" y pulsar "Finalizar"
- Escribir algún identificativo en "Data Source Name" y pulsar "OK"
- Ejecutar el proyecto Visual Basic
- 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 |
- 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)
)
)
|
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/
|