![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() Hola,
Tratando de desinstalar los componentes BDE (vease el hilo http://www.clubdelphi.com/foros/showthread.php?t=53057) he encontrado que el paquete dbX100 depende del paquete BDERTL100.BPL. Dado que dbX es el prefijo de dbExpress, debo suponer que dbX100 forma parte de dbExpress. dbX100.bpl es el paquete "CodeGear SQL Explorer UI Package". Surgen varias preguntas : Significa esto que dbX depende de BDE ?. Como es posible si se supone que dbX reemplaza a BDE ? Es acaso algún error y aunque lo listan en las dependencias realmente dbX100 no usa BDE ? O es acaso que dbX100 no es realmente parte de dbX y lo del prefijo es casualidad ? Por cierto, alguién conoce algún método para averiguar que unidades integran un paquete Delphi, del cual no tengamos fuentes ? |
#2
|
||||
|
||||
![]() ¡Hola Rolando!
Las dependencias entre paquetes no siempre son "a conciencia", suelen establecerse automáticamente, por una necesidad intrínseca del entorno de Delphi, cada vez que se compila un paquete que usa unidades que también son utilizadas por otro paquete que ya está instalado. Si un paquete de componentes de datos usa la unidad DB.pas (algo que es muy común), un segundo paquete de componentes de datos que use la misma unidad encadenará una dependencia al primero (no puede cada uno tener su propia "DB"). En muchos casos es posible recompilar los paquetes para reorganizar o romper estas dependencias. Tengo dudas de por qué Borland no incluye muchos de los paquetes fuentes, pero en todo caso los archivos de código fuente de dichos componentes sí están disponibles y con ellos pueden crearse nuevamente los/otros paquetes para reinstalarlos, cuidando uno mismo las dependencias que se crean. Espero haber ayudado en algo. Al González. Última edición por Al González fecha: 10-02-2008 a las 10:56:09. |
#3
|
||||
|
||||
[quote=rolandoj;264716]Hola,
Tratando de desinstalar los componentes BDE (vease el hilo http://www.clubdelphi.com/foros/showthread.php?t=53057) he encontrado que el paquete dbX100 depende del paquete BDERTL100.BPL. Dado que dbX es el prefijo de dbExpress, debo suponer que dbX100 forma parte de dbExpress. dbX100.bpl es el paquete "CodeGear SQL Explorer UI Package". Hola amigo: Perdona que me entrometa sin darte una solucion directa, pero creo que estas afrontando mal el problema, ya lei que debes desinstalar los BDE porque quieres instalar unos componentes con el mismo nombre, ¿no te parece una barbaridad? sinceramente creo que lo normal seria renombrar el nombre de los nuevos componentes a instalar, si no eres tu el autor el que lo ha hecho ha pecado de inmodestia al pretender hacer unos componentes con un nombre que ya existe, ¿tan dificil es renombrarlos de la forma TxxTable, TxxDatasource etc.? Yo creo que la solucion esta ahi y no en intentar quitar todo tipo de rastro del BDE en Delphi? Solo es una opinion. ![]() |
#4
|
|||
|
|||
Gracias Al. Implicaciones ?
Cita:
Muchas gracias por los comentarios. Parte de las pruebas que estoy haciendo van en el camino que sugieres; sin embargo, hay algo que me llama la atención de tús comentarios. Lo que planteas es que Borland no ha tenido cuidado de las relaciones entre paquetes, sino que ha confiado el asunto a un manejo automático. Si eso es así, implica cargas innecesarias de código al compilar los aplicativos ?. Eso explicaría el porque el tamaño de los ejecutables compilados con Delphi 2007 es considerablemente mayor que al compilar en versiones previas. Bueno, al menos en las que yo uso actualmente, aunque leí que quienes usan Delphi 7 también consiguen ejecutables más livianos que con el 2007. Voy a estar atento a ese factor cuando termine mis pruebas. Por otra parte, mencionas el caso de la unidad db. Esta unidad es la base común de las tecnologías de acceso a bases de datos , no parte del BDE. En ese orden de ideas debería estar en un paquete diferente, no en BDERtl100. Como sabes que forma parte de BDERtl100, o la mencionastes solo como un ejemplo general ?. No he encontrado ningún BDERtl100.dpk, hay algún otro mecanismo para saber exactamente que unidades integran un paquete ?. Ahora, en una revisión superficial, la única evidencia que encontré de que dbX usa a BDERtl100 es un texto en BDERtl100.xlm diciendo que dbExpress usa a SPParamDesc, definida en BDERtl100. |
#5
|
|||
|
|||
Una explicación de porque renombrar no es buena opción
[quote=brakaman;264736]
Cita:
Muchas gracias por aportar. Sería más bien tema de otro hilo; pero, con el perdón del foro, quiero hacer una excepción y darte un breve resumen de mi opinión. No, no estoy de acuerdo en que usar el mismo nombre sea una "barbaridad". De hecho es lo lógico en un diseño portable, transparente y creciente; renombrar, aparte de ser muy problemático en aplicaciones realmente grandes, como es el caso aquí, genera serios problemas de portabilidad hacia atras, obligando a tener versiones duplicadas de unidades de usuario, sobre todo, las compartidas con otras aplicaciones. En general, a menos que uses aplicaciones pequeñas, no tengas unidades compartidas, uses un solo producto o no tengas que preocuparte por la flexibilidad, renombrar es una muy mala opción En teoría, si algo está muy bien diseñado, deberías tener una capa básica, dependiente del sistema operativo; una capa intermedia, dependiente de tecnologías de servicios tales como gráficas, acceso a Bases de Datos correos, etc; y una capa de usuario final. La independencia en las mismas, debería permitir cambiar las capas superiores sin alterar la capa de usuario, o a lo sumo con un cambio mínimo. Debido a mi experiencia (más de 25 años dedicado exclusivamente a programar), yo soy fanático de la portabilidad y la capacidad de crecimiento. Digamos que es una lección que aprendí hace mucho tiempo; pero, en este caso, el código viene de una época en la que confiaba en Borland para la capa intermedia, que es quién debería haberse encargado. Como en eso hicieron un pobre trabajo, hoy en día ya no confío en ellos y estoy desarrollando mi propia capa intermedia. |
#6
|
|||
|
|||
Problema original practicamente solucionado
Hola a todos,
Agradezco toda la colaboración prestada. Aparentemente ya resolví mi problema básico (vease el hilo http://www.clubdelphi.com/foros/showthread.php?t=53057) y en unos días daré detalles específicos porque creo que es una información particularmente útil para entender el funcionamiento primario de Delphi. Les adelanto algo : Salvo que alguién aporte evidencia en contra, todo indica que hay dependencias entre los paquetes que no deberían ocurrir, confirmando en gran medida lo dicho por Al; pero, al menos en algunos casos, es problema de diseño y no de simple descuido de independizar paquetes al momento de compilar. Me explico, algunos paquetes no tienen separado su acceso a Base de Datos de su código propio, de tal forma que se vuelven dependientes de un paquete que no deberían requerir. |
#7
|
||||||||
|
||||||||
![]() ¡Hola a todos!
Cita:
Cita:
Cita:
Te recomiendo el tema “Understanding the structure of a package” de la ayuda de Delphi, donde, entre otras cosas, se menciona: Cita:
Cita:
Cita:
Cita:
![]() Cita:
Un abrazo empaquetado. Al González. |
#8
|
|||
|
|||
![]() Hola Al,
Muchas gracias por los largos comentarios. Creo que el tema lo amerita. Como te dije, comentaré ampliamente el asunto; pero, por ahora estoy muy ocupado con las pruebas de la aplicación. Espero que el próximo fin de semana podamos intercambiar información y experiencias de esto con calma. Solo una pregunta, como para abrir nuevo tema, por si tienes tiempo antes: Con respecto a las versiones anterioes a la 2007, que he manejado, comparto al 100% tú opinión que el código del compilador Delphi es excelente; pero el del 2007, aún optimizando al máximo los parámetros de compilación, es mucho mayor que el del mismo programa en la versión previa. Leí que lo arreglaban en el Update 3; pero no ha sido así. Que sabes al respecto ? Muchos saludos |
#9
|
||||
|
||||
![]() Cita:
Creo que por lo pronto Andreano podría respondernos a esta duda. Edito: Ahora que lo pienso, creo que sí podrían ser algo más grandes (habría que hacer pruebas para determinar la diferencia proporcional, y ver si esta es realmente mucha o poca) debido a la útil característica de las funciones "in-line" introducida en Delphi 2005. De momento es la única explicación teórica que tendría. Estaremos pendientes de ese detalle. Saludos. Al González. Última edición por Al González fecha: 11-02-2008 a las 19:18:12. |
#10
|
|||
|
|||
Otro caso extraño
Hola Al,
Como este caso te llamó la atención, y estas por probar Delphi 2007, te invito a que mires otro muy raro con que me he encontrado en las pruebas. Esta vez no se trata de hacer algo "no standard" sino de lo que creo es un error; pero ojala que no, porque para mi trabajo sería catastrófico. Vale anotar que, aunque ni siquiera tendría que tener relación con el reemplazo de BDE, para este nuevo problema restauré los paquetes a su estado original. El hilo es : http://www.clubdelphi.com/foros/showthread.php?t=53141 |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Sql De Que Depende | cmena | SQL | 3 | 10-07-2004 19:53:18 |
problemas con un IBDataSet que depende de otro!!! | Giniromero | Conexión con bases de datos | 3 | 07-10-2003 09:52:55 |
![]() |
|