Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Lazarus, FreePascal, Kylix, etc. (https://www.clubdelphi.com/foros/forumdisplay.php?f=14)
-   -   ¿Qué componentes usar para sustituir en Lazarus los IBX de Delphi 7? (https://www.clubdelphi.com/foros/showthread.php?t=72459)

rrf 20-02-2011 17:28:42

¿Qué componentes usar para sustituir en Lazarus los IBX de Delphi 7?
 
Hola.

Estoy iniciando el cambio de unas aplicaciones hechas en Delphi 7, con componentes IBX y en Firebird 2.0.5, para adaptarlas a Lazarus.

En estas aplicaciones se accede a Firebird de forma local o en red.

Como no podré usar los componentes IBX, me pregunto que componentes podrían ser los más adecuados para acceder a Firebird desde Lazarus.

He visto muchos comentarios en clubdelphi de los componentes Zeos, aunque quizás hayan otros que también sean buenos.

¿Es una buena opción utilizar los Zeos para sustituir a los IBX?, ¿Hay otros componentes que sean más aconsejables para sustituir a los IBX?.

Gracias de antemano.

Al González 20-02-2011 22:55:10

¡Hola!

Cita:

Empezado por rrf (Mensaje 391467)
¿Hay otros componentes que sean más aconsejables para sustituir a los IBX?

Desconozco si en / para Lazarus hay algo similar a los dbExpress + ClientDataSets de Delphi. Siendo éstos de lo de mejor que hay en Delphi para acceso a múltiples motores, quizá Lazarus cuente con algo similar, ya sea nativamente o mediante trabajos de terceros. :)

rretamar 21-02-2011 13:07:38

Uso los Zeos tanto en Delphi como en Lazarus, (la última versión estable) y me permiten acceder a Firebird sin problemas. Y con pocos cambios en el código los mismos componentes permiten acceso a otros motores (SQLite, MYSQL, PosgreSQL).

rrf 21-02-2011 18:30:00

Cita:

algo similar a los dbExpress + ClientDataSets de Delphi
Gracias Al por tu sugerencia, aunque creo que no hay componentes similares en Lazarus.

Cita:

Uso los Zeos tanto en Delphi como en Lazarus, (la última versión estable) y me permiten acceder a Firebird sin problemas. Y con pocos cambios en el código los mismos componentes permiten acceso a otros motores (SQLite, MYSQL, PosgreSQL).
Y gracias rretamar por tu consejo.

La instalación que tengo es la de CodeTyphon, que incluye instalados los Zeos. Y como confirma rretamar, parecen una buena opción, incluso si hay que cambiar de base de datos.

Ahora la pregunta de quien empieza con algo que desconoce... ¿Alguien sabe de algún enlace a un manual que explique como utilizar los Zeos (con Firebird)? y también, si fuera posible, de alguna aplicación de ejemplo que use los Zeos con Firebird en Lazarus y que pueda ser descargable.

Gracias de antemano.

mightydragonlor 21-02-2011 18:41:59

el TBufDataSet o el TMemDataset, Buffer o Memory, la misma cosa para mi jeje, son los ClientDataSet de lazarus.

Casimiro Notevi 21-02-2011 18:53:34

Tutorial zeos+firebird, aquí.

rretamar 21-02-2011 20:36:39

Cita:

Empezado por Casimiro Notevi (Mensaje 391556)
Tutorial zeos+firebird, aquí.

No conocía ese tutorial. Gracias por el dato.

raulparraco 22-02-2011 00:04:32

Estoy de acuerdo con mightydragonlor pero de acuerdo con este enlace

http://wiki.lazarus.freepascal.org/S...ming_Reference

los componetes sqldb tienen tsqlquery que hereda de TbufDataSet



Cita:

Bueno, ¿cómo hacer que el uso de TClientDataset? El principio es el mismo, usted tiene que llamar TBufDataset.ApplyUpdates.

La única diferencia es que usted no necesita un proveedor. En lugar de agregar proveedor de componentes especiales SQLdb utiliza niños clases de decidir qué mecanismo se debe utilizar para almacenar los datos.

Así que en vez de conectar un TClientDataset (FPC-TBufDataset equivalente) a un proveedor que tiene que conectarse a otro (sólo lectura)-conjunto de datos en SQL FPC simplemente utilizar TSQLQuery, que es derrived de TBufDataset.

Así que en vez de conectar tres componentes juntos, puedes colocar un componente que hace todo lo que los tres componentes en Delphi hacer. (Y más, ya que también hay transacciones de apoyo)

Por lo tanto, TSQLQuery.ApplyUpdates uso, y no te olvides de confirmar la transacción.

Cuando usted está utilizando las preguntas que están más avanzados a continuación, 'select * from tabla' puede que tenga que proporcionar su propia actualización, borrar y consultas de inserción.
Esto es traducción de
Cita:

Well, how would you do that using a TClientDataset? The principle is the same, you have to call TBufDataset.ApplyUpdates.

Only difference is that you don't need a provider. Instead of adding special provider components sqldb uses child-classes to decide which mechanism should be used to store the data.

So instead of connecting a TClientDataset (fpc-equivalent TBufDataset) to a provider which you have to connect to another (readonly) sql-dataset in fpc you simply use TSQLQuery, which is derrived from TBufDataset.

So instead of connecting three components together, you can drop one component which does everything those three components in Delphi do. (And more, since there's also transaction-support)

So, use TSQLQuery.ApplyUpdates, and don't forget to commit the transaction.

When you are using queries which are more advanced then 'select * from table' you may have to supply your own update, delete and insert-queries.
Perdonen la traducción no se ingles y utilice Google Traslate

raulparraco 22-02-2011 00:09:56

Se me olvidaba comentar que los componentes SQLDb no tienen equivalente en Delphi mientras que si uno utiliza los ZEOS queda mas fácil de pasar de Lazarus a Delphi o viceversa

rrf 22-02-2011 01:17:09

Cita:

Tutorial zeos+firebird, aquí.
Casimiro, muchas gracias por el tutorial. No lo he leido, pero parece bueno o muy bueno. Incluso tiene el enlace para descargar ejemplos de aplicaciones (en Delphi). Y hay otro artículo sobre la instalación de los ZEOS (también en Delphi).

Como le seguí la pista, me volví a encontrar con la PAGINA DE DOCUMENTOS DE INTITEC, que recomiendo visitar porque tiene muchos artículos que son muy interesantes. Concretamente, el artículo "Conexión a Firebird desde Delphi con componentes IBX" lo leí hace tiempo y lo considero la mejor y más clara explicación que he visto sobre ello.

Cita:

el TBufDataSet o el TMemDataset, Buffer o Memory, la misma cosa para mi jeje, son los ClientDataSet de lazarus
mightydragonlor, ¿Sabes de algún tutorial y/o alguna aplicación sencilla de ejemplo que explique como usar el TBufDataSet o el TMemDataset?.

Muchas gracias a tod@s por sus aportaciones. Ya voy viendo por donde puedo encaminar lo que quiero hacer.

Saludos

Al González 22-02-2011 02:26:43

Cita:

Empezado por raulparraco (Mensaje 391569)
Perdonen la traducción no se ingles y utilice Google Traslate

Aun así es interesante la información que proporcionas, Raúl.

Muchas gracias por esa aportación. :)

Casimiro Notevi 22-02-2011 03:16:24

Cita:

Empezado por rrf (Mensaje 391572)
[..] Como le seguí la pista, me volví a encontrar con la PAGINA DE DOCUMENTOS DE INTITEC, que recomiendo visitar porque tiene muchos artículos que son muy interesantes. Concretamente, el artículo "Conexión a Firebird desde Delphi con componentes IBX" lo leí hace tiempo y lo considero la mejor y más clara explicación que he visto sobre ello. [..]

Sí, buenísimo el enlace :)

ElKurgan 22-02-2011 07:28:10

Cita:

Empezado por Casimiro Notevi (Mensaje 391583)
Sí, buenísimo el enlace :)

Muy buena página, Casi... Parece que fuera tuya :D

Casimiro Notevi 22-02-2011 11:12:40

Cita:

Empezado por ElKurgan (Mensaje 391593)
Muy buena página, Casi... Parece que fuera tuya :D

je, je, je... ;)

rrf 22-02-2011 19:09:37

El artículo sobre el uso de Zeos con Firebird está francamente bien Casimiro. No lo he acabado, pero lo que he leido está muy claro y comprensible (está en inglés). Y como habla de los componentes en sí, no se nota si es para Delphi o para Lazarus.

Cita:

el artículo "Conexión a Firebird desde Delphi con componentes IBX" lo leí hace tiempo y lo considero la mejor y más clara explicación que he visto sobre ello.
Bueno, de este artículo, además de los elogios que le he hecho, creo que hay que mencionar un error que podría estropearle su utilidad a alguien que esté empezando a usar los IBX y que se guie por el artículo paso a paso.

El error está en la página 9 en la segunda imagen de esa página. En esa imagen, antes de hacer clic en el botón "Generate SQL", hay que tener seleccionados todos los campos que están en el Listbox de la derecha (Update Fields). Si no se hace así y se quedan sin seleccionar esos campos, las sentencias SQL no darán altas, modificaciones, ni borrados del contenido de esos campos.

Con todo, eso no desluce la calidad y claridad del artículo. Vuelvo a repetirlo, creo que es todo un ejemplo a seguir para hacer una guía didáctica.

Saludos.

Casimiro Notevi 22-02-2011 20:19:05

Se marcan automáticamente al "pinchar" sobre "select primary key", así que funciona correctamente tal y como indica el tutorial.

Hablo de memoria, pero creo recordar que es así.
Pruébalo y si hace falta se modifica el tutorial.

rrf 23-02-2011 18:19:09

Cita:

Empezado por Casimiro Notevi (Mensaje 391657)
Se marcan automáticamente al "pinchar" sobre "select primary key", así que funciona correctamente tal y como indica el tutorial.

Hablo de memoria, pero creo recordar que es así.
Pruébalo y si hace falta se modifica el tutorial.

Lo probé y todos los campos quedan seleccionados inicialmente. Sin embargo, las imágenes no se corresponden a lo que verá la persona que haga pruebas basadas en el tutorial. Lo que me parece confuso (normalmente se ven o se siguen más las imágenes que el texto), sobre todo teniendo en cuenta lo claro que está el resto del tutorial.

Si consideras que es mejor modificar el manual y no te es fácil reproducir las imágenes, creo que ayudaría el incluir un comentario que indique que, "aunque en las imágenes de las páginas tal y cual no se vean así, todos los campos deben estar seleccionados en 'Update Fields' " o algo por el estilo.

Así, si alguien tiene una duda, al leer mejor el texto lo aclarará.

Quizás no sea muy importante, pero el tema para mí es bastante sensible porque, cuando empecé a usar los IBX, en un par de ocasiones introduje nuevos campos en una tabla y, por olvidar el seleccionarlos en "update fields" y por no actualizar las sentencias SQL, me pasé mucho tiempo buscando donde estaba el error con los campos nuevos (que no se actualizaban en las altas, ni en las modificaciones).

Saludos.

Casimiro Notevi 23-02-2011 18:50:55

Gracias por la recomendación, le enviaré un mensaje al creador del mismo para que lo modifique si lo cree oportuno.

mightydragonlor 24-04-2011 18:25:20

Cita:

Empezado por rrf (Mensaje 391572)
Casimiro, muchas gracias por el tutorial. No lo he leido, pero parece bueno o muy bueno. Incluso tiene el enlace para descargar ejemplos de aplicaciones (en Delphi). Y hay otro artículo sobre la instalación de los ZEOS (también en Delphi).

Como le seguí la pista, me volví a encontrar con la PAGINA DE DOCUMENTOS DE INTITEC, que recomiendo visitar porque tiene muchos artículos que son muy interesantes. Concretamente, el artículo "Conexión a Firebird desde Delphi con componentes IBX" lo leí hace tiempo y lo considero la mejor y más clara explicación que he visto sobre ello.



mightydragonlor, ¿Sabes de algún tutorial y/o alguna aplicación sencilla de ejemplo que explique como usar el TBufDataSet o el TMemDataset?.

Muchas gracias a tod@s por sus aportaciones. Ya voy viendo por donde puedo encaminar lo que quiero hacer.

Saludos

Hacía tiempo que no leia este post =P, pero si se de un tutorial que explica como usar los TMemDataSet o el TBuffDataSet, espero te sirva.

rrf 24-04-2011 18:47:42

Cita:

Hacía tiempo que no leia este post =P, pero si se de un tutorial que explica como usar los TMemDataSet o el TBuffDataSet, espero te sirva.
Muchas gracias Mightydragonlor. ;)

Por el tiempo transcurrido había pensado que, por alguna razón, no habías recibido la petición, no lo ibas a compartir o que ese manual o tutorial no existía.

Quizás lo pruebe, pero me he dedicado a practicar con los Zeos porque son los componentes de los que he encontrado algunas guías que explican como usarlos.

Saludos.


La franja horaria es GMT +2. Ahora son las 05:49:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi