Ver Mensaje Individual
  #1  
Antiguo 10-09-2007
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 18
rolandoj Va por buen camino
Question Error en Emulación de BDE usando dbExpress

Hola,

Para migrar aplicaciones BDE en Delphi 4 a dbExpress con Delphi 2007 he estado desarrollando una librería que emule los componentes BDE usando como capa interna dbExpress. Mi estrategia ha sido crear componentes con los mismos nombres de los del BDE, que desciendan de sus homólogos dbExpress. Esto me permitiría migrar transparentemente sin necesidad de re-escribir código.

Las cosas estaban saliendo bien, la unidad era pequeña (menos de 6k) y el paquete había registrado los componentes TDatabase, TQuery, etc; pero en un momento dado me encontré con una funcionalidad que cambió la forma de almacenarse en los dfm y para corregirla necesito corregir la propia unidad SqlExpr de CodeGear. Para ello pensé que lo mejor era mezclarlo todo en mi unidad, generando una versión grande de la misma; pero al hacerlo, y tratar de instalar de nuevo el paquete, me marca un error diciendo que no puede registrarlos porque otro paquete (el dclBDE100.Bpl, del cual no aparece el fuente) ya ha registrado esos nombres.

Lo raro es que siempre que uso la versión pequeña de mi unidad, los componentes se registran bien; es decir, Delphi me permite registrar componentes que tengan el mismo nombre. Yo supongo que lo hace porque están en paquetes distintos y se registran en páginas distintas.

Ahora bien, la pregunta es por qué falla al usar la versión grande ?. Yo supongo que de alguna forma, al incorporar directamente a ella referencias a una serie de unidades de la unidad original SqlExpr se está involucrando una referencia a una unidad que requiera del registro de TDatabase y compañía. Busqué en los fuentes Codegear y el único punto de registro de TDataBase y demás es la unidad BDEReg; pero se supone que el paquete dbExpress no debe contener referencias a BDE, luego, qué pasa ?. Alguién tiene una idea.

Última edición por rolandoj fecha: 10-09-2007 a las 17:28:32. Razón: Nombre de unidad mal escrito
Responder Con Cita