Al principio de Delphi, la gente elogiaba el soporte multi-DBMS en Delphi. Todo el mundo amaba el BDE (porque esa era la única forma de hacerlo).
Pero al ver a los clientes más de la última década, he visto una disminución constante del soporte de múltiples DBMS en sus aplicaciones.
El costo de admitir múltiples DBMS desde una aplicación es alto.
No solo porque tiene que tener conocimiento de cada DBMS, sino también porque cada DBMS tiene su propio conjunto de peculiaridades, donde tiene que adaptarse en su capa de acceso a datos. Estos no solo incluyen diferencias en sintaxis y tipos de datos subyacentes, sino también estrategias de optimización.
Además, algunos DBMS funcionan mejor con ADO, algunos mejoran con una conexión directa (como omitir todos los clientes de Oracle).
Finalmente, probar todas las combinaciones de su software con múltiples sistemas DBMS es muy intenso.
He estado involucrado en algunos proyectos en los que tuvimos que cambiar el back-end DBMS y/o la tecnología de acceso a datos (desde, por ejemplo, BDE a DBX, o desde DBX a una conexión directa). Cambiar el back-end siempre fue mucho más doloroso que cambiar la tecnología de acceso a datos. Los enfoques multinivel los hicieron más fáciles, pero aumentaron los grados de libertad y, por lo tanto, los esfuerzos de prueba.
Algunos de los productos que veo compatibles con multi-DBMS se encuentran en aplicaciones de mercado vertical donde el cliente final ya tiene su propia infraestructura DBMS y la aplicación necesita adaptarse a eso. Por ejemplo, en áreas gubernamentales holandesas, Oracle ha sido muy fuerte, pero SQL Server también ha establecido una base de usuarios bastante grande.
Así que debe pensar qué combinaciones de DBMS desea admitir, no solo en términos de funcionalidad, sino también en términos de costo.
Si se apega a un DBMS, entonces no tiene sentido ir por una capa de acceso a datos genéricos como BDE, DBX o ADO: vale la pena hacer una conexión tan directa como sea posible. Mi experiencia me ha enseñado que estas combinaciones funcionan bien:
Hope esto le da una idea de las posibilidades y limitaciones de soportar múltiples DBMS de sus aplicaciones Delphi.
--jeroen
información importante: a través del 'ADO API prima' se realiza mediante la importación de la biblioteca Microsoft ActiveX Data Objects tipo (ADO_TLB) –