SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: PatricioPino en Martes 7 de Diciembre de 2010, 13:10

Título: Lectura de Tabla con ODBC
Publicado por: PatricioPino en Martes 7 de Diciembre de 2010, 13:10
Necesito leer una tabla Oracle a la cual tengo acceso mediante un origen de datos ODBC, ¿cómo pongo eso en el código?
¿como cadena de conexión?, lo he intentado y me aparece un error que dice que el proveedor no está registrado.  :mellow:

Una ayuda por favor :hola:
Título: Re: Lectura de Tabla con ODBC
Publicado por: gabio2 en Martes 7 de Diciembre de 2010, 19:53
Bueno te doy un ejemplo rapidisimo, ya leugo tu haces lo demás... tengo una duda.. antes que nada.. por que no usas MySQL en vez de Oracle?..

Bueno pasando  a tu problema.. necesitas hacer el imports al ODBC.. y luego crear tus variables.. etc etc.. un ejemplo rápido:

Código: vb.net
  1.  
  2. Imports System
  3. Imports System.Data
  4. Imports  System.Data.Odbc
  5.  
  6.             Dim  conexion As OdbcConnection
  7.             Dim  comando As OdbcCommand
  8.             Dim CadenaSQL As String = "SELECT * FROM Productos;"
  9.             conexion = new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=localhost;UID=GAB;PWD=123;") ' Donde: localhost es tu servidor, GAB es el usuario de tu base de datos, 123 es la contraseña.
  10.            
  11.            'AHORA  IMAGINEMOS QUE QUIERES LLENAR UN DATAGRID AL MOMENTO DE CARGAR UN FORMULARIO EN EL EVENTO LOAD.. TE QUEDARIA ALGO COMO ESTO:
  12.  
  13.        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  14.            Try
  15.                 conexion.Open()
  16.                 Dim tabla As New DataTable()
  17.                 OdbcDataAdapter adapter As New OdbcDataAdapter(comando)
  18.                 adapter.Fill(tabla)
  19.                 dataGridView1.DataSource = tabla
  20.                 conexion.Close()
  21.         Catch ex As Exception
  22.            MessageBox.Show(ex.Message,ex.Source)
  23.         End Try
  24.        End Sub
  25.  
  26.  
Título: Re: Lectura de Tabla con ODBC
Publicado por: PatricioPino en Martes 7 de Diciembre de 2010, 20:00
Muchas, muchas, muchisimas gracias, genial tu solución  :good:

La verdad estoy leyendo una aplicación muy antigua desarrollada en Oracle (version 1.0 , creo  :lol: ) y no he podido elejir que usar.

Tu ejemplo me ha encaminado muy bien, gracias nuevamente.

Saludos
Título: Re: Lectura de Tabla con ODBC
Publicado por: PatricioPino en Jueves 9 de Diciembre de 2010, 18:03
Una consulta relacionada con este tema, cuando tu pones:

OdbcDataAdapter adapter As New OdbcDataAdapter(comando)

Significa que en el objeto OdbcDataAdapter yo tengo todos los registros producto de la ejecucion de la sentencia SQL? y si esto es asi, yo puedo leer estos datos uno a uno y realizar alunas operaciones con ellos?.
Predon si mis preguntas son muy obvias, pero , como decia mi maestro: "Tonto no es el que no sabe y pregunta, sino el que no sabe y no pregunta"

 :good:
Título: Re: Lectura de Tabla con ODBC
Publicado por: gabio2 en Jueves 9 de Diciembre de 2010, 18:27
Código: vb.net
  1.  
  2.                conexion.Open()
  3.                Dim tabla As New DataTable()
  4.                OdbcDataAdapter adapter As New OdbcDataAdapter(comando)
  5.                adapter.Fill(tabla)
  6.                dataGridView1.DataSource = tabla
  7.                conexion.Close()
  8.  
  9.  

en la linea:

adapter.Fill(tabla)

En esa linea se llena tu DataTable (tabla), por lo tanto, ya tienes llena tu tabla.. es solo que la recorrar.. con un foreach... por ejemplo:

Código: vb.net
  1.  
  2. For Each dr As DataRow In tabla.Rows
  3. 'Tu codigo aquí..
  4. Next
  5.  
  6.  

El for each como su nombre lo dice "Por cada uno" ... entonces, ahí ya puedes manipular todos tus datos.. no se si ya quede entendido.. espero que sí.. saludos
Título: Re: Lectura de Tabla con ODBC
Publicado por: PatricioPino en Jueves 9 de Diciembre de 2010, 18:30
Nuevamente GRANDE !!!! :good:
Título: Re: Lectura de Tabla con ODBC
Publicado por: gabio2 en Jueves 9 de Diciembre de 2010, 18:38
Por cierto, si te decides a cambiar.. de Oracle a MySQL, tengo una Libreria (dll) para la conexión de datos, es decir, te olvidas de hacer todo lo relacionado con la "conexion" a la base de datos y te limitas a solo enviar tus sentencias SQL que desees ejecutar y te regresa.. los DataTable, DataSets, ya llenos de datos (si tu sentencia regresa algún valor).. te paso los Links de descarga..

http://rapidshare.com/files/434400587/Conexion.rar (http://rapidshare.com/files/434400587/Conexion.rar" onclick="window.open(this.href);return false;)

y aquí te doy un ejemplo de como usarlo, es MUY SENCILLO solo creas un objeto de la clase clsMySQL y le pasas la cadena de conexión, fijate como esta el ejemplo. pruebalo.. OBVIAMENTE vas a tener ke cambiarla por TU cadena de conexion.. y los comandos inserts y selects que hize, tu tendrias que modificarlos.. por lo que tu necesites.. solo necesitas referencias las 2 DLL a tu proyecto y luego solo llamar a Conexion:
en C#:
using Conexion;


en VB:
Imports Conexion



EJEMPLO:

http://rapidshare.com/files/434401107/PruebasConDllConexion.rar



CUALQUIER DUDA PUEDES PREGUNTAR.. SALUDOS! :)

NOTA: OBVIAMENTE TIENES QUE TENER INSTALADA LA BASE DE DATOS MySQL.. SI NO LA TIENES PUEDES DESCARGALA DESDE LA PAGINA DE MySQL (www.mysql.com (http://www.mysql.com" onclick="window.open(this.href);return false;)) O MÁS DIRECTO DESDE http://rapidshare.com/files/435918128/Setup.exe (http://rapidshare.com/files/435918128/Setup.exe" onclick="window.open(this.href);return false;)  SON 100% CONFIABLES TODOS LOS LINKS QUE TE ESTOY PASANDO.. SALUDOS. :)
Título: Re: Lectura de Tabla con ODBC
Publicado por: PatricioPino en Jueves 9 de Diciembre de 2010, 19:16
Ok, gracias, le doy un vistaso. Se agradec la cooperacion :hola: