Acerca de

Mi nombre es Walter R. Ojeda Valiente y desde hace años utilizo Firebird con mucho suceso. Me gusta porque es muy poderoso, muy completo, muy fácil de usar, muy rápido y totalmente gratis.

Esto último siempre es muy importante porque implica que ni mis clientes ni yo tendremos que pagar un solo centavo para usarlo.

Aprendí mucho sobre Firebird gracias a otras personas así que considero justo que yo también colabore con los demás y ese es el principal objetivo de este blog.

Como hay tanto material sobre Firebird, hay tanto que se puede escribir, trato de actualizar este blog con al menos uno o dos artículos cada día.

Si el tema te interesa puedes hacer click sobre el botón “Seguir” que verás abajo y a la derecha de las páginas de este blog y recibirás un e-mail cada vez que un nuevo artículo sea publicado.

Saludos.

Walter.

 

NOTA: Aunque Firebird es totalmente gratis, si quieres puedes contribuir con el proyecto, a todos les gusta recibir un poco de dinero por el trabajo que realizan. Puedes contribuir con una donación, haciéndote miembro de la Firebird Foundation o siendo un patrocinador (sponsor). Más información puedes encontrar en: http://www.firebirdsql.org/en/donate/

 

Este blog cuenta con un foro donde puedes escribir tus preguntas y respuestas, la dirección es:

firebird21.yoforeo.com

 

131 comentarios (+add yours?)

  1. juan carlos ramirez
    Jul 31, 2014 @ 19:31:24

    hola walter buenos días, disculpa la pregunta de que país eres ?

    Responder

  2. Maynor Herrera
    Ago 13, 2014 @ 18:52:31

    Hola Walter, mi nombre es Maynor Herrera, primero que todo gracias todos los articulos que publicas, son de una ayuda inmensa. Quisiera que me indicaras en donde puedo leer acerca de accesar varias bases de datos en una misma aplicacion, estas db se encuentran en servidores remotos

    Gracia por tu ayuda
    Saludes

    Responder

    • wrov
      Ago 13, 2014 @ 21:29:03

      Hola Maynor

      No hay secretos para acceder a todas las bases de datos que quieras, y al mismo tiempo. Simplemente necesitarás una variable para cada conexión.

      MiHandle1 = string para conectarte a la Base de Datos 1
      MiHandle2 = string para conectarte a la Base de Datos 2

      A partir de ese momento y en adelante, cuando quieras referirte a una Base de Datos lo harás usando su correspondiente handle.

      Saludos.

      Walter.

      Responder

  3. ruben
    Sep 14, 2014 @ 11:54:41

    Hola Walter, segun tu experiencia, quisiera saber que tal se porta Firebird en una aplicacion para internet, con asp o java web

    Responder

    • wrov
      Sep 14, 2014 @ 15:45:52

      Hola Rubén

      En aplicaciones no críticas (es decir, donde esperar uno o dos segundos más no es cuestión de vida o muerte) es aceptable.

      Pero si vas a tener alta concurrencia (digamos unos 50 usuarios o más accediendo al mismo tiempo a la Base de Datos) no es la mejor alternativa.

      Funciona, no tendrás problema en ese aspecto, pero hay motores más rápidos. Esperamos que se mejore mucho la velocidad con Firebird 3.0, al menos eso dicen que ocurrirá, ya veremos cuando se libere (previsiblemente para Noviembre de este año).

      Saludos.

      Walter.

      Responder

      • Ruben
        Sep 15, 2014 @ 12:29:02

        Gracias por la respuesta Walter, por cierto tambien soy de Paraguay

      • wrov
        Sep 15, 2014 @ 12:36:53

        Vaya, que bien, otro colega por aquí, es bueno saberlo. Si alguna vez tienes ganas de participar en una reunión con colegas avisa. Eso sí, muy poco hablamos de Informática, más hablamos de mujeres, fútbol, o cualquier otra cosa.

        🙂

        Saludos.

        Walter.

  4. Manuel Santana
    Sep 18, 2014 @ 10:20:34

    Hola Walter, soy de Rep. Dominicana y estoy empezando a desarrollar vfp con firebird. Me gustaria saber que opinas sobre la autenticacion de usuarios, dejar que el servidor haga lo suyo o en mi app de vfp crear el codigo y los usuarios en una dbf?

    Gracias por tu blog, es de mucha utilidad.

    Responder

    • wrov
      Sep 18, 2014 @ 21:58:49

      Hola Manuel

      El control de usuarios es muy poderoso en Firebird, deberías implementarlo.

      Saludos.

      Walter.

      Responder

  5. pamda
    Oct 31, 2014 @ 23:56:55

    Bien ahí…!
    antes que nada, felicitaciones y fuerza con el proyecto, a pesar de que hace dias que ando “hojeando” el blog XD recien paso a dejarte el granito de apoyo..
    es bueno saber que eres de PY.. ; )
    y eso, esperemos que con las venideras versiones siga mejorando, es cierto que es una BD muy poderoso, muy completo, muy fácil de usar, muy rápido y totalmente gratis.

    lo rápido depende, muy facil de usar.. tambien depende, si trabajas en windows te aseguro que es super facil con el sigt.. sigt.., pero si es bajo UNIX hasta al más diestro en UNIX se complica.

    desde tú optica, bajo que entorno es mejor montar un server de BD (claro.. usando FB)

    Salu2

    Responder

    • wrov
      Nov 01, 2014 @ 03:56:54

      Linux es más seguro, más confiable y dependiendo del servidor, puede ser un poco más rápido también. De todas maneras deberías usar una versión Server, no una Desktop, porque la primera está optimizada para ser usada con bases de datos.

      Saludos.

      Walter.

      Responder

  6. Daniel
    Abr 09, 2015 @ 02:51:10

    Gracias por todo, exelente el laburo que te tomas aca, aprendo un monton en tu blog !

    Responder

  7. laslajitas
    Abr 27, 2015 @ 14:11:25

    hola buenas tardes tengo una base de datos de FIREBIRD en formato FDB necesito recuperar esa informacion alguien me puede explicar como puedo hacer??

    Responder

    • wrov
      Abr 27, 2015 @ 17:09:52

      Este blog tiene un foro en:

      http://yoforeo.com/firebird21/

      Donde puedes hacer todas las preguntas que quieras, siempre que estén relacionadas con Firebird, SQL, Bases de Datos, o Informática en general.

      Saludos.

      Walter.

      Responder

  8. Armando Cifuentes (@_ArCiGo)
    Abr 30, 2015 @ 13:27:47

    Muy buen blog. Creo que es uno de los lugares donde he encontrado información actualizada y reciente del tema.

    Difiero contigo al decir que hay mucho material de FirebirdSQL.

    Yo manejé FirebirdSQL para una presentación en clase de Admon. de Base de Datos y un taller que di junto con otra compañera, y nos dimos de topes con la documentación: no había nada actualizado o reciente, todo era redundante, no había ejemplos suficientes de conexiones y usos en lenguajes de programación que nos convencieran, las herramientas de gestión de base de datos de FirebirdSQL parecían de dudosa procedencia o del siglo pasado, etcétera. Actualmente ando trabajando como practicante con FirebirdSQL (no queriendo), y pues no es de mucho agrado mío lo que ya mencioné anteriormente.

    Me sorprende que haya gente y sistemas que usan FirebirdSQL.

    Quizás FirebirdSQL no es un MySQL, SQLServer o PostgreSQL (que tienen mucha documentación y bastantes ejemplos de uso), pero concuerdo contigo cuando dices que es fácil de usar y rápido.

    Repito, muy buen blog, y espero éste siga creciendo y actualizándose. No abandones este proyecto. Quizás mas adelante exista alguien que como yo se encuentre en la misma situación al usar FirebirdSQL, y tu blog le ayude.

    Saludos

    Responder

    • wrov
      Abr 30, 2015 @ 14:47:56

      Hay mucho material sobre Firebird en inglés, portugués, y ruso. Quizás en otros idiomas también. Justamente porque no había suficiente documentación en castellano es que inicié este blog, creo que aquí encontrarás casi todo lo que necesites para usar a Firebird eficientemente. Si necesitas algo y no lo encuentras aquí (algo muy raro pero por supuesto posible) házmelo saber y actualizaré el blog.

      Las herramientas de gestión de Firebird están al mismo nivel que las de MySQL, SQLServer y PostgreSQL, por la sencilla razón de que la gran mayoría de las empresas que hacen una herramienta de gestión la hacen para varios motores SQL, no exclusivamente para uno de ellos porque el trabajo de hacerlo para uno o para varios es casi el mismo, no hay muchas diferencias. Como ejemplos tienes a IBExpert, SQL Manager, SQLMaestro.

      Hay muchísima gente que usa FirebirdSQL, se puede saber eso por la cantidad de descargas diarias del motor que supera las 20.000, multiplica eso por los días del año y te dará una idea. Pero además muchos desarrolladores descargan una vez, lo copian en un pen-drive y lo instalan en muchas computadoras, ese es el caso normal, así que la cantidad de computadoras que tienen instalado al Firebird es inmensa.

      Y el blog ya le ha ayudado a muchísima gente, casi todos los días recibo comentarios positivos sobre él. Tiene 325 seguidores y un promedio de 1.200 visitas diarias. Hasta el momento he escrito 649 artículos, una cantidad que no encontrarás en la grandísima mayoría de los blogs dedicados a otros motores SQL. Y considerando que este blog empezó el 2 de marzo de 2013, supongo que no está nada mal.

      Saludos.

      Walter.

      Responder

  9. Jorge Vega Trigueros
    Ago 27, 2015 @ 19:41:46

    Gracias, Walter. Estare leyendo tus comentarios detenidamente, ya que me he decidido por Firebird, para seguir desarrollando. Gracias desde Costa Rica.

    Responder

  10. Jorge A.
    Sep 03, 2015 @ 12:53:47

    Hola walter en hora buena por tu blog, soy un desarrollador autodidacta y blogs como el tuyo ayudan tremendamente. Desde cuando quería implementar una aplicación con FB pero no encontraba información que me ayudara en la implementación y uso de esta base, como bien dices la mayoría están en inglés y otras en español que sólo muestran lo basico. Programo con VB, C# y actualmente aprendiendo Python.

    Saludos
    JASR

    Responder

    • wrov
      Sep 03, 2015 @ 18:28:31

      Gracias por el comentario positivo.

      En este blog encontrarás todo lo que necesites sobre Firebird, y si algo no encuentras entonces puedes pedir que se agregue. Tus preguntas sobre Firebird, SQL, y bases de datos puedes hacerlas en el foro, para eso fue creado.

      Saludos.

      Walter.

      Responder

  11. Eric Natareno Guerra
    Sep 30, 2015 @ 20:18:24

    Buenas tardes Walter, nuevamente acudo a tus conocimientos para que me eches una mano en este asunto. El problema es el siguiente:
    Tengo un cursor que obtengo de una tabla de firebird en un grid de vfp9, en él el usuario debe seleccionar dando doble click sobre los ítems deseados una especie de agrupación que lo único que hace es colocarle 1 en un campo o columna llamado marca, hasta allí todo bien, el problema que tengo es que tengo un SP en firebird que graba un encabezado de factura y genera el ID de la transacción, pero lo que necesito es que inmediatamente después de grabar el encabezado me actualice algunos campos de la tabla de donde obtuve el cursor en el mismo Stored Procedure.
    Dicho de otra forma
    Tengo tabla TICKETS de despacho pueden ser varios y se deben relacionar con una factura (Tabla FAC_COMP
    En fox con hacer un scan sobre el cursor resolvería el problema, pero necesito hacerlo en un SP de Firebird, primero grabar encabezado y luego actualizar los ítems seleccionados, pero no se como hacerlo, agradecería mucho tu ayuda. Muchas gracias de antemano.

    Responder

    • wrov
      Oct 01, 2015 @ 01:28:14

      No estoy seguro de haber entendido lo que estás necesitando. Si lo que quieres es obtener el Identificador de la cabecera, los comandos INSERT y UPDATE OR INSERT tienen una cláusula RETURNING … INTO

      Una vez que conoces el Identificador de la cabecera, lo guardas en cada una de las filas de detalle.

      Saludos.

      Walter.

      Responder

  12. juan
    Sep 30, 2015 @ 22:36:32

    hola estudio ing. sistemas no encuentro información de los motores de firebird
    me podrían decir cuales son

    Responder

    • wrov
      Oct 01, 2015 @ 01:29:15

      Ni la menor idea de qué es lo que estás preguntando. ¿Podrías explicarlo mejor?

      Saludos.

      Walter.

      Responder

  13. Miguel
    Oct 26, 2015 @ 19:47:18

    Existe alguna forma de enviar un mensaje a un correo cuando se cae el servicio de Firebird 2.5 Super Server de 32 instalado sobre centos6

    Responder

    • wrov
      Oct 26, 2015 @ 21:31:35

      No. Imposible. Firebird es un motor de bases de datos relacionales, no es un programa para enviar e-mails.

      Pero sí puedes crear un programa con algún lenguaje de programación que te permita enviar e-mails. Entonces, ese programa puede estar monitoreando constantemente el archivo FIREBIRD.LOG, que es el archivo donde se guardan los errores de funcionamiento del Firebird.

      Cuando ese programa detecta que cayó el servicio del Firebird entonces se encarga de enviar el e-mail.

      Saludos.

      Walter.

      Responder

  14. ejgtuc
    Ene 10, 2016 @ 18:39:01

    Hola walter, has visto el windev 20 express?, Si es asi, lo toma al firebird ? es decir podre accederlo desde el windev ?. Gracias

    Responder

    • wrov
      Ene 15, 2016 @ 00:41:30

      No, no tengo información.

      Saludos.

      Walter.

      Responder

  15. Python ruby (Sinergia)
    Abr 17, 2016 @ 14:24:51

    Hola buen dia he instalado firebird 3 veces y no me deja conectar con anysqlmaestro ni con flamerobin dice q el cliente ni existe y la verdad ya me desepere como podre solucionarlo ayuda por favor

    Responder

  16. Python ruby (Sinergia)
    Abr 17, 2016 @ 14:25:46

    Hola buen dia he instalado firebird 3 veces y no me deja conectar con anysqlmaestro ni con flamerobin dice q el cliente ni existe y la verdad ya me desepere

    Responder

  17. axscorpio
    Ago 12, 2016 @ 09:48:50

    Hola, buen dia Walter e igualmente a todos tus lectores.
    Una consulta:
    Cuantas bases de datos puedes manejar Firebird en un servidor?.
    Quisiera poner 10 bases de datos en un servidor con Firebird, en donde se conectaran simultaneamente los clientes a cada base de datos respectivamente.
    Es decir:
    Base I – 5 o mas conecciones a la vez
    Base II – 3 o mas conecciones a la vez
    Base III – 7 o mas conecciones a la vez
    Base IV – 4 o mas conecciones a la vez
    etc…

    Un saludo cordial y gracias de antemano por la ayuda.

    Responder

    • wrov
      Ago 12, 2016 @ 21:40:24

      No hay límite a la cantidad de bases de datos que puede usar un Servidor del Firebird.

      La cantidad de usuarios conectados al mismo tiempo a una Base de Datos es de 2048 en SuperServer (con Firebird 2.5.x, y es de 1024 con versiones anteriores) y sin límite en Classic (dependiendo solamente de la memoria RAM disponible en la computadora donde se encuentra el Servidor del Firebird).

      Pero un Servidor del Firebird puede administrar a miles de bases de datos al mismo tiempo, sin ningún problema (aunque desde luego que necesitarás muchísima memoria RAM y muchos núcleos para administrar tantas bases de datos). Pero administrar, 5, 10, 12, bases de datos al mismo tiempo es muy común.

      Saludos.

      Walter.

      Responder

  18. Tobías
    Ago 16, 2016 @ 21:48:46

    Hola Walter, he estado viendo varios de tus artículos y me han resultado muy útiles.

    Crees que te podría contactar por mail, por unas consultas.
    Desde ya espero tu respuesta. Y te felicito por el gran trabajo que realizas con este blog, se ve que tiene cientos por no decir miles de horas de trabajo, y lo podemos acceder gratis.

    Desde ya muchas gracias espero tu respuesta, mi e-mail es: tobias2801@hotmail.com

    Responder

    • wrov
      Ago 17, 2016 @ 12:13:44

      Las consultas puedes hacer en el foro, allí podré responderte yo y también algunas otras personas. El enlace encontrarás en la parte superior izquierda de la página.

      Saludos.

      Walter.

      Responder

  19. Luis Gerardo Carrillo
    Feb 10, 2017 @ 20:56:29

    Buenas tardes Walter:

    Estoy estableciendo una conexion entre VFP 9.0 SP2 y Firebird, utilizo una cadena de conexion que contiene lo siguiente:

    lcCadenaConexion = “DRIVER={Firebird/InterBase(r) driver};” ;
    + “USER=SYSDBA;” ;
    + “PASSWORD=xxxxxxx;” ;
    + “DATABASE=192.168.27.101:prueba.fdb;” ;
    + “OPTIONS=131329;”

    El problema es que a cada usuario debo darles permisos (GRANT ALL) en la base de datos, segun la tabla que vaya a accesar, ya que si no lo hago marca un error.
    Debo agregar que la conexion se realiza sin problema, pero no se ejecuta ningun comando SQL.

    ¿Sabes como se puede resolver este problema? o de plano, ¿tengo que darles permisos a cada usuario?

    Gracias por tu ayuda

    PD. Me gusta mucho tus articulos sobre Firebird, son excelentes, felicidades.

    Responder

    • wrov
      Feb 11, 2017 @ 13:48:18

      Hola Luis

      A diferencia de las tablas .DBF que usa el Visual FoxPro donde si un usuario consigue hacer un USE a una tabla ya puede realizar cualquier operación en ella (agregar, modificar, borrar, consultar) en Firebird la seguridad es muchísimo mayor.

      Cada usuario puede hacer solamente lo que se le permita que haga, y nada más.

      El hecho de poder conectarse a una Base de Datos no le otorga derechos sobre las tablas ni sobre las vistas ni sobre los stored procedures. Cada uno de esos derechos deben otorgársele específicamente.

      ¿Quién le puede otorgar esos derechos?

      El usuario SYSDBA, el creador de la Base de Datos (que muchas veces es también SYSDBA, pero no es obligatorio que lo sea), o un usuario que se conectó con el rol RDB$ADMIN y que tiene el derecho de otorgar derechos.

      Mi consejo y lo que yo aplico es que solamente se otorguen derechos sobre las vistas y sobre los stored procedures, jamás sobre las tablas. De esa manera siempre sabrás lo que cada usuario puede hacer y evitarás que por ignorancia o por intención “meta la pata”.

      Una buena política y que es la que yo aplico es que todos los usuarios se conecten usando un rol (excepto el usuario SYSDBA, que no lo necesita), pero todos los demás usuarios deben conectarse usando un rol. De esta manera te será muy fácil delimitar lo que los usuarios pueden hacer y no hacer.

      Si por algún motivo quieres tener el mismo comportamiento que con las tablas .DBF del Visual FoxPro (algo que no es recomendable por motivos de seguridad, pero será tu decisión) entonces simplemente a todos los haces conectar como SYSDBA y listo.

      Resumiendo:
      1. Creas roles
      2. Asignas derechos (también llamados privilegios o permisos) a esos roles
      3. Los derechos asignados a los roles deben ser sobre las vistas y sobre los stored procedures, jamás sobre las tablas
      4. Asignas esos roles a los usuarios
      5. Esto obligará a que cada usuario se conecte con su nombre, su password, y su rol

      Hay mucha información sobre estos temas en los artículos del blog. Si tienes dudas, puedes preguntar en el foro de este grupo, que encontrarás en el enlace:

      yoforeo.com/firebird21

      Saludos.

      Walter.

      P.D.: Muchas gracias por el comentario positivo acerca de mis artículos sobre Firebird.

      Responder

  20. Froilán
    Jun 15, 2017 @ 17:26:37

    Buenas tardes Walter:
    Estoy elaborando un kardex en VFP, cuando opero ingresos y salidas en el mismo día funcionan los nuevos saldos.
    Pero cunado opero ingresos y salidas, para que me den los nuevos saldos en días diferentes, no funciona.
    En este caso funciona el Firebird ?
    Gracias

    Responder

    • wrov
      Jun 16, 2017 @ 11:16:11

      Claro que sí, el Firebird nada tiene que ver con eso, el problema está en tu SELECT.

      Saludos.

      Walter.

      Responder

      • Luis Gerardo Carrillo
        Jun 16, 2017 @ 11:21:26

        Froilan, Firebird es una maravilla, el unico requisito es tener una buena base de SQL.
        Yo lo utilizo desde hace mucho tiempo con bases de datos de millones de registros y funciona excelente, asi que seguramente el problema es de programacion, te recomiento este grupo de VFP https://groups.google.com/forum/#!forum/publicesvfoxpro, si expones el problema, con gusto te ayudaremos a resolverlo.

  21. Luis Gerardo Carrillo
    Jul 11, 2017 @ 17:44:13

    Buenas Tardes Walter

    Estoy haciendo un procedimiento en FB 2.5, en el utilizo fechas y horas con formato TIMESTAMP, cuando intento hacer un debug con EMS IbManager me salta un error en las sentencias que utilizo para extraer la fecha o la hora del TIMESTAMP

    Por ejemplo:
    ldFechaActual = CAST(TTFECHA_INICIAL AS DATE);
    lnHoraInicial = EXTRACT(HOUR FROM TTFECHA_INICIAL);

    En el debug me marca el siguiente error:
    Overflow occurred during data type conversion.Conversion error from string “10/07/2017 09:00:00 a. m.”.

    Y si checo como ejecuta la sentencia veo que esta haciendo esto:
    SELECT CAST(CAST ( CAST(’10/07/2017 09:00:00 a. m.’ AS TimeStamp) AS DATE ) AS DATE) FROM RDB$DATABASE

    Yo supongo que el error es interno del debuger y que tiene que ver con el formato del TIMESTAMP.

    ¿Sabes tu como se pueda solucionar esto? ya que no puedo hacer el debug del procedimiento y aunque al ejecutarlo funciona, no da el resultado correcto y como no puedo “debuguearlo” no se donde hace el calculo mal.

    Responder

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: