Envolviendo la API de Firebird/Interbase CoNaIISI 2013 UTN FRC Mg. Guillermo Cherencio.

Slides:



Advertisements
Presentaciones similares
Instalación de wordpress
Advertisements

Fundamentos de Base de Datos
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Conexión a Bases de Datos
Curso de PHP Tema 1: Introducción.
PROMODAG REPORTS para Microsoft Exchange Server
Acceso a Bases de Datos con Java
Todo el Software necesario puede ser conseguido por separado. Para facilitar la puesta al punto del ambiente, nosotros utilizaremos una herramienta particular.
Desarrollo de sitios web con PHP y MySQL
PHP: Acceso a Bases de Datos
LEgo Java Operating System (LeJOS)
Acceso a bases de datos con MySQL y ODBC desde PHP
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Acceso a bases de datos MySQL en PHP
Desarrollo de Aplicaciones para Internet
Principales Valores SGI Toolkit se presenta como una nueva capa de desarrollo sobre SDK de SAP B1 que aumenta sustancialmente el potencial de desarrollo.
Utilidades de compresión y descompresión de archivos
UNIVERSIDAD NACIONAL DE LOJA Carrera de Ingeniería en Sistemas
Conexión a Base de Datos con NetBeans
GRUPO: SILVIA PAZMIÑO BELEN AGUILERA JUAN JOSE PARRA
SERVIDOR DE CONTENIDOS
Desarrollo de aplicación DICOM mediante librerías JDT
Francisco Moreno Bases de Datos II Universidad Nacional
ENLACES DE INTERES PAGINA OFICIAL:
INSTALACIÓN Y MANTENIMIENTO SO ADMINISTRACIÓN SO LINUX.
Desarrollo de sitios web con PHP y MySQL
APROWEB el Software para administración de proyectos
Control de versiones usando PowerBuilder y Subversion
Problema a Resolver: mostrar por pantalla el mensaje “Hola Mundo!”
PROCESO DE DESCARGA, INSTALACIÓN Y CONFIGURACIÓN DE LA BASE DE DATOS ORACLE EXPRESS EDITION 11g Y ORACLE SQLDEVELOPER.
Manejo de las bases de datos
Práctica Profesional MySql - PHP. IS 185 Profesor: MOLINA, Carlos PHP acceso a MySQL Algunas funciones que provee PHP para el manejo de bases de datos.
Free Pascal 1. Introducción 2. Instalación 3. Uso 4. Documentación 5. Información Adicional.
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
Ing. Eddye Sánchez Castillo. Las principales temas de este capitulo son:  Conectarse al Servidor MySql  Conectarse a la Base de Datos  Enviar Consultas.
Lab 10 – Integración de CLIPS con C++ y JAVA
Laboratorio I: Configuración de eclipse. Eclipse entorno de programación desarrollado por la Eclipse Foundation –entorno de programación: es un conjunto.
Manipulación de datos con Kettle
UNIVERSIDAD TECNOLÓGICA ECOTEC. ISO 9001:2008 Julio Carranza Rabih Safadi 1.
PAGINAS DINAMICAS PHP. INTRODUCCION PHP (Profesional Home Pages - Páginas Personales Profesionales) es un lenguaje para la creación de páginas web incrustado.
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Desarrollo de sitios web con
OWASP - A6 Open Web Application Security Project Riesgo por: Configuración Defectuosa de Seguridad Guillermo David Vélez Álvarez C.C. 71' 763,346.
UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO MODULO IV ADMINISTRACIÓN DE BASES DE DATOS Administración del DBMS E.I. L.E. Prof. Ramón Castro Liceaga SEMINARIO.
Visual SUBVERSION.
Lenguajes de programación Web
Aprenda MySQL en 120 minutos Tutorial. Dirigido a...
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
Microsoft RMS Headquarters
Especialista en Business Intelligence Integration Services SSIS Paquetes y Tareas de Flujo de Datos Microsoft SQL Server 2008 R2 Suscribase a
Auditoría del Sistema ¿Qué es una Auditoría de una BD? Controlar y registrar las acciones de determinados usuarios de la BD. A nivel SO vs a nivel del.
Java Data Base Connectivity
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Cristian Fonnegra Marin
AppServ, XAMPP Apache: Servidor Web PHP: Aplicaciones
MySQL LENGUAJE SQL.
Manual violento de Navicat
UNIVERSIDAD TECNOLÓGICA ECOTEC. ISO 9001:2008 REQUISITOS PARA LA INSTALACION DE JOOMLA GRUPO: MICHELLEORELLANA CARLOS ZAMBRANO ARTURO ZAMBRANO Ing. Ángela.
Tema 11 Bases de Datos y el Lenguaje SQL
Ing. Lorena Ruhl - Marco Rapallini - Javier FabiánMódulo 3: Integración de PHP con Bases de Datos Ing. A. Lorena Ruhl Universidad.
Stored Procedures vs. Programación Tradicional
WINDOWS SERVER 2008 r2 ADMINISTRACION DE RECURSOS: Con el Administrador de recursos del sistema de Windows del sistema operativo Windows Server® 2008 R2,
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Desarrollo y servicios web Luisa Fernanda Rincón Pérez
CONEXIÓN DE BASE DE DATOS EN LOCALHOST CON MYSQL Israel Tantani Ramos INF-272.
 Trabaja con el esquema relacional surgido en los laboratorios de IBM  La instalación completa ocupa alrededor de 10 Mb incluyendo librerías, ejemplos.
Ing. Sanchez Castillo Eddye Arturo Escuela Académica Profesional de Ingeniería de Sistemas.
Implementación Asistida BD Firebird/Interbase SQL Server
Implementación Asistida BD Firebird/Interbase SQL Server
Transcripción de la presentación:

Envolviendo la API de Firebird/Interbase CoNaIISI 2013 UTN FRC Mg. Guillermo Cherencio

¿Qué es Firebird? Base de Datos Relacional Open Source Deriva de Interbase (Borland/Inprise) PL/SQL (funciones, stored procedures, triggers, etc) Windows / Linux Herramientas

Instalación Firebird Artículo en stalacion.firebird.2.5.pdf En Debian: $ aptitude install firebird2.5-super $ dpkg-reconfigure firebird2.5-super Activar Servidor Usuario administrador: sysdba/masterkey Rol administrador: sysdb

¿Cómo uso Firebird? C++ librería IBPP Java driver JDBC/JCA Jaybird PHP php_interbase.dll / php_interbase.so Python driver FDB... C solo API C Firebird disponible !!

¿Por qué no usar API C? Complejidad: Dificultad, Curva de Aprendizaje, Manual 442 pag., tipos de datos, estructuras poco abstractas, etc. Clasificación de queries en 4 categorías Portabilidad Aislación SGBD...

Solución: Envolver API Proyecto sourceforge: libfb Incluye libcgi +Abstracción +Aislación +Facilidad de uso +Tipos de datos simples LGPL

¿Cómo utilizar libfb? Descargar (libfb.zip): Descomprimir libfb.zip: $ unzip libfb.zip Compilar: $ make

¿Cómo utilizar libfb? (II) Archivo de libreria estática: libfb.a Archivo de libreria dinámica: libfb.so Archivo de cabecera: libfb.h

¿Cómo utilizar libfb? (III) Ejemplos de código: /libfb/examples/*.c Base de Datos Firebird 2.5 de ejemplo: /libfb/examples/isft.fdb Documentación html: /libfb/doc/html/index.html Documentación latex: /libfb/doc/latex

¿Cómo utilizar libfb? (IV) Compilar ejemplo de libfb/examples: $ gcc -Wall -o fbquery1 -I -L -lfb fbquery1.c directorio en donde se encuentra libfb.h directorio en donde se encuentra libfb.a

Instalar BD Ejemplo Usando cuenta root En carpeta de descarga libfb.zip: $ cp libfb/examples/isft.fdb /var/lib/firebird/2.5/data $ chown firebird:firebird /var/lib/firebird/2.5/data/isft.fdb Arrancar Servidor Firebird sql (start/stop): $ /etc/init.d/firebird2.5-super start

Instalar BD Ejemplo Usando cuenta root En carpeta de descarga libfb.zip: $ cp libfb/examples/isft.fdb /var/lib/firebird/2.5/data $ chown firebird:firebird /var/lib/firebird/2.5/data/isft.fdb Arrancar Servidor Firebird sql (start/stop): $ /etc/init.d/firebird2.5-super start

Ejecutar Ejemplos Con usuario no root Utilizan BD isft.fdb Habiendo compilado en carpeta libfb/examples: $./fbquery1 Salida por consola

Conexión/Desconexión fb_db_info dbinfo; fb_pre_connect(&dbinfo, "localhost:/.../x.fdb", “sysdba”, "masterkey", "sysdb"); if (fb_do_connect(&dbinfo)) { // se conecto ok! // ****SU CONSULTA AQUI**** fb_do_disconnect(&dbinfo); }

Consultas en libfb SQL No SQL (nombre tabla/view/select procedure) Función callback y eventos para mayor control Resultados como lista doblemente enlazada Nodo = tupla Nodo con arreglo de punteros a los valores de cada campo El usuario no requiere usar punteros

Ejemplo Consulta No SQL (I) query *myquery; char *squery = "Mitabla"; if ( (myquery=fb_do_single_query(&dbinfo, squery)) != NULL ) { printf("Recupero %d filas\n",myquery->rows); rquery *q = myquery->top; // ***AQUI RECUPERO TUPLAS*** fb_free(myquery); }

Ejemplo Recupero de tuplas (I)... rquery *q; for(q = myquery->top;q;q=q->next) printf("[%s][%s]\n", fb_get_col(myquery,q,0), fb_get_col(myquery,q,1));...

Ejemplo Recupero de tuplas (II)... rquery *q; for(q = myquery->top;q;q=q->next) printf("[%s][%s]\n", fb_get_col_byname(myquery,q,”codigo”), fb_get_col_byname(myquery,q,”descr”));...

Ejemplo Consulta SQL (I) query myquery; fb_init(&myquery); if ( fb_do_query(&dbinfo,1,"SELECT...", OnDoGenericQuery,&myquery) ) { // ***AQUI RECUPERO TUPLAS*** fb_free(&myquery); }

Ejemplo Consulta SQL (II) query *myquery; char *squery = "SELECT..."; if ( (myquery = fb_do_single_query(&dbinfo, squery)) != NULL ) { // ***AQUI RECUPERO TUPLAS*** fb_free(myquery); }

Ejemplo Ejecuto Procedure (I) char *squery = "EXECUTE PROCEDURE...” ; query myquery; fb_init(&myquery); if ( fb_do_query(&dbinfo, 1, squery, onDoGenericQuery, &myquery) ) { // ***PROC EJECUTADO OK!!*** fb_free(&myquery); } else { // ***ERROR EN EJECUCION PROC !!*** }

Ejemplo Ejecuto Procedure (II) char *squery = "DELETE FROM...” ; query myquery; fb_init(&myquery); if ( fb_do_cmd(&dbinfo, squery) ) { // ***PROC EJECUTADO OK!!*** fb_free(&myquery); } else { // ***ERROR EN EJECUCION PROC !!*** }

Conexión, Consulta, etc (I) char *sql = "TBL_PLANE"; query *myquery; if ((myquery = fb_do_connect_squery("localhost:/var/...", "sysdba", "masterkey", "sysdb", sql)) != NULL) { // ***AQUI RECUPERO TUPLAS*** fb_free(myquery); } else { // ***ERROR !!*** }

Otras “Features” (I) Consultas parametrizadas ( select.. legajo = ?) Soporte para arreglos, blob, etc. Uso de función de callback provista por librería (onDoGenericQuery) Uso de función de callback provista por el usuario Manejo Errores SQL

Otras “Features” (II) Exportación de queries a archivo Uso de funciones para recupero de tuplas sin utilizar punteros Info de Base de Datos / Servidor Soporte para eventos Firebird Log de errores Activación/Desactivación de mensajes de error

PREGUNTAS ¿? MUCHAS GRACIAS POR SU ATENCION!! Mg. Guillermo Cherencio UTN FRD – UNLu – ISFT 189