Como seguramente sabes, para conectarte a una Base de Datos de Firebird puedes utilizar varios métodos, uno de ellos es ADO (ActiveX Data Objects). Fue desarrollado por Microsoft y por lo tanto se usa principalmente con Windows.

Con ADO se pueden crear tablas, borrar tablas, insertar filas, modificar filas, borrar filas, consultar filas, etc., todas las operaciones normales.

El método más usado para conectarse a bases de datos de Firebird creo que es ODBC pero he leído que ADO es más rápido. No lo puedo afirmar ni negar porque aún no he realizado pruebas intensivas ni he encontrado alguna página donde las hayan hecho y muestren los resultados.

Lo primero que debes hacer si quieres conectarte por ADO es conseguir un proveedor, aquí encontrarás uno de ellos:

http://www.ibprovider.com/eng/documentation/firebird_interbase_odbc_drivers.html

ADO1

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

Después de descargarlo e instalarlo ya estará listo para ser usado.

Gracias a la colaboración de Jaume (ver los comentarios más abajo) también disponemos del IBOLE.DLL el cual dicen que es muy bueno. Puedes descargarlo desde:

http://www.mediafire.com/download/7hpf8ppyudpnn4k/IBOLE.dll

¿Cómo se utiliza ADO?

Primero, debes conectarte a la Base de Datos

Segundo, debes obtener un RecordSet, o sea un conjunto resultado con los datos que te interesan

Tercero, puedes manipular esos datos como desees

Cuarto, debes cerrar el RecordSet

Quinto, debes cerrar la conexión

Ejemplo. Mostrar los nombres de los clientes

En nuestra Base de Datos tenemos una tabla llamada CLIENTES y queremos obtener los nombres de los mismos, este pequeño programita desarrollado con Visual FoxPro cumplirá esa  tarea:

CLEAR

CLOSE ALL

CLEAR ALL

Private oSQL, oRecordSet

*--- Primero, se conecta a la Base de Datos

oSQL = CreateObject("ADODB.Connection")

with oSQL
   .Provider = "LCPI.IBProvider.3.Lite"
   .ConnectionString = "User=SYSDBA;password=masterkey;Data Source=E:\SQL\DATABASES\BLOG_DB.FDB;auto_commit=true"
   .Open()
endwith

*--- Segundo, se crea un RecordSet

oRecordSet = CreateObject("ADODB.RecordSet")

*--- Tercero, se obtienen los datos que nos interesan

oRecordSet.Open("Select * From CLIENTES",oSQL)

*--- Cuarto, se procesan los datos obtenidos

do while !oRecordSet.EOF
   ? oRecordSet.Fields.Item("CLI_NOMBRE").Value
   oRecordSet.MoveNext()
enddo

*--- Quinto, se cierran y se eliminan los objetos que se habían creado

oRecordSet.Close()

oSQL.Close()

Release oRecordSet, oSQL

Después de ejecutarlo el resultado obtenido será algo similar a esto:

ADO2

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

Como puedes ver, en la pantalla se mostraron los nombres de los 4 clientes cuyos datos estaban guardados en la tabla respectiva.

A diferencia de ODBC aquí no obtendrás un cursor para trabajar con él. Un cursor es una tabla .DBF temporal y desde mi punto de vista es más útil porque puede ser indexada, mostrada en un browse, etc. La forma de usar ADO me parece más antigua, más manual, aunque sobre gustos…

Desde luego que siempre puedes enviar el contenido de los recordsets a cursores o a tablas .DBF pero sería un trabajo adicional y ¿vale la pena? eso ya no lo sé porque dependerá de tus circunstancias.

Propiedades, métodos y eventos de ADO

ADO tiene muchísimas propiedades, métodos y eventos que puedes usar, en el ejemplo anterior se mostró solamente una pequeñísima parte de ellos. Si te interesa el tema hay varias páginas con información útil en Internet, una de ellas es la siguiente:

http://www.w3schools.com/ado/default.asp

Conclusión:

Si quieres, puedes usar ADO para conectarte a una Base de Datos pero yo hasta ahora no le he encontrado alguna ventaja. Quizás sea más rápido que ODBC y en ese caso sí podría justificarse conectarse mediante ADO, pero eso es algo que aún no he verificado.

Usar cursores es más rápido y más sencillo (para mí, claro) que estar obteniendo los datos fila por fila. Esto lo notarás principalmente cuando quieras imprimir informes porque mientras un cursor o una tabla .DBF ya están preparados para ser usados en informes, los recordsets no lo están y deberán prepararse previamente y habría que ver si vale la pena el esfuerzo.

De todas maneras, siempre es bueno tener varias alternativas para hacer cualquier cosa y disponer de ADO aumenta nuestras posibilidades de conexión a las bases de datos, así que bienvenido.

Descargas de archivos .DLL para usarlos como Proveedor de ADO

http://www.ibprovider.com/eng/documentation/firebird_interbase_odbc_drivers.html

http://www.mediafire.com/download/7hpf8ppyudpnn4k/IBOLE.dll

Artículos relacionados:

w3schools.com

El índice del blog Firebird21