PDA

Ver la Versión Completa : Firebird y ADO/ODBC en D2010


cesarsoftware
30-09-2010, 19:51:23
Hola Compañeros.

Permitirme abrir este nuevo hilo ya que no encuentro la respuesta a mis necesidades, buscar, lo que se dice buscar, he buscado y mucho, jejeje.

Al tema, he comprado D2010 profesional y no tiene soporte directo para firebird como ya sabreis, la enterprise si que tiene o eso dicen, pero ahora no me puede actualizar.
He pensado en conectarme via ADO/ODBC para evitar las "carencias" del compilador pero lo dicho, no se hacerlo, pruebo, veo codigos, navego por internet pero nada. Creo que seria la solucion adecuada para no depender de componentes de terceros.
Lo que mas me he acercado es a colocar los componentes ADOconnection, juraria que algun vez que hice pruebas lo consegui pero ya no se por donde tirar. Por cierto la base de datos esta en un servidor "servername:d:\datos\base.fdb"

Me podeis ayudar.
Gracias de antemano.

jhonny
30-09-2010, 20:12:27
Si definitivamente lo vas a hacer por medio de ODBC, deberás descargarlo desde http://www.firebirdsql.org/index.php?op=files&id=odbc, no te haría falta nada más.

cesarsoftware
30-09-2010, 20:26:43
He creado una conexion ODBC (herraminentas administrativas/ODBC) en el DNS del sistema y "ala" ya consigo conectarme con la BBDD y leer sus tablas, vamos bien, peeerooo solo en disco local C:\base.fdb, si lo pongo en su ruta real \\servidor\datos\base.fdb (file://\\servidor\datos\base.fdb) (donde debe estar) no conecta, he probado,

servidor:d:\datos\base.fdb
servidor:datos:/base.FDB

cesarsoftware
30-09-2010, 20:47:09
Antes de nada. ¡GRACIAS JHONNY!

Vale, ya me conecto y leo tablas desde el servidor, la cadena correcta es:
192.168.100.9:d:/Datos/base.FDB, supongo que no resuelve el nombre del servidor mi equipo y que no tiene nada que ver con odbc.

Ya se que la pregunta puede resultar "incoherente" pero ahi va:

Puedo conectar sin tener que crear un DNS del sistema, vale, el driver odbc esta claro que hay que instalarlo (igual que hariamos con el motor nativo, logico), pero si se pudiera hacer, mi instalador ejecutaria el driver en modo silencioso junto con la aplicacion y asi no tendria que "meter mano" a "herramientas administrativas/Origenes de datos/DNS del sistema".

Muchas gracias por vuestra atencion.

PD: tambies es necesario el cliente GDS32.dll

jhonny
30-09-2010, 21:37:09
Hola, mira, esa vaina no es tan complicada como parece:

Hay muchos gestores de instación... suponiendo que estás usando Inno Setup, hay dos maneras de hacer lo que quieres...

Una vez hecho instalador y a punto de configurar tu ODBC, puedes tomar cualquiera de los 2 siguientes caminos:

1) Estudiarte este Wiki y hacerlo como indican ahí http://www.vincenzo.net/isxkb/index.php?title=ODBC_-_How_to_create_a_DSN.

o

2) Descargarte http://www.istool.org/, que es como una especie de Front End de Inno Setup, que te ayuda a configurar todo facilmente entre esas cosas el ODBC dandole clik en Project|Create ODBC Profile y listo.

Bueno, espero te sirva esta información.

guillotmarc
30-09-2010, 21:52:43
El soport de Firebird en D2010 Enterprise es mediante un driver dbExpress. Si quieres usar un driver dbExpress libre para suplir la falta en D2010 Professional, puedes usar éste (yo lo he probado y en principio todo me ha funcionado bien) :

http://sites.google.com/site/dbxfirebird/

La distribución de una aplicación que se conecta a las bases de datos por driver dbExpress es bastante más sencilla que en una aplicación que utiliza ODBC, puesto que solo tienes que distribuir una librería dll en la misma carpeta de tu aplicación.

Saludos.

jhonny
30-09-2010, 22:06:44
El soport de Firebird en D2010 Enterprise es mediante un driver dbExpress. Si quieres usar un driver dbExpress libre para suplir la falta en D2010 Professional, puedes usar éste (yo lo he probado y en principio todo me ha funcionado bien) :

http://sites.google.com/site/dbxfirebird/

La distribución de una aplicación que se conecta a las bases de datos por driver dbExpress es bastante más sencilla que en una aplicación que utiliza ODBC, puesto que solo tienes que distribuir una librería dll en la misma carpeta de tu aplicación.


Excelente dato, no conocía la existencia de dicho driver, gracias guillotmarc :)

cesarsoftware
01-10-2010, 12:04:20
El soport de Firebird en D2010 Enterprise es mediante un driver dbExpress. Si quieres usar un driver dbExpress libre para suplir la falta en D2010 Professional, puedes usar éste (yo lo he probado y en principio todo me ha funcionado bien) :

http://sites.google.com/site/dbxfirebird/

La distribución de una aplicación que se conecta a las bases de datos por driver dbExpress es bastante más sencilla que en una aplicación que utiliza ODBC, puesto que solo tienes que distribuir una librería dll en la misma carpeta de tu aplicación.

Saludos.

¡MUCHISIMAS GRACIAS!
Despues de hacer funcionar ADO/ODBC he borrado todo y hasta he desistalado el driver ODBC y he usado la libreria dbxfirebird. TODO PERFECTO (de momento, jejeje).
En el siguiente mensaje indicaque su uso para que lo puedan usar todos los compañeros

cesarsoftware
01-10-2010, 12:59:29
Lo primero que hay que hacer es bajarse la libreria de donde indica guillotmarc, yo he bajado la ultima version dbxFirebird.4.1.v26.zip.
Tras descomprimirla necesitamos los ficheros dbxfb4d14.dll y dbxdrivers.ini.
Los copiamos al directorio de nuestra aplicacion junto el cliente firebird fbclient.dll (o gds32.dll, el que mas nos guste).
Despues editamos el fichero dbxdrivers.ini y eliminamos las lineas "database" y "password" (o las dejamos) y cambiamos la lineas "libraryname" y "vendorlib" para quitarles el path que trae por defecto o le ponemos el nuestro, yo prefiero quitarselo y asi busca las dll en el directorio de nuestra aplicacion.

El fichero dbxdrivers.ini quedara asi.

[Installed Drivers]
FirebirdConnection=1
[FirebirdConnection]
;DriverUnit=DBXInterBase
;DriverPackageLoader=TDBXDynalinkDriverLoader,DbxCommonDriver120.bpl
;DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=12. 0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
;MetaDataPackageLoader=TDBXInterbaseMetaDataCommandFactory,DbxInterBaseDriver120.bpl
;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxInterBaseDr iver,Version=12.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b
GetDriverFunc=getSQLDriverFIREBIRD
LibraryName=dbxfb4d14.dll
VendorLib=fbclient.dll
BlobSize=-1
CommitRetain=False
ErrorResourceFile=Firebird.log
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=
SQLDialect=3
Interbase TransIsolation=ReadCommited
WaitOnLocks=True
Trim Char=False


A continuacion en nuestro codigo hacemos los siguiente:
En la clausula uses añadimos "SqlExpr, WideStrings, DB, DBXDynalink, FMTBcd;"
En la clausula public definimos el conector asi lo podemos usar en toda la aplicacion
SQLConnection: TSQLConnection;

Ya podemos escribir el codigo de apertura y uso
Yo prefiero darle algunos parametros como usuario, password, database, etc.


function TFormBBDD.AbreDataBase(): boolean;
var
tIni, tFin: integer;
begin
Result := False;
SQLConnection := TSQLConnection.Create(Self);
SQLConnection.DriverName := 'FirebirdConnection';
SQLConnection.SQLHourGlass := True;
SQLConnection.LoginPrompt := False;
SQLConnection.Params.Add('ServerCharSet=WIN1252');
SQLConnection.Params.Add('User_Name=SYSDBA');
SQLConnection.Params.Add('Password=masterkey');
SQLConnection.Params.Add('Database=servidor:d:\datos\base.fdb');
tIni := GetTickCount();
try
SQLConnection.Open;
tFin := GetTickCount();
if SQLConnection.Connected then
begin
Result := True;
Application.MessageBox('-> Conectado en ' + IntToStr((tFin - tIni) div 1000) + ' seg.', 'OK'); // evidentemente esta linea sobra
end;
except
tFin := GetTickCount();
SQLConnection.Free;
Application.MessageBox(PChar('-> No conectado en ' + IntToStr((tFin - tIni) div 1000) + ' seg.' + #10 +
'consulte con el servicio técnico'), 'Error', MB_ICONERROR);
end;
end;

guillotmarc
01-10-2010, 15:41:45
Gracias por documentar la instalación.

Recuerdo que me costó al menos un par de horas ponerlo en marcha (tanto en el IDE como en el ejecutable), lamentablemente no lo documenté ya que solo estaba probándolo (estoy considerando seriamente dejar FibPlus en D2010 y volver a dbExpress, que es lo que utilizaba en D6).

Una vez configurado el driver y en marcha, todas las pruebas me funcionarion sin el menor problema.

Saludos.

Gallosuarez
01-10-2010, 17:09:28
Gracias por documentar la instalación.

... (estoy considerando seriamente dejar FibPlus en D2010 y volver a dbExpress, que es lo que utilizaba en D6).

...

Que tal, un saludo a tod@s l@s forer@s.

Me gustaría que Guillotmarc nos comentara mas sobre su consideración de dejar FibPlus y volver a dbExpress, es mas, me gustaría que los demás foreros nos comentaran mas sobre las tecnologías que están utilizando en la creación de sus proyectos. Por cierto, por mi parte les puedo decir que estoy en el proceso de pruebas para cambiar mis sistemas (utilizaba Delphi 2006, los componentes para conectarme la base de datos que utilizaba eran IBObjects y la base de datos sigue siendo Firebird, por supuesto). Ahora, por el momento estoy haciendo pruebas con ExtJS ("Framework" que utiliza JAVA script y hojas de estilo), todo esto para la programación del "Front End". La capa intermedia que estoy utilizando para el manejo de conexión a la base de datos es PHP, aunque estoy, también, haciendo pruebas con SERVLETS (creo que es una tecnología mas robusta, aunque mas complicada), la base de datos es FIREBIRD, claro está.

Siendo un fanático del Sofware Libre, todo esto lo trabajo en Linux (CENTOS para servidores y Fedora 13 para las PC's de escritorio y Laptops). Aunque los proyectos que resultan de todo esta mezcla de tecnologías es multiplataforma, puesto que las aplicaciones las abres desde cualquier navegador de internet que uno le guste). Uff, ya me extendí bastante, mejor propongo la creación de un nuevo hilo y ahí nos podemos explayar a gusto (si los demás así lo quieren, claro está). Estoy pensando liberar todos mis documentos que he estado haciendo para hacer una pequeña contribución a lo mucho que yo he recibido.

Espero su comentarios,

Saludos,
Gerardo Suárez Trejo

cesarsoftware
01-10-2010, 20:03:17
Que menos quillotmarc:), gracias a ti.

En cuanto a lo que propone gallosuarez solo comentar un tema.
Creo (en mi opinion) que cuantos menos componentes de terceros usemos, mas estable, mas controlable y mas portable sera nuestra aplicacion.
Con esto no quiero decir que no usemos componentes que nos puedan hacer mejor "la vida" pero que ha pasado al migrar a D2010, que los amigos de embarcadero "nos joden" un poco, yo he pagado por el producto, y luego me encuentro que no puedo migrar un moton de programas que ya he realizado, no puedo/debo (que ahora lo hago) usar 2 compiladores simultaneamente ¡QUIERO SOLO UNO!. Ya me paso con quick report, a la mier**da un monton de aplicaciones, entonces, ¿que hago? uso un componente de terceros, pero ¿me funcionara en mi nuevo compilador? casi seguro que no.
Por tanto, si se puede usar solo el IDE basico y el resto currartelo tu mismo, al principio cuesta mas, pero luego....jejeje, CONTROL TOTAL.

Pues eso, si puedo usar una libreria externa, un solo dll y luego el creador de esta lo mantiene pues mejor, pero lo mejor, es que el codigo que ya habia escrito con los componentes dbxpress (un monton de aplicaciones) me FUNCIONAN TODAS, NO TENGO QUE REESCRIBIR como por ejemplo al intentar usar ADO/ODBC que es lo que empece para evitar usar componentes de terceros. Y si es sobre libre, mejor.

lbuelvas
04-10-2010, 05:12:27
Hola foro.

Pues les cuento, resulta que he trabajado con Delphi 6 + IBX + Firebird 1.5.6, adquirí licencia para RAD Studio 2007 hace un par de años, trate de migrar las aplicaciones pero desistí por falta de tiempo y he continuado con Delphi 6.

Ahora aparecen nuevas dificultades, mis aplicaciones compiladas con Delphi 6 no corren conectandome al motor Firebird 2.x, razon por la que estoy haciendo pruebas con "Delphi 2010" y con los componentes dbExpress.

Resulta que los dbExpress como son mas genericos que los componentes especificos IBX (construidos para Interbase no para Firebird) no tienen ciertas características que me son de mucha utilidad: Conocer el Plan de una Consulta por medio del método TIBSQL.Plan, Administrar Usurios, Roles y permisos con el componente TIBSecurityService de la pestaña Interbase Admin.

Como podrían hacerse estas cosas con los componentes dbExpress ?

guillotmarc
04-10-2010, 10:54:31
Buenos días.

Resulta que los dbExpress como son mas genericos que los componentes especificos IBX (construidos para Interbase no para Firebird) no tienen ciertas características que me son de mucha utilidad: Conocer el Plan de una Consulta por medio del método TIBSQL.Plan, Administrar Usurios, Roles y permisos con el componente TIBSecurityService de la pestaña Interbase Admin.

Como podrían hacerse estas cosas con los componentes dbExpress ?

Para gestionar Roles, hay el comando CREATE/DROP ROLE. En Firebird 2.5 se ha añadido el comando CREATE/ALTER/DROP USER para gestionar usuarios. En caso de que no quieras aún cambiar a FB 2.5, puedes usar la herramienta de línea de comandos gsec.exe, solo tienes que copiarla junto a tu aplicación, para poder llamarla cuando la necesites y crear y modificar usuarios.

Finalmente, para gestionar permisos tienes el comando GRANT. (ejplo. GRANT SELECT, INSERT ON CLIENTES TO "PUBLIC").

Todos estos comandos los puedes ejecutar directamente en SQL por dbexpress.

Lo que no conozco es como averiguar el PLAN de una consulta utilizando solo dbExpress.

NOTA: Yo siempre pruebo mis consultas en IBExpert antes de incorporarlas a los programas, de esta forma me aseguro, comprobando su PLAN, de que tengan los índices adecuados.

Saludos.

guillotmarc
04-10-2010, 17:16:30
Vaya que casualidad. Firebird 2.5 acaba de ser liberado hoy mismo, así que ya no hay excusa para cambiarse a él y así poder gestionar las cuentas de usuario mediante sentencias SQL.

cesarsoftware
05-10-2010, 11:31:37
Hola de nuevos compis.

Perdonarme la intromision para formularos una pregunta,
¿Como puedo crear la base de datos desde codigo?, ya sabeis que no me gusta usar otras aplicaciones, hasta ahora usaba ibaccess para crearlas, pero me empieza a dar problemas y prefiero crearlas yo.

He probado SQLConnection.ExecuteDirect('CREATE DATABASE c:\mibase.fdb') y me dice que no encuentra el fichero, "UNAVAILABLE DATABASE".
En la pagina http://www.firebirdsql.org/refdocs/langrefupd21-ddl-database.html#langrefupd21-create-database dice que se hace asi, pero supongo que lo que "falla" es el componente tsqlconnecion, no se.

Una ayudita "please", prometo documentarlo, jejeje

guillotmarc
05-10-2010, 12:26:07
Hola.

Yo en mi aplicación tengo una copia de una base de datos vacía, así que para crear una nueva bbdd por código, solo tengo que copiar la base de datos en blanco.

Puedes probar a conectar a una base de datos existente y desde esa conexión lanzar el create database.

Puedes ejecutar el comando externo isql.exe para ejecutar un script de creación de la base de datos (aunque tendrás que distribuir con tu aplicación el isql.exe para asegurarte de tenerlo disponible).

También puedes probar usar directamente el api de Firebird, saltándote dbExpress.

http://stackoverflow.com/questions/423808/creating-a-database-using-dbexpress-in-delphi

Finalmente parece que en DBX4, a partir de Delphi 2007, ya se puede hacer. Pero no logro encontrar el artículo que citan en los blogs de Embarcadero (es como si todas las entradas de la epoca Borland/CodeGear hayan sido eliminadas). Parece que esa funcionalidad viene en dbxcommons.pas

http://es.w3support.net/index.php?db=so&id=400114

Saludos.

cesarsoftware
05-10-2010, 12:48:18
Gracias guillotmarc.
Yo uso la misma tecnica, dispongo de una base de datos vacia y la mando junto con la aplicacion y creo las tablas que necesito.
Los articulos mencionados ya los habia leido, parece facil con ib pero no asi con dbx, creo que seguiremos usando la tecnica de base en blanco ya que el comando "create database" con una base dase datos abierto indica "cannot prepare a CREATE DATABASE/SCHEMA statement".

Seguiremos investigando.

Chandra_
04-11-2010, 11:07:11
Hola

Como comento en otro post (http://www.clubdelphi.com/foros/showthread.php?p=381210#post381210), estoy tratando de buscar soluciones para usar Firebird en D2007 con dbExpress (me acabo de enterar que lo que yo hacía de usar Firebird en lugar de Interbase así... a pelo, no es muy ortodoxo, al parecer).

El caso es que estoy tratando de usar el dbExpress Driver for Firebird (http://sites.google.com/site/dbxfirebird/) en D2007, siguiendo las instrucciones de cesarsoftware. Me he bajado el zip (la última versión: v26), pero no encuentro por ningún lado el dbxdrivers.ini dentro del zip.

El instalador de Firebird 2.5 guarda un archivo similar en:
C:\Users\Public\Documents\RAD Studio\dbExpress\dbxdrivers.ini
Supongo que se refiere a ese ¿no?

Sin embargo, en la sección "[Installed Drivers]" no me aparece ninguna entrada "FirebirdConnection=1"; ni tengo sección "[FirebirdConnection]". No entiendo nada... :confused:

Por otro lado... ¿es fiable este driver?

Gracias

guillotmarc
04-11-2010, 11:36:55
Hola.

Esas entradas en dbxdrivers.ini las tienes que poner tú manualmente.

No sé cuan confiable es el driver, en unas primeras pruebas me ha funcionado bien, pero no he programado nada serio con él. Quizás puedas ponerte en contacte con cesarsoftware y preguntarle como le va (utiliza los mensajes privados del foro). NOTA: Si lo haces, no te olvides comentarlo aquí para que lo sepamos también los demás.

Aunque yo no me preocuparía tanto por el tema. Esta es una de las ventajas de dbExpress. Si no te funciona bien, simplemente cambias la conexión y utilizas el driver de Interbase que viene con Delphi, o compras el driver dbExpress de DevArt o el InterXpress de Upscene. El caso es que no vas a tener que cambiar nada de tu programa, solo especificarle de usar un driver distinto.

Saludos.

Chandra_
04-11-2010, 12:20:14
Hola.

Esas entradas en dbxdrivers.ini las tienes que poner tú manualmente.

No sé cuan confiable es el driver, en unas primeras pruebas me ha funcionado bien, pero no he programado nada serio con él. Quizás puedas ponerte en contacte con cesarsoftware y preguntarle como le va (utiliza los mensajes privados del foro). NOTA: Si lo haces, no te olvides comentarlo aquí para que lo sepamos también los demás.

Aunque yo no me preocuparía tanto por el tema. Esta es una de las ventajas de dbExpress. Si no te funciona bien, simplemente cambias la conexión y utilizas el driver de Interbase que viene con Delphi, o compras el driver dbExpress de DevArt o el InterXpress de Upscene. El caso es que no vas a tener que cambiar nada de tu programa, solo especificarle de usar un driver distinto.

Saludos.

Gracias por responder, guillomarc.

Me ha comentado casimiro en otro hilo (http://www.clubdelphi.com/foros/showthread.php?p=381248&posted=1#post381248) que, si le doy un oso "normal", no tengo por qué instalar drivers; de manera que tal vez siga como hasta ahora: D2007+dbExpress+Firebird sin nada más.

guillotmarc
04-11-2010, 12:25:49
Gracias por responder, guillomarc.

Me ha comentado casimiro en otro hilo (http://www.clubdelphi.com/foros/showthread.php?p=381248&posted=1#post381248) que, si le doy un oso "normal", no tengo por qué instalar drivers; de manera que tal vez siga como hasta ahora: D2007+dbExpress+Firebird sin nada más.

No, si te ha funcionado bien hasta ahora, no tienes porqué cambiar.

NOTA: Y en el caso de que en un futuro necesites lanzar una consulta que requiera de las nuevas características de Firebird, y que por tanto no funcione correctamente con el driver de Embarcadero, entonces tienes la sencilla solución de cambiar de driver (sin tocar nada más del programa). Así que en principio no hay nada malo en seguir programando como lo haces.

Saludos.

Chandra_
04-11-2010, 12:34:51
No, si te ha funcionado bien hasta ahora, no tienes porqué cambiar.

NOTA: Y en el caso de que en un futuro necesites lanzar una consulta que requiera de las nuevas características de Firebird, y que por tanto no funcione correctamente con el driver de Embarcadero, entonces tienes la sencilla solución de cambiar de driver (sin tocar nada más del programa). Así que en principio no hay nada malo en seguir programando como lo haces.

Saludos.

Pues un millón de gracias, guillomarc, no sabes el peso que me quitas de encima, despejando así mis dudas, de verdad.

Tienes toda mi gratitud :)

Delfino
26-11-2010, 18:17:51
Tanto Marco cantu como Ian Marteens dicen en sus libros sobre Delphi6 q se puede incrustar la dll del driver DBX en el ejecutable, pero ninguno detalla el como :confused:

Alguien sabe como?

guillotmarc
26-11-2010, 18:57:50
¿ Que Delphi utilizas y que Driver dbExpress ?.

Para Delphi 6 y el driver de Interbase que viene de serie, solo tienes que añadir dbExpInt en el Uses de tu Formulario principal y el código del driver dbExpress es linkado junto con tu aplicación.

Saludos.

Estifmauin
27-11-2010, 16:14:12
Hola de nuevos compis.
¿Como puedo crear la base de datos desde codigo?, ya sabeis que no me gusta usar otras aplicaciones, hasta ahora usaba ibaccess para crearlas, pero me empieza a dar problemas y prefiero crearlas yo.


SQLConnection, al igual que ADOConnection necesita una base de datos a la que conectarse para poder "actuar", así que no puede crear ella misma una desde cero.
Yo uso el componente TIBDatabase, de las IBX de Delphi, ya que la creación de una bbdd Firebird es igual a una Interbase (al menos por ahora).

function CrearBDFB(path :string; ps :integer; cs :string):boolean;
var
db :TIBDatabase;
r :string;
begin
result:=false;
if ps <= 0 then ps:=4096;
if cs = '' then cs:='ISO8859_1';
db:=TIBDatabase.Create(nil);
try
with db.Params do begin
Clear;
Add('user ''sysdba''');
Add('password ''masterkey''');
Add('page_size = '+IntToStr(ps));
Add('default character set '+cs);
end;
db.SQLDialect:=3;
db.DatabaseName:=path;
try
db.CreateDatabase;
result:=true;
except
on e:exception do
ShowMessage('No se ha podido crear la base de datos.'+#13+'Motivo: '+e.Message);
end;
finally
FreeAndNil(db);
end;
end;

Requiere uses ibdatabase

Espero que te ayude.

Delfino
27-11-2010, 16:39:43
¿ Que Delphi utilizas y que Driver dbExpress ?.

Utilizo Delphi2007 con el driver del chico de malasia comentado en este hilo.

Se q a partir del Delphi 2010 todos pueden ser linkados al exe incluyendo una unidad especifica, pero pensaba q habra alguna manera en versiones anteriores.

Para hacer funcionar a ese driver basta con actualizar los archivos .ini con los valores del driver (copiar y pegar el de Interbase y corregirlo) y incluirlo en el system32. Lo pude hacer funcionar desde el IDE en menos de media hora. Eso si, en tiempo de ejecucion me da un error al crear un TSQLDataset y intentar abrirlo: Assertion failure (C:\Users\coder\Project\source.d11\moon\core\source\firebird\firebird.dsql.pas, line 1159)