Cita:
Iniciado por wakewakeup Hola,
Tengo que hacer una aplicación independiente del tipo de base de datos (oracle, sql server, mysql, acess). En principio he pensado en ODBC, pero despues me han recomendado OLeDB, y leyendo la gente dice que OLeDB es mas lento...
¿Cual me recomendais para una aplicación windows forms?
Gracias
Mira:
1) Debes tener en cuenta que
cada DBMS tiene sus propios conectores y mucho más
eficientes que cualquiera de las dos opciones, para administrar la comunicación con las aplicaciones .Net. Usar un único y exclusivo método es por lo menos
desaprovechar las capacidades de los sistemas
nativos.
2) Ten en cuenta también que
cada uno de los DBMS tiene
extensiones agregadas al estandar SQL que implementan recursos mejores que otros para muchas tareas. Por ello, usar un sólo esquema de métodos para todas las bases de datos es, a todas luces, un
desaprovechamiento de recursos.
Sólo teniendo estas dos consideraciones, se entiende entonces mi consejo: Si quieres flexibilidad para operar diferentes DBMS,
crea una clase para cada uno, con
los mismos métodos y diferente código interno, e
instancia uno u otro según sea el que se esté usando. Esto implicará tener una clase Base de Datos para que todos los Form se comuniquen con ella, y
dentro de ella, una instancia de la clase que controla al DBMS activo.
Eso si: Significará que necesitarás programar
mucho SQL de diversas utilidades para hacer las cosas de diferente forma... Pero eso ya es otra historia.
Para mi, estás tratando de hacer cosas demasiado complicadas, a menos que cuentes con recursos humanos suficientes.