PDA

Ver la Versión Completa : No se desinstala BDE en Delphi 2007 Update 3


rolandoj
08-02-2008, 21:13:32
Hola,

Alguién sabe como pueden desintalarse componentes en el update 3 de Delphi 2007 ?. El problema es que no funciona como se supone que debía hacerlo. Me explico:

He instalado el update 3 de Delphi 2007, después de lo cual estoy teniendo problemas porque necesito desinstalar el BDE y no me está dejando. Lo malo es que no puedo regresar a la versión anterior porque según leí, el Update 3 corrige un grave error del dbExpress con Oracle, y lo más seguro es que mi aplicación más tarde deba correr con Oracle

Lo que he hecho para tratar de desintalar es lo siguiente:

1. Como primer intento, traté de hacerlo desde Delphi con Component / Install Packages, y usando Remove sobre "CodeGear BDE DB Components". Esto aparentemente trabaja, porque lo retira de la lista; pero en realidad, el sistema sigue manteniendo el registro de los componentes BDE porque, aparentemente, quién los registra es otro paquete.

2. Como segundo intento, lo hice desde el instalador de Delphi, colocando con X roja todo lo que tiene que ver con BDE. El sistema no solo no los desinstaló, encima volvió a instalar todo.

3. Traté incluso de borrar las entradas relacionadas con los componentes en el registro de Windows y de quitar de los directorios Bin y Lib los archivos relacionados; pero aún así siguen apareciendo.

Por favor no me sugieran que cambie de versión de Delphi. Yo tengo una pésima opinión del Delphi 2007 y no trabajo con el por gusto sino por obligación.

maeyanes
08-02-2008, 21:41:57
Hola...

Quieres desinstalar el motor del BDE o los componentes basados en BDE?

Por que si es el motor, no tiene desintalador. Aunque tal vez buscando en Google encuentres como deshacerte de él...

Si son los componentes, pues prueba desde el menú Components|Install Packages....

En la ventana resultante busca CodeGear BDE DB Components, los seleccionas y le das en el botón Remove...


Saludos...

rolandoj
08-02-2008, 22:52:33
Hola...

Quieres desinstalar el motor del BDE o los componentes basados en BDE?

Por que si es el motor, no tiene desintalador. Aunque tal vez buscando en Google encuentres como deshacerte de él...

Si son los componentes, pues prueba desde el menú Components|Install Packages....

En la ventana resultante busca CodeGear BDE DB Components, los seleccionas y le das en el botón Remove...


Saludos...

Hola,

Muchas gracias por la colaboración.

Respecto a lo primero, me interesa más que todo desinstalar los componentes. El motor BDE como tal no me es tan crítico y en últimas en ese sí sé como desinstalar completemente del registro de Windows, y desinstalar sus archivos.

Respecto a tú idea, como digo en mi primer mensaje, esa solución ya la intenté y aparentemente funciona; pero en realidad no trabaja bien.

La opción elimina los componentes de la lista de paquetes y operativamente parece que los hubiera retirado; pero el sistema en realidad retiene la definición de los componentes. Eso se puede apreciar al intentar registrar un componente con el mismo nombre. Al parecer, cuando se instalan, se efectúa en alguna parte un registro; pero no sé donde. Las busquedas en el registro de Windows, basadas en los nombre de componentes, no arrojan nada claro al respecto. De todas formas borré las referencies que encontré, y no funcionó.

Muchos saludos

rolandoj
09-02-2008, 03:09:32
Hola,

Con algunas pruebas, y algo deducción, creo haber avanzado un poco en el problema:

Lo que está ocurriendo es que el registro de los componentes bde se hace con una librería de tiempo de ejecución que no es desinstalada cuando se desinstala "CodeGear BDE DB Components" con el método visto.

Esa librería no se muestra dentro de los paquetes de tiempo de diseño por lo que no puede desinstalarse con el mismo método.

La librería en cuestión es bdertl100.bpl y está ubicada en System32.

Intenté borrarla y Delphi se me bloqueo. Ahora tengo la idea de reemplazarla por otra que no haga nada, en el supuesto de que esta librería no debería ser utilizada por Delphi, excepto si un proyecto usa BDE; y que el bloqueo se produjo porque hay una lista de paquetes internos que deberían existir, la cual intenta cargarla. Si esto no es así, alguién sabe como emularla ?

En principio suena bien; pero quiero minimizar riesgos. La librería está acompañada por un archivo jdbg y un XML. El XML se genera por Project\Options; pero como hago para generar el jdbg ?. Busqué en internet y encontre muchas referencias diciendo que son archivos que generan información de debug; pero nada acerca de como generarlos desde Delphi.
Alguién sabe algo respecto a esto ?

egostar
09-02-2008, 04:00:29
Aun no entiendo el porque quieres "quitar" los componentes BDE, pero si así lo deseas lo puedes hacer desde


Component-->Install Packages-->Quitas la marca (NO REMOVE) de Borland BDE DB components y listo, ya no deberias ver la paleta de BDE.


Pero insisto, no se porque quieres quitarlos, si no los necesitas, pues que mas da tenerlos ahí :confused:

Salud OS

rolandoj
09-02-2008, 04:32:53
Aun no entiendo el porque quieres "quitar" los componentes BDE, pero si así lo deseas lo puedes hacer desde



Pero insisto, no se porque quieres quitarlos, si no los necesitas, pues que mas da tenerlos ahí :confused:

Salud OS

Hola,

Gracias por responder; pero ese método no es suficiente. El sistema sigue manteniendo internamente la presencia de los componentes. Si lees con detalle mis notas previas en este hilo verás que ese fué el primer método que intenté; pero como ahí explico, solo desinstala "aparentemente". Sí, desaparecen de la paleta; pero no se desinstalan completamente porque el sistema sigue usandolos ya que los toma de un paquete diferente al que se desinstala y por tanto no deja reemplazarlos.

La razón de querer desinstalarlos es precisamente esa.

egostar
09-02-2008, 04:45:41
Veamos, tomando lo que dices en tu primer post:


Alguién sabe como pueden desintalarse componentes en el update 3 de Delphi 2007 ?. El problema es que no funciona como se supone que debía hacerlo. Me explico:


Como se supone que deben de funcionar o mas bien que es lo que no funciona como quieres.


He instalado el update 3 de Delphi 2007, después de lo cual estoy teniendo problemas porque necesito desinstalar el BDE y no me está dejando. Lo malo es que no puedo regresar a la versión anterior porque según leí, el Update 3 corrige un grave error del dbExpress con Oracle, y lo más seguro es que mi aplicación más tarde deba correr con Oracle


Mi pregunta expresa fué, no entiendo porque quieres desinstalarlo, los usas o no los usas......


Lo que he hecho para tratar de desintalar es lo siguiente:

1. Como primer intento, traté de hacerlo desde Delphi con Component / Install Packages, y usando Remove sobre "CodeGear BDE DB Components". Esto aparentemente trabaja, porque lo retira de la lista; pero en realidad, el sistema sigue manteniendo el registro de los componentes BDE porque, aparentemente, quién los registra es otro paquete.


Yo he dicho (NO REMOVE), solo quitar la marca.


2. Como segundo intento, lo hice desde el instalador de Delphi, colocando con X roja todo lo que tiene que ver con BDE. El sistema no solo no los desinstaló, encima volvió a instalar todo.

3. Traté incluso de borrar las entradas relacionadas con los componentes en el registro de Windows y de quitar de los directorios Bin y Lib los archivos relacionados; pero aún así siguen apareciendo.


Sigo sin entender, para que quieres desinstalarlos......


Por favor no me sugieran que cambie de versión de Delphi. Yo tengo una pésima opinión del Delphi 2007 y no trabajo con el por gusto sino por obligación.


Ni siquiera habia pensado en esa opción, y si ya tienes una pésima opinión y además trabajas con ella por obligación, pues que te digo, lastimosamente tienes dos trabajos.

Salud OS

rolandoj
09-02-2008, 04:59:40
Hola,

Gracias de nuevo.

Respecto a desmarcar, para inhabilitarlo en la parte visual de diseño, incluso eso es suficiente; pero, no los desinstala. Cuando hablo de desinstalar me refiero a que no exista referencia de ellos en todo el sistema.

La razón de querer desinstalarlos es que necesito reemplazarlos por otros de igual nombre. Dicho en otras palabras, si uso el nombre de los componentes; pero con una funcionalidad diferente; o sea, por ejemplo, uso un TQuery, pero no el del BDE, y la alternativa de usarlos con otro nombre me representaría un enorme problema

Saludos

poliburro
09-02-2008, 16:15:39
Hola,


La razón de querer desinstalarlos es que necesito reemplazarlos por otros de igual nombre. Dicho en otras palabras, si uso el nombre de los componentes; pero con una funcionalidad diferente; o sea, por ejemplo, uso un TQuery, pero no el del BDE, y la alternativa de usarlos con otro nombre me representaría un enorme problema

Saludos


Va a ser más facil que renombres a las nuevas clases.

rolandoj
10-02-2008, 00:23:02
Hola a todos,

Agradezco la atención que han brindado al tema y los actualizo al respecto.

El problema definitivamente está, si no todo, si la mayor parte, alrededor de la librería bdertl100.bpl.

No he encontrado documentación seria de ella; pero, analizando el registro de Windows, hay muchas referencias a la misma. Era algo que se me había pasado inicialmente porque había buscado solo en HKLM, asumiendo que era una configuración general; pero es una configuración de usuario que aparece en varios partes de HKCU y, lógicamente, en HKEY_USERS.

Parte del problema creo que es porque aparece como librería dependiente en paquetes que, aparentemente, no la deberían usar. El caso más notorio es que aparece en la lista del paquete dbX100. Dado el prefijo dbX, debo creer que es parte de dbExpress; pero en tal caso, la gran pregunta es : Si se supone que dbX es el reemplazo de BDE, que hace el BDE como parte de dbx ?.

Bueno, eso es tema de otro hilo y lo abriré más tarde. Voy a realizar pruebas quitando poco a poco esas dependencias, y haciendo otras modificaciones en
el registro (como hacer que cargue bajo demanda). Les contaré los
resultados; pero si alguién sabe algo al respecto agradezco cualquier ayuda.

Unos comentarios individuales:

Maeyanes :

Olvide responder tú observación de que el BDE no tiene desinstalador. Se supone que se desinstala con el Instalador de Delphi, que cuenta con una opción para ello. Ahora, esa opción no me funcionó, hicistes el comentario porque tienes información de que definitivamente esa opción no funciona ?

Poliburro :

Por varias razones, no me es más facil renombrar. Aún si lo fuera, de todas formas haría todo lo posible por usar esta solución porque creo que la parte interesante de Ingeniería es lograr reemplazar las originales.

egostar :

Se me había olvidado agradecerte el apoyo respecto a tener que usar Delphi 2007. Yo soy un gran fanático de Delphi, y he usado ininterrumpidamente casi toda la línea, desde que empecé con Turbo Pascal 3.0 para DOS, a mediados de los 80s, hasta llegar a Delphi 7. Dicho eso, entenderás que me haya sido impactante encontrarme con algo tan lleno de problemas como Delphi 2007, no entiendo como se las arreglaron para dañar tanto a un producto tan bueno.

Al González
10-02-2008, 21:24:31
¡Hola Rolando!

Me permito hacer algunas observaciones aquí, antes de continuar en el otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090).

La naturaleza de las dependencias indirectas entre paquetes no es exclusiva de Delphi 2007, existe desde las primeras versiones de Delphi y obedece más que nada a la forma en que Windows gestiona las DLLs (recordar que un .bpl es, en esencia, una DLL).

dbExpress no es precisamente un reemplazo a la BDE, sino una alternativa. Pero es claro que ya nadie recomienda usar BDE. En lo personal llevo algún tiempo utilizando dbExpress porque estoy plenamente convencido de su superioridad respecto a otros caminos de datos, aunque con Delphi 2007 (RAD Studio) apenas iniciaré dentro de un par de semanas (tendré oportunidad de evaluar qué tan mejorado o “dañado”, como tú dices, está el producto).

Como comenté en el otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090), al parecer el paquete de dbExpress se encadenó al paquete de BDE. Pero esto no tiene que representar ningún problema, ya que sólo afecta (si es que se le puede llamar "afectar") al entorno de Delphi pero no a tus aplicaciones compiladas.

Por otro lado, creo que usar nombres existentes para nuevas clases de objetos es una mala práctica, lo digo con todo respeto. En el único caso donde lo veo válido es cuando se trata de clases interpuestas (un buen truco difundido por Ian Marteens en uno de sus blogs). Si creas nuevas clases de componentes, sea o no para instalar en la paleta, por lo general es mejor que les des nombres que no tengan conflicto con otros componentes. Francamente no visualizo ninguna justificación seria para usar los mismos nombres. Si es porque tienes cientos o miles de archivos fuentes con referencias a esos nombres, deberías emplear una utilidad de reemplazo masivo. ¿Podrías comentarnos qué te motiva a darle a tus nuevas clases los mismos nombres que ya tienen algunos componentes nativos?

Finalmente te recomiendo usar el término biblioteca en lugar de librería (http://www.clubdelphi.com/foros/showthread.php?t=52131).

Ahora me paso al otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090).

Un abrazo textil.

Al González.

rolandoj
10-02-2008, 21:59:53
Hola a todos,

Agradezco toda la colaboración prestada.

Les comentó que aparentemente he resuelto el problema.

Digo aparentemente porque ya logré que permitiera instalar el paquete que reemplaza a la unidad dbTables, y he conseguído recompilar las aplicaciones originales, practicamente sin cambiar nada en los fuentes de las mismas (solo agregar la unidad Webbroker en un DLL). Igualmente he verificado que los componentes que están tomando los programas son los nuevos y no los del BDE. Falta probar a fondo, ya ejecutando. Eso tomará algunos días; pero he querido tenerlos al tanto.

En cuanto me desocupe lo suficiente les daré detalles específicos. Por ahora, solo les diré que el problema era la librería BDERtl100.bpl. Esta librería es la que registra a dbTables; luego hay que retirarla para lograr instalar una nueva versión. Lo que estaba ocurriendo es que hay una serie de paquetes que dependen de ella y la cargan automáticamente, así que fué necesario
inhabilitarlos a todos.

rolandoj
10-02-2008, 22:05:54
¡Hola Rolando!

Me permito hacer algunas observaciones aquí, antes de continuar en el otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090).

La naturaleza de las dependencias indirectas entre paquetes no es exclusiva de Delphi 2007, existe desde las primeras versiones de Delphi y obedece más que nada a la forma en que Windows gestiona las DLLs (recordar que un .bpl es, en esencia, una DLL).

dbExpress no es precisamente un reemplazo a la BDE, sino una alternativa. Pero es claro que ya nadie recomienda usar BDE. En lo personal llevo algún tiempo utilizando dbExpress porque estoy plenamente convencido de su superioridad respecto a otros caminos de datos, aunque con Delphi 2007 (RAD Studio) apenas iniciaré dentro de un par de semanas (tendré oportunidad de evaluar qué tan mejorado o “dañado”, como tú dices, está el producto).

Como comenté en el otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090), al parecer el paquete de dbExpress se encadenó al paquete de BDE. Pero esto no tiene que representar ningún problema, ya que sólo afecta (si es que se le puede llamar "afectar") al entorno de Delphi pero no a tus aplicaciones compiladas.

Por otro lado, creo que usar nombres existentes para nuevas clases de objetos es una mala práctica, lo digo con todo respeto. En el único caso donde lo veo válido es cuando se trata de clases interpuestas (un buen truco difundido por Ian Marteens en uno de sus blogs). Si creas nuevas clases de componentes, sea o no para instalar en la paleta, por lo general es mejor que les des nombres que no tengan conflicto con otros componentes. Francamente no visualizo ninguna justificación seria para usar los mismos nombres. Si es porque tienes cientos o miles de archivos fuentes con referencias a esos nombres, deberías emplear una utilidad de reemplazo masivo. ¿Podrías comentarnos qué te motiva a darle a tus nuevas clases los mismos nombres que ya tienen algunos componentes nativos?

Finalmente te recomiendo usar el término biblioteca en lugar de librería (http://www.clubdelphi.com/foros/showthread.php?t=52131).

Ahora me paso al otro hilo (http://www.clubdelphi.com/foros/showthread.php?t=53090).

Un abrazo textil.

Al González.

Hola Al,

Muchas gracias por los comentarios. Te explicaré en todo detalle porque quería reemplazar los originales, y porque al hacerlo tengo grandes ventajas frente al reemplazo masivo que planteas, aunque creo que leyendo el otro hilo, ya te imaginarás las razones que ahora no alcanzas a ver.

Lo haré en los próximos días. Ahora necesito concentrarme en probar las aplicaciones.

rolandoj
21-02-2008, 16:28:07
Hola a todos,

Para resumir el estado del hilo, aunque pude desinstalar y reemplazar el BDE,aparentemente trabajando bien, en una de las aplicaciones se presentó un conflicto con un paquete, que en teoría no debía usar el BDE; pero que lo usa. Como me era crítico y no pude solucionarlo, me tocó sacrificar la portabilidad y renombrar clases. Aunque esto funcionó, es una mala solución que me genera bastantes problemas.

Ahora, una disculpa para Al.

No he podido abrir el nuevo hilo para explicar en detalle porque me era tan importante lograr el reemplazo de BDE, debido a que se me han seguído presentando una cantidad de problemas con la herramienta, que no me han dejado tiempo libre.

Al más crítico le acabo de abrir un hilo. En ese creo, y espero, que el problema si sea de manejo mío, porque no tengo mucha experiencia con dbExpress. Pueden verlo en el siguiente hilo:

http://www.clubdelphi.com/foros/showthread.php?p=267562#post267562