Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Necesito un "BDE Administrator" para dbExpress (https://www.clubdelphi.com/foros/showthread.php?t=47610)

rolandoj 02-09-2007 18:12:53

Necesito un "BDE Administrator" para dbExpress
 
Hola,

Necesito manejar las conexiones de dbExpress exactamente como se manejan los Alias en BDE. Con esto quiero decir que necesito una forma de que, sin cambiar para nada los ejecutables, puedan redifinirse las conexiones para que apunten ya sea una Base de Datos distinta, o cambiar el motor de la Base de Datos que se tiene, o simplemente cambiar otros parámetros de la conexión.

El tipo de aplicaciones que desarrollo parte del supuesto que el aplicativo no está amarrado a un motor de Base de Datos y que este tipo de ajuste lo debe poder hacer el cliente, no el programador. Es vital conservar esta funcionalidad.

De lo que he averiguado hasta ahora sobre dbExpress, entiendo que ello puede lograrse mediante el connectionName, que sería la emulación del AliasName, tomando los parámetros del archivo .Ini definido así ; pero, como hacer que el usuario pueda administrar facilmente este archivo, sin requerir que entre a editarlo con un block de notas, lo que implica perder el soporte de la ayuda en línea ?

Mi plan original era escribir yo una utilidad que hiciera eso; pero en otro hilo me dijeron que podía hacerse directamente. sin embargo, aunque pregunté, nadie me ha dicho como. Podría alguién orientarme en esto.

teletranx 05-09-2007 00:43:00

Estimado, yo estoy utilizando FireBird con DBExpress, creo un Dll de conexión, en la cual redirecciono a una o otra base, cambiando un ini.
No se si eso necesitas, si es así te envió la rutina

JC:cool:

rolandoj 05-09-2007 14:12:23

Gracias. Como cambias el .Ini ?
 
Cita:

Empezado por teletranx (Mensaje 228402)
Estimado, yo estoy utilizando FireBird con DBExpress, creo un Dll de conexión, en la cual redirecciono a una o otra base, cambiando un ini.
No se si eso necesitas, si es así te envió la rutina

JC:cool:

Hola,
Gracias por la respuesta y la oferta.

La verdad no estoy muy seguro de entender bien lo que mencionas.

Corrijeme si me equivoco. Cuando tú hablas de que usas un DLL de conexión, supongo que a lo que te refieres es que concentras el código de acceso a la Base de Datos en un DLL, similar a la lógica del servidor Web, y que, asociado a ese DLL. manejas la conexión con un archivo ini (concretamente el dbxconnections.ini), de tal forma que cambiar de Base de Datos, o motor, es cambiar solo el .Ini.

Ahora bien, la pregunta es como modificas el .Ini ?. El .Ini se puede modificar con el block de notas; pero lo que yo necesito es un programa, independiente del aplicativo, que lo haga manejando la integridad y la documentación, mostrando al usuario una interfase similar a la mostrada por el BDE Administrator. Dicho en otra palabras, un programa que le muestre al usuario todos los parametros que puede cambiar, brindandole una forma fácil, segura y didactica (o sea bien documentada con un sistema de ayudas) de hacerlo. Tienes un programa de esas características ?

Nota general:

Como quizás me entendieron mal en el otro hilo, si alguién sabe que no hay nada así disponible para dbExpress, por favor confirmelo para empezar a hacer uno.

basti 05-09-2007 14:57:20

Para cambiar la base de datos sólo necesitas cambiar el driver del SqlConection. El driver es una dll. Si quieres que tu aplicación trabaje para varias bases de datos, tienes que adjuntar las dll con tu aplicación.

Creo que a lo que se refiere teletranx, es que guarda en un ini el nombre de la dll con la que se quiere conectar.

Delphi tiene la clase TIniFile para el manejo de este tipo de archivos. Puedes hacer un pequeño programa que permita cambiar el el nombre de la dll en el ini, luego en tu aplicación cambias este valor en el SqlConnection leyéndolo del ini.

rolandoj 05-09-2007 17:00:53

Gracias; pero el problema es más complejo
 
Cita:

Empezado por basti (Mensaje 228514)
Para cambiar la base de datos sólo necesitas cambiar el driver del SqlConection. El driver es una dll. Si quieres que tu aplicación trabaje para varias bases de datos, tienes que adjuntar las dll con tu aplicación.

Creo que a lo que se refiere teletranx, es que guarda en un ini el nombre de la dll con la que se quiere conectar.

Delphi tiene la clase TIniFile para el manejo de este tipo de archivos. Puedes hacer un pequeño programa que permita cambiar el el nombre de la dll en el ini, luego en tu aplicación cambias este valor en el SqlConnection leyéndolo del ini.

Hola,

Gracias por la aclaración.

Si, yo he manejado muchas veces todo eso de leer y escribir archivos .Ini desde un programa; pero el problema no es tan simple como cambiar el nombre del driver o distribuír las diversas DLLs, eso solo es una muy pequeña parte.

En diferentes motores, los parámetros pueden tener significados diferentes, o diferentes valores válidos, o incluso no existir; eso sin contar la sintaxis de los valores de dichos parámetros, como la convención del nombre del archivo de Base de Datos (incluso, puede que no debas suministrar el nombre físico del archivo, sino un nombre lógico creado en el motor). El usuario encargado de configurar la aplicación en cada caso debería contar con una herramienta que le permita cambiar cualquier parámetro con pleno conocimiento de lo que está haciendo.

El BDE Administrator hace eso bastante bien. Hacer un programa equivalente para dbExpress no es fácil, ten en cuenta que el programa debe almacenar la definición interna de cada driver posible, permitir crear conexiones basadas en un driver, editar en cada conexión todos los parámetros, validando la edición y encima contar con un sistema de ayudas que documente al usuario.

La gran pregunta para mí sigue siendo si ese programa ya está disponible. Empiezo a creer que no porque nadie parece saber al respecto


La franja horaria es GMT +2. Ahora son las 21:30:36.

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