Foros del Web » Programación para mayores de 30 ;) » .NET »

DbProviderFactory y proveedores de datos .NET

Estas en el tema de DbProviderFactory y proveedores de datos .NET en el foro de .NET en Foros del Web. Hola a todos Estoy intentando hacer una aplicación en VB 2008, en la que se le permita al usuario seleccionar entre dos bases de datos ...
  #1 (permalink)  
Antiguo 31/03/2010, 13:36
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 21 años, 8 meses
Puntos: 1
DbProviderFactory y proveedores de datos .NET

Hola a todos

Estoy intentando hacer una aplicación en VB 2008, en la que se le permita al usuario seleccionar entre dos bases de datos distintas (Sqlite y Firebird). Leyendo encontre que esto puede hacerse mediante DbProviderFactory, en la que se crean objetos genéricos (connection, datareader, etc.) en vez de los correspondientes a un proveedor en particular (SQLiteConnection, etc), pero no logro hacerlo funcionar.



El codigo que tengo es el siguiente (por ahora solo con Sqlite):

Código:
Imports System.Data.Common

Public Class Form3

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim strProveedor As String
        Dim proveedor As Data.Common.DbProviderFactory
        Dim conexion As DbConnection
        Dim cm As DbCommand
        Dim dr As DbDataReader
        Dim conStr As String


        strProveedor = "System.Data.Sqlite"
        conStr = "Data Source = prueba.bd.sqlite"

        proveedor = DbProviderFactories.GetFactory(strProveedor)
        conexion = proveedor.CreateConnection()

        cm = proveedor.CreateCommand()

        conexion.ConnectionString = conStr

        conexion.Open()

        cm.Connection = conexion

        cm.CommandText = "Select * from personas"

        dr = cm.ExecuteReader

    End Sub


End Class



Al ejecutarlo obtengo el siguiente error:

Cita:
No se encuentra el proveedor de datos de .Net Framework solicitado. Puede que no esté instalado.


Investigando un poco encontré también que hay que registrar el proveedor pero no se bien cuales son los pasos para hacerlo. Puse unas lineas en el archivo app.config (XML) pero tampoco funciona.

Les agradezco por cualquier sugerencia.

Leoi
__________________
Principio Legal Legalidad en la web y Directorio de Software Open Source
Pais Once El lugar donde descubrir una ciudad
  #2 (permalink)  
Antiguo 31/03/2010, 14:30
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: DbProviderFactory y proveedores de datos .NET

Checa esto.
http://msdn.microsoft.com/en-us/library/dd0w4a2z.aspx
http://www.codeproject.com/KB/vb/Pro...ndentCode.aspx
  #3 (permalink)  
Antiguo 31/03/2010, 17:13
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 21 años, 8 meses
Puntos: 1
Respuesta: DbProviderFactory y proveedores de datos .NET

Gracias jaullo !!

Utilizando ese codigo pude ver cuales proveedores estan instalados y tambien me di cuenta que el nombre del proveedor estaba mal escrito ya que es SQLite (con SQL en mayusculas).

Con la bd SQLite ahora funciona pero ya estaba instalado el proveedor de SQLite debido a que aparece en la lista. Lo que sigo sin poder resolver es como instalar un proveedor que no se encuentre en la pc y si alcanza solamente con agregar esas lineas al xml.

En mi caso no tengo el archivo machine.config (o no lo encuentro dentro del framework ya que no tiene las mismas carpetas que el ejemplo).

De todas formas en caso de que estubiera el machine.config y se pudiese agregar ese codigo en el XML quisiera consultarles como se puede hacer para distribuir el programa, o sea que el instalador se encargue de registrar el proveedor en cualquier computadora. Alguien sabe si es posible hacer esto para que el usuario no tenga que editar el xml ?

Es decir por un lado como se agrega un proveedor que no este registrado y al mismo tiempo como se hace para que se agregue en una pc en la que se instala el programa.

Nuevamente gracias por cualquier respuesta
__________________
Principio Legal Legalidad en la web y Directorio de Software Open Source
Pais Once El lugar donde descubrir una ciudad

Etiquetas: proveedores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.