PDA

Ver la Versión Completa : Componentes conexión Firebird + Delphi 7 que soporten SetRange, FindKey, etc


tdi_daniel
03-02-2012, 14:05:01
Buenas, necesito unos componentes de conexión entre Delphi 7 y firebird que soporten los típicos append, edit, post, findkey, setrange, etc.

He probado con DBX, ZeosLib, AnyDAC y IBDAC, y me funcionan bien (excepto el IBDAC con el que no me compilan ni un proyecto de ejemplo), pero no incluyen ni findkey ni setrange, los cuales me resultan bastante importantes ya que tengo que cambiar de base de datos una aplicación con bastantes de estas sentencias.

Un saludo.

jgutti
06-02-2012, 13:34:32
los ibclientdataset

tdi_daniel
06-02-2012, 17:08:47
los ibclientdataset

Acabo de comprobar el componente que me comentas (es uno de los que vienen por defecto en la paleta InterBase) y efectivamente tiene los procedimientos SetRange y FindKey, pero creo que no me vale para el fin que persigo, ya que lo que yo necesito es poder recorrer las distintas tablas de la BBDD y poder realizar Append, Open, Close, Edit, Post, SetRange, CancelRange, FindKey, Locate, etc, pero sobre la tabla (como si se tratase de un TTable normal).

Hasta ahora esto lo podía hacer sin problemas (tengo aplicaciones hechas en Paradox y en Pervasive), pero en Firebird no encuentro ningún componente que lo haga (mi intención es migrar todas las aplicaciones a Firebird modificando lo menos posible el código fuente ya que son miles de líneas de código plagadas de SetRange y FindKey, para lo cual no me importa tener que utilizar algún complemento de pago, siempre y cuando tenga estos procedimientos).

Un saludo.

Casimiro Notevi
06-02-2012, 17:49:10
No me entero de qué quieres entonces :confused:

tdi_daniel
06-02-2012, 18:01:08
No me entero de qué quieres entonces :confused:

Poder hacer un SetRange y un FindKey a una tabla de una base de datos FireBird (por ejemplo: nombreTabla.SetRange[X],[Y]), para lo cual lo único que necesito es un componente que lo soporte.

newtron
06-02-2012, 20:30:50
Hola.

Lo que creo que necesitas son componentes que admitan el componente ttable, como si fueran bases de datos de escritorio. Yo hace tiempo estuve haciendo unas pruebas y encontré esto (http://www.devart.com/ibdac/). La única pega es que es de paganini.

Saludos

tdi_daniel
07-02-2012, 09:58:19
Hola.

Lo que creo que necesitas son componentes que admitan el componente ttable, como si fueran bases de datos de escritorio. Yo hace tiempo estuve haciendo unas pruebas y encontré esto. La única pega es que es de paganini.

Saludos

Exacto, lo que necesito son unos componentes que tengan el equivalente al Ttable. En cuanto a los que me recomiendas (IBDAC) son unos de los que había probado, y tal como ponía en el primer post:
He probado con DBX, ZeosLib, AnyDAC y IBDAC, y me funcionan bien (excepto el IBDAC con el que no me compilan ni un proyecto de ejemplo), pero no incluyen ni findkey ni setrange
Sigo la búsqueda de una solución.
Un saludo.

newtron
07-02-2012, 11:26:27
Ops.... llevas razón, no me había percatado de que ya habías probado ese componente.

Pues mal asunto porque si no encuentras un componente adecuado o cambias el código o cambias la base de datos. Yo en su día tuve exactamente el mismo problema que comentas y opté por usar una base de datos que se llama Elevatedb (http://www.elevatesoft.com/products?category=edb) que cumple con lo que necesitas, lo que pasa es que tiene dos peros, es de pago también y por otro lado no es firebird. Por otro lado te puedo comentar que después de algunos años con algunos problemas, ya es un producto maduro y va bastante bien, con características bastante interesantes como poder usarlo en modo escritorio o cliente/servidor sin modificar la instalación, es bastante rápida, etc. y por otro lado tienen un servicio técnico bastante bueno (en un perfecto inglés, claro).

Saludos

tdi_daniel
07-02-2012, 11:33:59
Ops.... llevas razón, no me había percatado de que ya habías probado ese componente.

Pues mal asunto porque si no encuentras un componente adecuado o cambias el código o cambias la base de datos. Yo en su día tuve exactamente el mismo problema que comentas y opté por usar una base de datos que se llama Elevatedb que cumple con lo que necesitas, lo que pasa es que tiene dos peros, es de pago también y por otro lado no es firebird. Por otro lado te puedo comentar que después de algunos años con algunos problemas, ya es un producto maduro y va bastante bien, con características bastante interesantes como poder usarlo en modo escritorio o cliente/servidor sin modificar la instalación, es bastante rápida, etc. y por otro lado tienen un servicio técnico bastante bueno (en un perfecto inglés, claro).

Saludos

Muchas gracias por la información, lo tendré muy en cuenta (voy a buscar información con respecto a esa BBDD, y el funcionamiento de sus licencias).
Un saludo.

newtron
07-02-2012, 12:22:28
No hay de qué hombre. Ya te adelanto yo algo.

Comprando la base de datos lo que realmente compras son los componentes y el servidor de la base de datos por si la quieres usar en modo cliente/servidor. No hay royalties por las instalaciones en los clientes, lo único es que si quieres que te vayan mandando las actualizaciones si tendrás que pagar una cuota de mantenimiento anual pero no es mucho dinero dependiendo de los componentes que compres porque los puedes comprar con o sin código fuente. Yo en su día los compré con el código fuente pero es tontería porque es bastante más caro y al final no los usas porque no creo que te vayas a meter en modificar el código.

Cualquier duda que tengas me preguntas que con esto llevo yo varios años y sé un poco por donde van los tiros.

Saludos

Casimiro Notevi
07-02-2012, 12:48:48
Exacto, lo que necesito son unos componentes que tengan el equivalente al Ttable.

¿Y no te sirve el TIBtable de las IBX que trae delphi?

mightydragonlor
07-02-2012, 15:23:23
o el TZTable de los componentes ZeosDB?

Casimiro Notevi
07-02-2012, 17:12:37
¿Y no te sirve el TIBtable de las IBX que trae delphi?

o el TZTable de los componentes ZeosDB?

Mismamente :)

tdi_daniel
07-02-2012, 17:54:52
No hay de qué hombre. Ya te adelanto yo algo.

Comprando la base de datos lo que realmente compras son los componentes y el servidor de la base de datos por si la quieres usar en modo cliente/servidor. No hay royalties por las instalaciones en los clientes, lo único es que si quieres que te vayan mandando las actualizaciones si tendrás que pagar una cuota de mantenimiento anual pero no es mucho dinero dependiendo de los componentes que compres porque los puedes comprar con o sin código fuente. Yo en su día los compré con el código fuente pero es tontería porque es bastante más caro y al final no los usas porque no creo que te vayas a meter en modificar el código.

Cualquier duda que tengas me preguntas que con esto llevo yo varios años y sé un poco por donde van los tiros.

Saludos
Eso es exactamente lo que busco, que no cobren por las instalaciones en los clientes, de momento voy a seguir mirando si consigo lo que quiero para FireBird (ya que sigo teniendo en mente el trasladar todo a ésta base de datos), sino lo consiguiera le hecharé un vistazo :)
¿Y no te sirve el TIBtable de las IBX que trae delphi?
o el TZTable de los componentes ZeosDB?
Mismamente :)
Tanto los TIBtable de IBX como los TZTable de ZeosLib los he probado (abrí el post porque ya estaba desesperado buscando componentes) y ninguno de los dos tienen ni los SetRange ni los FindKey (comprobado por mí ahora mismo de nuevo por si estaba equivocado).

Muchas gracias de todas maneras a todos.

guillotmarc
07-02-2012, 18:39:00
Hola.

Nunca he utilizado esos métodos (Findkey o SetRange), pero ambos están presentes en el ClientDataset, con lo que, ¿ no puedes conectar tu consulta a un ClientDataset, utilizando cualquier componente de acceso de los que ya has citado ?.

Puedes trabajar con el ClientDataset exactamente igual que con cualquier componente de datos (Edit, Post, ...), solo que al final tendrás que hacer una llamada al método ApplyUpdates.

Saludos.

newtron
07-02-2012, 18:52:49
Eso es exactamente lo que busco, que no cobren por las instalaciones en los clientes, de momento voy a seguir mirando si consigo lo que quiero para FireBird (ya que sigo teniendo en mente el trasladar todo a ésta base de datos), sino lo consiguiera le hecharé un vistazo :)


Si encuentras algo interesante lo comentas, también me gustaría saber si existe algún componente para firebird que cumpla esos requisitos.

guillotmarc
07-02-2012, 20:57:43
¿ Que problema tienes con utilizar un ClientDataset (conectado a cualquiera de los muchos componentes de acceso a Firebird) ?, solo tienes que añadir un ApplyUpdates cuando hayas terminado, el resto se utiliza como cualquier TTable.

Incluso puedes utilizar un ClientDataset integrado, como el IBClientDataset que te recomendaron anteriormente.