CloudaIDE framework

2 comentarios

Poder terminar nuestras aplicaciones más rápidamente siempre es beneficioso para nosotros. CloudaIDE framework sirve justamente para eso. Crea aplicaciones «en la nube». Y es gratis.

Captura 1. Si haces clic en la imagen la verás más grande

Importante: Requiere Windows de 64 bits o Linux de 64 bits.

Algo muy bueno es que no tiene restricciones para Firebird. O sea que las funcionalidades que son pagas para MySql, PostgreSql, y Oracle, son gratis para Firebird.

Puede ser descargado desde:

http://cloudaide.org/index.html

En esa página hay también un vídeo explicativo que demuestra lo fácil que es usar a CloudaIDE framework. Y algo muy bueno de ese vídeo es que está basado en una Base de Datos de … Firebird.

Así que si tienes intenciones de desarrollar aplicaciones para «la nube», este programa puede resultarte de gran ayuda y deberías probarlo.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

EMS SQL Manager ha sido actualizado para Firebird 3

5 comentarios

El programa administrador de bases de datos EMS SQL Manager desde el 9 de noviembre de 2016 ya ofrece soporte para las características y mejoras que fueron introducidas con Firebird 3.

ems01

Esto facilitará la migración de las bases de datos a Firebird 3 a aquellos que están acostumbrados a trabajar con este administrador gráfico.

Artículos relacionados:

El índice del blogFirebird21

El foro del blog Firebird21

 

Firebird Stored Procedure Generator

9 comentarios

Si te aburre escribir stored procedures y te gustaría automatizar esa tarea, puedes usar para ello un programa gratuito llamado Firebird Stored Procedure Generator, el cual puedes descargar desde:

http://www.sieradelta.com/Products/FBSPGen.aspx

Los comandos que puedes automatizar son:

  • INSERT
  • UPDATE
  • UPDATE OR INSERT
  • DELETE
  • SELECT
  • SELECT ALL
  • SELECT PAGE
  • COUNT

Cuando ejecutes al programa, después de descargarlo e instalarlo, verás una pantalla similar a la siguiente:

fspg01

Captura 1. Si haces clic en la imagen la verás más grande

Al hacer clic sobre el botón «Next», verás la siguiente pantalla, en la cual deberás ingresar los datos de la Base de Datos con la cual deseas trabajar:

fspg02

Captura 2. Si haces clic en la imagen la verás más grande

Para asegurarte que has escrito bien los parámetros de conexión puedes hacer clic en el botón «Test Connection». Si la conexión puede realizarse exitosamente, verás una pantalla similar a la siguiente:

fspg03

Captura 3. Si haces clic en la imagen la verás más grande

Si luego haces clic sobre el botón «Next», verás una pantalla similar a la siguiente:

 

fspg04

Captura 4. Si haces clic en la imagen la verás más grande

Al hacer clic en el botón «Load Objects» le dirás que cargue todas las tablas de tu Base de Datos para que pueda luego utilizarlas en los stored procedures que te generará el programa.

fspg05

Captura 5. Si haces clic en la imagen la verás más grande

En este caso se seleccionó la tabla CUENTAS y por eso nos mostró todas las columnas de la tabla CUENTAS. El siguiente paso es seleccionar las columnas por las cuales se puede ordenar la tabla y seleccionar el generador (secuencia) que le corresponde a esta tabla.

fspg06

Captura 6. Si haces clic en la imagen la verás más grande

 El siguiente paso es decirle cuales son los prefijos que nos gustaría usar para nombrar al stored procedure, a sus variables, y a sus parámetros. Desde luego que podremos cambiarlos más adelante si no nos gustan.

fspg07

Captura 7. Si haces clic en la imagen la verás más grande

Luego, elegimos el tipo de stored procedure que queremos generar:

fspg08

Captura 8. Si haces clic en la imagen la verás más grande

Luego, si lo deseamos, podemos escribir los nombres de los usuarios y los nombres de los roles que tendrán permiso para ejecutar al stored procedure que estamos creando. Debemos escribir un usuario o un rol en cada línea:

fspg09

Captura 9. Si haces clic en la imagen la verás más grande

A continuación generaremos el stored procedure haciendo clic sobre el botón «Generate».

fspg10

Captura 10. Si haces clic en la imagen la verás más grande

Si deseamos copiar el stored procedure en el portapapeles, hacemos clic sobre el botón «Copy».

Si queremos guardar el stored procedure en un archivo de script, hacemos clic sobre el botón «Save».

Finalmente, en la siguiente pantalla, si deseamos guardar la configuración para un uso futuro,  hacemos clic sobre el botón «Save»

fspg11

Captura 11. Si haces clic en la imagen la verás más grande

Conclusión:

Escribir stored procedures largos puede ser bastante tedioso. Gracias a este programa: Firebird Stored Procedure Generator podremos realizar esa tarea mucho más rápidamente y sin aburrirnos.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Herramientas para Firebird de Devart

Deja un comentario

Devart es una empresa que desarrolla software para motores de bases de datos, entre ellos Firebird.

Tiene oficinas en la República Checa y en Ucrania.

Lo que tiene para ofrecernos es:

Firebird ODBC driver. Que podemos encontrar en: https://www.devart.com/odbc/firebird/

Interbase and Firebird Data Access Components. Es una biblioteca de componentes que provee conexión nativa desde Delphi, C++ Builder, Lazarus y FreePascal. Podemos encontrar en: https://www.devart.com/ibdac/

dbExpress Driver for Interbase and Firebird. Es una interface para rápido acceso a las bases de datos de Firebird, que puede ser utilizado con Delphi y C++ Builder. Podemos encontrar en: https://www.devart.com/dbx/interbase/

– ORM for Delphi with LINQ support works with Firebird. Es un ORM (Object Relational Mapping) que tiene soporte para LINQ (Language Integrated Query), lo cual unifica el código y hace las consultas mucho más rápidas. Podemos encontrar en: https://www.devart.com/entitydac/

– Universal (all databases) Data access components for Delphi, C++ Builder, Lazarus. Es una biblioteca de componentes que provee acceso directo a múltiples bases de datos de diversos motores, entre ellos: Oracle, SQL Server, MySQL, InterBase, Firebird, PostgreSQL, SQLite, DB2, Access, Sybase Advantage Database Server, Sybase Adaptive Server Enterprise, y otras bases de datos si se usa ODBC. Podemos encontrarlo en: https://www.devart.com/unidac/

Conclusión:

Siempre es útil contar con herramientas que nos faciliten el trabajo, así que descargar y evaluar lo que tiene para ofrecernos Devart puede ser una buena idea.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Usando Database Comparer en línea de comandos

4 comentarios

En el artículo:

https://firebird21.wordpress.com/2013/06/10/database-comparer-de-clever-components/

ya habíamos hablado sobre un programa muy bueno para comparar bases de datos llamado Database Comparer, de la empresa Clever Components.

Pues bien, ese programa además de permitirnos interactuar con él por medio del GUI (Graphical User Interface) también nos permite ejecutarlo a través de la línea de comandos, como veremos ahora.

¿Y para qué nos serviría ejecutarlo a través de la línea de comandos?

La utilidad más normal de esta característica es que podemos automatizar el proceso en nuestra aplicación (o sea, en el archivo .EXE que nosotros creamos y que los usuarios ejecutan).

En nuestro .EXE podemos hacer que la comparación (y actualización, si es necesaria) se haga en forma automática o cuando el usuario haga clic sobre algún botón.

Veamos la situación:

Estamos desarrollando un sistema de contabilidad que será usado por muchos estudios contables. Un estudio contable normalmente lleva la contabilidad de muchos clientes. Como sabemos que no es bueno tener en una sola Base de Datos a todos los clientes del estudio contable sino que lo recomendable es que cada uno de sus clientes tenga su propia Base de Datos nos encontramos con un problema.

¿Cuál es el problema?

Que la estructura de una Base de Datos (es decir, sus metadatos) no es fija, por mucho que la hayamos analizado siempre cabe la posibilidad de que alguna vez debamos crear una tabla, o modificar una existente, agregarle índices, vistas, stored procedures, triggers, etc.

Si el estudio contable solamente tuviera uno o dos clientes sería muy sencillo. Con la GUI de Database Comparer en un ratito actualizaríamos las bases de datos y listo, a otra cosa.

Pero lo normal es que los estudios contables tengan decenas o centenas de clientes, y allí la actualización manual ya se vuelve muy impráctica, demora mucho tiempo, y existe la gran posibilidad de no actualizar todas las bases de datos o hacerlo de manera equivocada (actualizando al revés), con la consecuencia de que podrían perderse muchos datos y todos los trastornos que eso ocasionaría.

El comportamiento adecuado

Ante una situación como la antedicha, ¿qué es lo mejor?

  1. Creamos una Base de Datos vacía, modelo, que solamente tiene los metadatos. Por ejemplo la llamamos MASTER.FDB
  2. Por cada cliente del estudio contable tenemos una Base de Datos que cuando se agregó ese cliente simplemente se copió físicamente a MASTER.FDB para tener la Base de Datos del cliente. Así podríamos tener ALICIA.FDBGRACIELA.FDB, SUSANA.FDB, etc., las cuales inicialmente eran una simple copia de MASTER.FDB y después se les fueron agregando los datos que les correspondían.
  3. Cuando debemos cambiar algo en la Base de Datos, la única Base de Datos que tocamos, la única con la cual trabajamos es MASTER.FDB
  4. Cuando el usuario abre una Base de Datos, nuestro programa .EXE compara la versión de MASTER.FDB con la versión de la Base de Datos que él abrió. Por ejemplo, si abrió GRACIELA.FDB se compara a MASTER.FDB con GRACIELA.FDB
  5. Para comparar a ambas bases de datos lo mejor es que tengan una tabla, por ejemplo llamada VERSION con una columna llamada por ejemplo VER_NUMERO. Si el número de versión de MASTER.FDB es más nuevo que el número de versión de GRACIELA.FDB entonces estamos seguros de que GRACIELA.FDB debe ser actualizada
  6. Si descubrimos que GRACIELA.FDB debe ser actualizada, entonces nuestro programa .EXE ejecuta a Database Comparer con sus parámetros de la línea de comandos
  7. De esta manera, no importa si el estudio contable tiene cientos de bases de datos, cada vez que el usuario abra una de esas bases de datos se la comparará con MASTER.FDB y en el caso de que la versión de MASTER.FDB sea más nueva entonces se actualizará la Base de Datos que el usuario abrió.
  8. Y estaremos seguros de que sea cual sea la Base de Datos que el usuario abra, y aunque hayan pasado meses o años desde la última vez que la abrió, siempre estará correctamente actualizada.
  9. Lo único que debemos recordar es que cada vez que cambiamos algo en MASTER.FDB debemos actualizar la columna VER_NUMERO de la tabla VERSION, escribiendo un número que sea mayor que el que existía ahí.

La interfaz de línea de comandos de Database Comparer

Si abrimos una ventanita «Símbolo del sistema», nos ubicamos en una carpeta donde se encuentre el programa DBCOMPARER.EXE y lo ejecutamos con la opción /? veremos las opciones disponibles.

DBCOMPARER

Captura 1. Si haces clic en la imagen la verás más grande

Ejemplo de uso

Al programa DBCOMPARER.EXE podemos copiarlo en cualquier carpeta, no es necesario ni obligatorio ejecutarlo en la carpeta donde fue instalado. Lo mejor generalmente es copiar a DBCOMPARER.EXE y al archivo IBDB_CMP.CFG (donde se guardan los alias, las ubicaciones de las bases de datos, etc.) a la misma carpeta donde se encuentra nuestro programa .EXE

DBCOMPARER2

Captura 2. Si haces clic en la imagen la verás más grande

Al escribir el comando anterior lo que hacemos es decirle a DBCOMPARER que compare a la Base de Datos cuyo alias en ese programa es MASTER con la Base de Datos cuyo alias en ese programa es PRUEBA1. Si hay diferencias entonces PRUEBA1 cambiará para que sus metadatos sean idénticos a los metadatos de MASTER.

Cuando el programa finalice, estaremos seguros de que ambas bases de datos tienen exactamente la misma estructura.

Conclusión:

Database Comparer es una muy buena aplicación para comparar las estructuras de las bases de datos y para hacer que sean idénticas en caso de que tengan diferencias.

Si las bases de datos a comparar son pocas, el proceso puede ser realizado manualmente, es muy sencillo, nada complicado.

Pero si las bases de datos son muchas, entonces hacerlo manualmente demorará mucho tiempo y además se corre el riesgo de no compararlas a todas o de compararlas en el sentido erróneo. Por lo tanto es mucho mejor automatizar ese proceso.

La interfaz de línea de comandos justamente nos permite automatizar la comparación y actualización. Por eso, es conveniente usarla.

Enlaces:

http://www.clevercomponents.com/products/dbcomparer/index.asp

http://www.clevercomponents.com/products/index.asp

http://www.clevercomponents.com/downloads/index.asp

Artículos relacionados:

Database Comparer de Clever Components

El índice del blog Firebird21

El foro del blog Firebird21

Programa para configurar al Firebird

Deja un comentario

En un artículo ya habíamos visto como configurar al Firebird:

Configurando al Firebird

pero lo hacíamos de forma manual. Si queremos configurarlo a través de una interface gráfica entonces podemos usar un programa creado por Jhonny Suárez, que podemos descargar desde:

http://sourceforge.net/projects/firebirdconfig/files/firebirdconfig/FirebirdConfig%200.2.0.39/

Allí encontraremos varios archivos, generalmente lo más recomendable es descargar el instalador, como vemos aquí:

FIREBIRDCONFIG1

Captura 1. Si haces clic en la imagen la verás más grande

Después de descargarlo, instalarlo, y ejecutarlo, veremos una pantalla similar a la siguiente:

FIREBIRDCONFIG2

Captura 2. Si haces clic en la imagen la verás más grande

¿Para qué sirve este programa?

Lo normal es que cuando necesitamos configurar al Firebird lo hagamos modificando el archivo FIREBIRD.CONF, pero no es tan amigable como configurarlo usando FIREBIRDCONFIG.EXE

O sea que nos facilita la tarea de configuración.

Lo que debemos recordar es que:

  1. Debemos grabar los cambios realizados haciendo clic sobre el botón «Save«
  2. Los cambios realizados tendrán efecto solamente después que hayamos reiniciado el Servidor del Firebird. Mientras no reiniciemos el Servidor nada habrá cambiado.

Artículos relacionados:

Configurando al Firebird

Alias, archivos y rutas

Restringiendo el acceso a las Bases de Datos

¿En cual carpeta tener las Bases de Datos?

Descargar gratis archivos de configuración

Usando Firebird con procesadores multinúcleo

Acelerando los SORT

Entendiendo «forced writes»

Forced writes

El índice del blog Firebird21

El foro del blog Firebird21

Enterprise Architect – Modelado de Bases de Datos al más alto nivel

1 comentario

Crear una Base de Datos compleja es una tarea que nos tomará mucho tiempo completar y siempre estaremos propensos a cometer errores.

Con las bases de datos sencillas no hay problema, pero el tema es cuando la que debemos crear tendrá cientos de tablas, cientos o miles de triggers, miles de stored procedures, miles de vistas, etc.

La probabilidad de cometer errores en estos casos es muy alta, muchas veces los detectamos tarde, y eso tiene un gran costo en tiempo y en dinero que debemos emplear en corregirlos.

¿Qué hacemos en ese caso?

Pues una muy buena decisión es usar un programa que nos ayude con la tarea desde el principio, así será más difícil que cometamos errores. Y dentro de los programas de modelado uno que resalta por su potencia, rapidez, y facilidad de uso es Enterprise Architect. Y además funciona con Firebird.

El programa no es gratis, pero tiene una versión de prueba (free trial) que nos permitirá conocer como funciona y descubrir todas sus bondades.

Capturas de pantalla

A continuación, algunas capturas de pantalla del programa, para tener una idea de como es visualmente:

EA01

Captura 1. Si haces clic en la imagen la verás más grande

EA02

Captura 2. Si haces clic en la imagen la verás más grande

EA03

Captura 3. Si haces clic en la imagen la verás más grande

Descarga:

Puede ser cargado desde este enlace:

Enterprise Architect

Documentación:

El programa cuenta con una documentación excelente, aunque lastimosamente está toda en inglés. Hay un montón de webinarios, vídeos y tutoriales. ¿Por qué tantos? Porque el programa tiene demasiadas opciones y se necesita mirar mucha de su documentación para sacarle verdadero provecho, pero vale la pena hacerlo.

Webinarios

Vídeos

Tutoriales

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

Herramientas gratuitas de IBSurgeon

2 comentarios

La empresa IbSurgeon provee herramientas y servicios para Firebird, afortunadamente 3 de esas herramientas son gratuitas:

  • IbSurgeon Response Checker. Mide el tiempo que una consulta SQL tarda en devolver los resultados pedidos, eso es muy útil para descubrir cuando las consultas son lentas.
  • IbSurgeon DBInfo. Muestra estadísticas de las estructuras internas, para que los administradores y desarrolladores puedan ver cuantos datos, índices, blobs, y otro tipo de información las bases de datos almacenan.
  • IbSurgeon Log Viewer. Facilita ver y analizar el contenido del archivo FIREBIRD.LOG, en ese archivo hay mucha información útil que puede ser usada para encontrar y resolver problemas que tengan las bases de datos.

Estas herramientas gratuitas pueden ser descargadas desde:

http://ib-aid.com/en/ibsurgeon-free-tools/

Donde además encontrarán la documentación y más información sobre ellas.

Artículos relacionados:

El índice del blog Firebird21

El foro del blog Firebird21

 

Usando FBClone para copiar datos

6 comentarios

Hay un programa llamado FBClone que sirve para copiar el contenido de las tablas de dos bases de datos que tengan la misma estructura.

La Base de Datos destino no debe estar abierta.

Puedes descargar a FBClone desde aquí:

https://code.google.com/p/fbclone/downloads/list

En el archivo .ZIP está incluido el código fuente del programa, por si te interesa mirarlo.

FBClone no necesita ser instalado, lo copias en cualquier carpeta y lo ejecutas desde allí, pero para ejecutarlo debes abrir una ventana «Símbolo del sistema»

FBCLONE1

Captura 1. Si haces clic en la imagen la verás más grande

Las opciones que empiezan con -s (source) se refieren a la Base de Datos origen o sea la que enviará las filas. Las opciones que empiezan con -t (target) se refieren a la Base de Datos destino o sea la que recibirá las filas.

La Base de Datos destino no necesita estar en la misma computadora que la Base de Datos origen, pueden estar en computadoras distintas.

FBCLONE2

Captura 2. Si haces clic en la imagen la verás más grande

Conclusión:

Usar FBClone para realizar backups tiene las ventajas de que no debemos hacer un ciclo backup/restore y que podemos fácilmente copiar de una versión del Firebird a otra.

Pero no te olvides que las estructuras de las tablas de ambas bases de datos deben ser iguales. Y que nadie debe estar conectado a la Base de Datos destino.

Artículos relacionados:

Backup y Restore a una versión más nueva del Firebird

Los métodos para hacer Backup

El índice del blog Firebird21

Más sobre Trace Manager

2 comentarios

En este artículo del blog ya habíamos visto como se usa el programa FBTRACEMGR.EXE y cual es su utilidad:

Usando Trace Manager

ahora veremos otra característica muy interesante de ese programa: sesiones múltiples.

Cuando ejecutamos el programa podemos indicarle el nombre de la sesión y podemos tener varias sesiones ejecutándose simultáneamente y cada una de esas sesiones monitoreando distintas actividades.

¿Por qué haríamos algo así?

Porque si una sola sesión se encarga de monitorear todo entonces los resultados que obtendremos estarán todos mezclados. Estarán todos, sí, pero todos mezclados y por lo tanto realizar cualquier búsqueda en ellos nos puede hacer demorar mucho tiempo. Suele ser mejor separar las actividades.

Así, por ejemplo, podríamos tener una sesión que solamente se encargará de monitorear los INSERTs a las tablas, otra sesión se encargará de monitorear los UPDATEs, otra los DELETEs, otra los stored procedures, otra los triggers, etc. Esto nos permitirá tener todo más ordenado y las búsquedas serán rapidísimas.

Ejemplo 1: Queremos monitorear los INSERTs

Nuestro archivo de configuración podría ser algo como:

TRACE1

Captura 1. Si haces clic en la imagen la verás más grande

Y llamaríamos al programa FBTRACEMGR.EXE de esta manera:

TRACE2

Captura 2. Si haces clic en la imagen la verás más grande

Si ahora hacemos un INSERT en una tabla (por ejemplo en la tabla de BANCOS) escribiendo:

TRACE3

Captura 3. Si haces clic en la imagen la verás más grande

el FBTRACEMGR.EXE nos mostrará algo como esto:

TRACE4

Captura 4. Si haces clic en la imagen la verás más grande

¡¡¡BUENÍSIMO!!! No solamente vemos que ocurrió un INSERT en la tabla de Bancos sino también cual fue el comando que se escribió. Y mirando un poco más arriba también sabremos quien fue el usuario, la computadora, la fecha, la hora, el número de la transacción y los parámetros de la transacción. Un montón de información que nos será muy útil si estamos buscando errores.

Ejemplo 2: Queremos monitorear los UPDATEs

Ahora, nuestro archivo de configuración sería algo como:

TRACE5

Captura 5. Si haces clic en la imagen la verás más grande

Como puedes ver es muy parecido al anterior pero con el nombre de archivo y el filtro cambiados porque ahora lo que nos interesa es monitorear los UPDATE.

Lo interesante de esto es que si abrimos otra ventanita «Símbolo del sistema» y en esta nueva ventanita ejecutamos al programa FBTRACEMGR.EXE con este archivo de configuración entonces tendremos dos sesiones: una que se encarga de monitorear a los INSERTs y otra que se encarga de monitorear a los UPDATEs. Muy bueno.

TRACE6

Captura 6. Si haces clic en la imagen la verás más grande

Usamos la ventanita (1) para escribir comandos SQL, cuando uno de esos comandos es un INSERT la ventanita (2) nos mostrará sus datos y cuando el comando es un UPDATE entonces la ventanita (3) será la que mostrará los datos de la operación.

Conclusión:

Poder tener muchas sesiones abiertas al mismo tiempo es muy útil porque nos permite trabajar en forma más ordenada. De esta manera podemos tener una sesión encargada de monitorear los INSERTs, otra sesión encargada de monitorear los UPDATEs, y así sucesivamente.

Aunque en estos ejemplos la salida del programa FBTRACEMGR.EXE fue siempre hacia la pantalla lo normal y lo recomendable es que la salida sea hacia un archivo de texto, como vimos en el artículo anterior.

Artículos relacionados:

Usando Trace Manager

El índice del blog Firebird21

Older Entries