|
|
Oracle: Cómo acceder a Oracle con Delphi sin utilizar código fuente
![]() Artículo que explica paso a paso (para usuarios iniciados o inexpertos) cómo acceder a una base de datos Oracle mediante Delphi 6 sin utilizar código fuente. Utilizando exclusivamente los componentes de acceso a datos que incluye Delphi y el tipo de conexión ODBC.
Requisitos necesarios para acceder a una base de datos Oracle con DelphiPara poder realizar una aplicación que acceda a la base de datos Oracle mediante Delphi necesitaremos disponer de lo siguiente:
Manual para instalar Oracle 9i en Windows con capturas de pantalla
Cómo instalar Oracle Client en Windows
Creación del driver ODBC para OracleEn primer lugar instalaremos el driver ODBC para Oracle, aunque si ya hemos instalado Oracle Client (es necesario) casi con toda seguridad ya tendremos el driver ODBC instalado. De no ser así lo instalaremos descargándolo de la web de Oracle, con Oracle Universal Installer. Tras instalar el Driver añadiremos un nuevo origen de datos ODBC en el PC que tendrá el acceso a Oracle. Para ello nos situaremos en "Inicio" - "Configuración" - "Panel de Control" - "Herramientas administrativas" - "Orígenes de datos (ODBC)". En la pestaña (o solapa) "DSN de sistema" pulsaremos "Agregar": Seleccionamos "Oracle en OraHome92" (puede variar el nombre en función de la ruta de instalación o nombre que hayamos indicado) el driver ODBC instalado al instalar Oracle Client y pulsaremos en "Finalizar":
Añadiremos los datos necesarios:
Una vez añadidos los datos podemos realizar una prueba para verificar que los datos introducidos son correctos, para ello pulsaremos en "Test connection", introduciremos los siguientes datos:
Introduciremos los datos y pulsaremos "OK": Si todo es correcto mostrará un mensaje como el siguiente:
Preparando la aplicación Delphi para la conexión con Oracle DatabaseCrear el acceso a Oracle en DelphiUna vez instalado Oracle Client y configurado el Driver ODBC procederemos a realizar el acceso a Oracle desde Delphi. Abriremos Delphi, seleccionaremos "File" - "New" - "Application". Añadiremos un módulo de datos (DataModule) en el cual insertaremos las tablas (TTable), consultas (TQuery) y el acceso a la base de datos (TDataBase). Para ello pulsaremos en "File" - "New" - "Data Module". Dentro del Data Module añadiremos un Database (componente no visual que se encuentra en la paleta de componentes, en la pestaña "BDE"): Haremos doble clic sobre el Database añadido y nos mostrará la ventana de configuración de los parámetros del Datbase. En "Alias name" seleccionaremos el origen de datos ODBC creado anteriormente, en nuestro caso "AJPDSOFT" y pulsaremos en el botón "Defaults" para que nos añada los parámetros automáticamente:
En este caso tendremos tres opciones:
En este caso utilizaremos la segunda opción, pues es más flexible (conexión de distintos usuarios con el mismo programa). Evidentemente esto se puede hacer por código (sería más eficiente) pero hemos de cumplir nuestro objetivo de conectarnos a Oracle sin utilizar ni una sola línea de código fuente. Por último, para el componente Database, en la propiedad "DatabaseName", introduciremos un nombre que identifique esta conexión en la aplicación, por ejemplo "bdAjpdSoft": Para probar la conexión pondremos a "True" la propiedad "Connected", si todo ha ido bien nos aparecerá la ventana de "Database Login". Introduciremos el usuario y contraseña que queramos utilizar para la prueba y pulsaremos en "OK". Si no hay problemas la propiedad "Connected" del Database cambiará a "True":
Si, por el contrario, hay algún problema de conexión con Oracle esta propiedad seguirá a "False" y se mostrará un mensaje con el error. Por ejemplo introduciendo una contraseña incorrecta aparecerá un mensaje como este:
Componentes de acceso a tablas de Oracle en DelphiAhora añadiremos dos componentes más que se enlazarán con el Database anterior, un TTable y un TQuery y dos DataSource que enlazarán con los anteriores respectivamente. El TTable y el TQuery se encuentran en la misma pestaña que el Database de la paleta de componentes, el DataSource se encuentra en la pestaña "Data Access": El módulo de datos quedará así: Enlazaremos los componentes, para ello modificaremos las propiedades siguientes en cada uno de ellos:
Añadir componentes visuales para mostrar los datos de la tabla Oracle en la aplicación DelphiAhora abriremos el Form1 (formulario que se crea automáticamente al crear la aplicación), tras abrirlo pulsaremos en "File" - "Use Unit" y seleccionaremos el Data Module llamado en nuestro caso "Unit2":
Compilación y prueba de la aplicación en funcionamientoPor último compilaremos la aplicación pulsando F9 o desde el menú "Run" - "Run" y veremos el resultado (nos pedirá usuario y contraseña): En el grid de arriba (el que enlaza con el Table1) podremos probar a insertar (pulsando la tecla Insert), modificar (escribiendo directamente sobre el campo y registro a modificar) y eliminar registros (pulsanod Control + Sup) siempre y cuando las reglas de integridad referencial y los permisos del usuario lo permitan. En cambio, el grid de abajo (el que enlaza con el Query1) no es modificable, es de sólo lectura, pues proviene de una consulta SQL. Por supuesto este formulario es mejorable, por ejemplo añadiendo un DBNavigator (barra de botones que incorpora Delphi para modificar, eliminar, añadir registros, actualizar los datos, ir al principio, último, anterior y siguiente, ...), que nos permitirá realizar una serie de acciones a la tabla que lo enlacemos sin añadir código fuente. Añadiremos este componente y lo enlazaremos mediante la propiedad "DataSource" a la tabla de Oracle que queramos (TTable o TQuery):
Con esto sería suficiente para visualizar y modificar tablas de Oracle sin código fuente. Pero, lógicamente, no es la forma idónea para hacerlo pues no se controlan determinados errores que se puedan producir tales como introducción de fechas, números, etc. Pero con este artículo demostramos que, sin duda alguna, Delphi es uno de los lenguajes de programación de alto nivel más eficientes para realizar aplicaciones de acceso a base de datos. Descarga freeware del código fuente del ejemplo de acceso de Delphi a Oracle con ODBCPara descargar el código fuente (source code) 100% open source de este ejemplo, puedes registrarte gratuitamente aquí y podrás descargar el código fuente completo (Source Code - Open Source) de la aplicación en esta URL: Acceso a Oracle mediante Delphi sin utilizar código fuente ANEXOTecnologías empleadas para realizar este artículoHemos utilizado un único equipo con las siguientes características:
Para realizar este manual se ha utilizado Borland Delphi 6, Oracle Database 9i y Microsoft Windows XP Professional. Acceso a otros motores de base de datos con Delphi y ODBCPara este artículo hemos utilizado Oracle 9i, pero este ejemplo serviría para cualquier motor de base de datos que admita conexión por driver ODBC (Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, Informix, Microsoft Access, Paradox, DBase, Ingres, SQLite, etc). Para ello será suficiente con instalar el cliente (en caso necesario) y el origen de datos ODBC correspondiente al motor utilizado. El resto de los pasos es similar. La gran ventaja de utilizar ODBC es que la aplicación se hace casi transparente al motor de base de datos utilizado, por lo que podremos cambiar de un motor de base de datos a otro casi sin modificar el código fuente. Incluso podremos preparar nuestra aplicación para que el usuario pueda elegir el motor de base de datos a utilizar. En cambio, el acceso nativo, si bien suele ser más rápido y eficiente, presenta el inconveniente de que las aplicaciones con acceso nativo a un motor de base de datos concreto suelen ser más difíciles de adaptar para que utilicen otro motor. A veces hay que cambiar todos los componentes de acceso a datos o incluso parte del código. Además, el acceso nativo implica el uso de componentes adicionales de terceros que en algún momento pueden dejar de publicar nuevas versiones y por ello soporte para las nuevas versiones de los motores de bases de datos (Oracle, MySQL, Firebird, PostgreSQL, SQLite). Artículos relacionados
CréditosArtículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft. Nota: Revisado por AjpdSoft el 05-04-2011. Revisado por AjpdSoft el 02-10-2009. Anuncios
Enviado el Jueves, 19 mayo a las 21:17:25 por ajpdsoft
|
|