Usuario
Problema Con diferentes Base de Datos

Pregunta
-
Hola amigos
tengo un problema, necesito conectarme a diferentes Gestores de Bases de Datos, mysql,informyx,sql server desde
mi aplicacion .net, sucede que debo mostrar las tablas de cada base de datos pero para mostrarlas necesito realizar diferentes consultas.
Es decir para mostrar las tablas en sql server la sintaxis es diferente que para mysql y y que para informix.
no se si de rponto alguien sepa como puedo solucionar este problema, lo que quiero es independizarme de que base de datos sea y asi poder generar una sola consulta o no se que hacer. En si necesito abstraerme del gestor de base de datos que se y poder mostrar la diferentes tablas.
cualquier sugerencia sera bienvenida
Todas las respuestas
-
Hola, te quiero ayudar mas no te comprendo del todo, yo he trabajado con mysql, sql y oracle, y bueno la sintansis de esas tres en la query yo las manejo igual, algunos simbolos cambian, pero igual, me informare de informix.
Ahora solo quiero aclarar una cosa, hasta donde yo se visual.net para sql usa un tipo de conexion y para las demas otro tipo de conexion, que es la general, aunque igual puedes conectar todas usando el oledb, que es el generalizado, pero en todo caso explicate mejor
saludos
-
hola muchas gracias por tu interes aqui te dejo un ejemplo muy claro de diferencia de sintaxis:
para mostrar las tablas de una Base de Datos en sql server es:
Select name from sysobjects where type='U';
en cambio para mysql es:
show tables;
en serio muchas gracias -
:-)
Hola,
Puedes acceder a distintas BD y no hace falta crear objetos especializados (SQlConnection, OracleConnection). A partir de ADO.NET 2.0 aparece el concepto de factorías de objetos de datos:
Respecto a que en ocasiones las sintaxis son distintas en diferentes BD lo que te recomiendo es encapsular esto en prodecimientos y llamarlos desde tu aplicación:
CREATE PROCEDURE getTables
AS
SELECT * FROM INFORMATION_SCHEMA.TABLES
(mejor usa esta vista de sistema para acceder a las tablas)
Saludos,
-
-
Hola Fco. Balfred:
Para independizarte de los datos, puedes utilizar un framework. Microsoft dispone de Entity Framework.
Tu programas contra objetos y el se encarga de lidiar con la base de datos (modelo relacional).
https://docs.microsoft.com/es-es/dotnet/framework/data/adonet/ef/overview
Luego buscas la implementación del patrón repositorio en la web, (esta lleno de videos y documentos explicativos), y ya puedes trabajar con una aplicación de un modo fácil, independientemente, de la base de datos.
Adicional, te diría, que este post, ya es de hace muchísimo tiempo, y esta puesto en un foro de otros lenguajes. Si programas en algún lenguaje de .NET, busca en los foros adecuados, que obtendrás mejor respuesta para tus preguntas.
C#
https://social.msdn.microsoft.com/Forums/es-ES/home?forum=vcses&filter=alltypes&sort=lastpostdesc
VB.NET
https://social.msdn.microsoft.com/Forums/es-ES/home?forum=vbes&filter=alltypes&sort=lastpostdesc
Entity Framework
https://social.msdn.microsoft.com/Forums/es-ES/home?forum=adodotnetentityframeworkes&filter=alltypes&sort=lastpostdesc