Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/12/2013, 13:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: .net2005+oracle: ExecuteReader error

Cita:
Iniciado por pcarvajal Ver Mensaje
Desde un formulario en vb.net, estoy tratando de rescatar un campo desde un sp que está en oracle. El código que tengo es el siguiente:

Código vb:
Ver original
  1. Imports System.Data.OleDb
  2. ...
  3.  
  4. Dim oraConn As String = "Provider=MSDAORA; Data Source=(DESCRIPTION=" _
  5.            + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=99.99.99.99)(PORT=9999)))" _
  6.            + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));" _
  7.            + "User Id=XXXXXX;Password=XXXXXX;"
  8.  
  9.             Dim conn As New OleDb.OleDbConnection(oraConn)
  10.  
  11.             Dim sql As String = "SpGestionLeerXRutFecha '" & cRut & "'"
  12.             Dim cmd As New Imports System.Data.OleDb
  13.  
  14. OleDb.OleDbCommand(sql, conn)
  15.             cmd.CommandType = CommandType.Text
  16.  
  17.             Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader() ' Visual Basic
  18.            dr.Read()
  19.  
  20.             MsgBox(dr.Item("NTIDGES"))
  21.  
  22.             conn.Close()
  23.             conn.Dispose()
Pero me arroja el siguiente error:
Error: ExecuteReader requiere de una conexion abierta y disponible. El estado actual de la conexion es cerrada


Que puede ser?????????
Y seré curioso... ¿Donde está el "conn.Open()"?... Porque yo no lo veo.

No es lo mismo crear una conexión que abrir una.


Otra cosa: ¿Por qué usas el System.Data.Ole, y no el Oracle Data Provider for .Net, que además de nativo es más potente, y con mucha documentación?

Me parece que estás desperdiciando esfuerzo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)