BLOG

Acceso a bases de datos externas

Por [N4] vromero.velneo el | 6 Comments

Acceso a bases de datos externasA partir de la versión 7.2 de Velneo V7, disponemos de acceso a bases de datos externas, y siguiendo con la filosofía de Velneo V7, dicho acceso es multiplataforma, si bien puede haber alguna pequeña diferencia implicita e inevitable según la plataforma.

Esta primera versión dispone de acceso para ODBC, SQLite v3 y PostgreSQL para Windows. Para Linux y Mac OS también son operativos, pero puede ser necesario instalar componentes de terceros para su funcionamiento.

Entendemos que con el acceso por ODBC cubrimos la mayoría de necesidades para acceder a otras bases de datos, como puede ser Oracle o MySQL. No obstante, puede surgir la pregunta de, ¿puedo funcionar con un driver nativo para conectarme?, la respuesta es sí. Al final del artículo explicaremos cómo.

Vamos a pasar a explicar cómo conectarnos a una base de datos externa. El modo de funcionamiento se realiza a través de un proceso/evento de manera similar a como se hacía en 6.X, si bien hay algunas diferencias. A continuación vemos un ejemplo de uso que iremos comentando con detalle:

Evento con acceso a base de datos externa por ODBC

La primera linea es:
BD: Crear manejador( Identificador, Driver, Cadena de conexión / DSN / Nombre de la base de datos, Opciones de conexión, IP/Host, Puerto)

Parámetros del comando "BD: Crear manejador"

En el manejador pondremos el nombre del identificador que deseamos darle a la conexión, y en “driver” seleccionaremos en un combo, que driver queremos utilizar. Al desplegar el combo, se mostrarán únicamente los drivers disponibles en el sistema.

El siguiente parámetro es el más variable, ya que según el driver seleccionado, su contenido cambiará significativamente. Si el driver seleccionado es ODBC, debemos poner, o bien la cadena de conexión para conectarnos a la base de datos seleccionada, o bien el nombre del origen de datos DSN de nuestro sistema donde hemos configurado dicha conexión. Si el driver seleccionado no fuese ODBC, lo habitual en este campo será escribir el nombre de la base datos a la que nos conectaremos.

Parámetro “Opciones de conexión” (Opcional): Este parámetro permite modificar los valores por defecto de una conexión, los cuales son fijados por el driver seleccionado. Para modificar el contenido de este parámetro, debemos remitirnos a la documentación de cada driver. En nuestro ejemplo está en blanco ya que la cadena de conexión del parámetro anterior define todo lo que necesitamos.

Parámetro “dominio o IP del servidor” (Opcional): Indica el nombre o IP donde está el servidor. En nuestro caso, como esa información ya está definida en la cadena de conexión del driver ODBC, no es necesario especificarlo nuevamente.

Parámetro “Puerto” (Opcional): En caso de querer usar un puerto distinto al definido por defecto por el driver debe indicarse aquí. En el caso de ODBC, si este parámetro se indicase en la cadena de conexión, no sería necesario duplicar aquí la información.

Siguiendo con la ejecución del proceso, vemos que la siguiente linea abre la conexión a la base de datos. Para ello especificamos el manejador, usuario y password si fuese necesario (en nuestro ejemplo están en blanco ya que se especificaron en la cadena de conexión), también especificamos el parámetro de retorno BOK para saber si ha sido o no posible conectarse con la configuración definida, y el parámetro de retorno SZMENSAJE, que contendrá en caso de una conexión fallida el texto que el driver nos ha devuelto especificando el motivo por el que no ha sido posible conectarse.

La siguiente instrucción lanza una sentencia cualquiera SQL, en nuestro ejemplo una select. Vemos que tenemos un parámetro NUM donde se devolverán el número de filas afectadas por la consulta (el número de filas devueltas para una select o el número de filas modificadas si la sentencia fuese un update).
El resto del proceso se puede intuir fácilmente, se recorren todos los registros de la select, y en caso de encontrar un registro cuya columna “nombre” sea igual a “administrador” deja de recorrer los registros, saliendo así del proceso.

Creando nuestros propios plugins de conexión nativa
El usuario es libre de compilar plugins para acceder de forma más optimizada a dichas bases de datos, y vDevelop detectará automáticamente dichos plugins para su selección y uso. Pero ¿como hacer dichos plugins si no quiero usar ODBC?, como sabéis para el desarrollo de la plataforma v7, se usan las librerías de Qt, por lo que los plugins de acceso a base de datos deben ser construidos en base a sus instrucciones. En la siguiente dirección podemos encontrar toda la información necesaria: http://doc.trolltech.com/4.5/sql-driver.html

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

6 Responses to "Acceso a bases de datos externas"
  1. Jorge dice:

    ¿Existe un comando para cerrar la conexión?. Actualmente accedo con 6.x a Oracle via ODBC pero tengo el problema de que no cierra las conexiones y hay que cerrarlas a mano en Oracle. Pasaría esta aplicación a V7 si me resuelve este problema.

  2. jaaguilar dice:

    Me parece muy interesante este artículo, porque estoy muy interesado en velneo, pero, aunque se lo que me vais a decir; quisiera que los datos siguieran en oracle, como tengo ahora, y mañana, ya veremos… que será será whatever will be will be.
    En cuanto a rendimiento; ¿sería similar al rendimiento que se obtiene con velneo sobre su propia estructura de datos?
    Sería interesante que el equipo de velneo soportara estos conectores a oracle de forma nativa.

  3. [N2] JuanJex dice:

    Amigos como podria hacer para conectarme a una bd Acces pero la quiero en el servidor por q necesito importar datos a tablas de velneo, ya subi la base en el servidor pero no se como construir la cadena de conexion?
    Atte.
    Juan

Deja un comentario

Esta web utiliza cookies. Si continúa navegando acepta dichas cookies y nuestra política de cookies. Gracias. ACEPTAR

Aviso de cookies