Lunes, 15 de junio de 2015

El presente artículo esta tomado del sitio de Oracle [1], me llevó un par de horas a lo que tuve que revisar bien el código y "googlear" algunos mensajes de error que me salían.

Nuestros amigos de Oracle nos sugieren el siguiente prototipo, nada del otro mundo, una etiqueta y un botón, en una aplicación Windows Form a la que llamaremos OraWinApp.

El tutorial nos pide agregar una referencia que se instala junto con la versión express de Oracle, esta fue la que agregue:

En mi caso el Oracle Express lo instale en la unidad C, y quizás dejé el directorio nombrado por default C:\oraclexe. Aquí busqué la DLL necesaria para accesar bases de datos de Oracle, la ruta completa es: c:\oraclexe\app\oracle\product\11.2.0\server\odp.net\bin\4\Oracle.DataAccess.dll.

Tenemos que agregar el código siguiente tanto en el área donde se colocan los using como en el código del botón.

Aréa de los using:

using Oracle.DataAccess.Client;

using Oracle.DataAccess.Types;

Código del botón:

string oradb = "Data Source=XE;User Id=HR;Password=hr;";

OracleConnection conn = new OracleConnection(oradb); //C#

conn.Open();

OracleCommand cmd = new OracleCommand();

cmd.Connection = conn;

cmd.CommandText = "select department_name from departments where department_id=10";

cmd.CommandType = CommandType.Text;

try

{

     OracleDataReader dr = cmd.ExecuteReader();

     dr.Read();

     label1.Text = dr.GetString(0);

}

catch (Exception exce)

{

     label1.Text= exce.Message;

}

finally

{

     conn.Dispose();

}

Algo importante del código, en el tutorial habla de un nombre de servicio llamado ORCL, que muy probablemente no lo vamos a encontrar...nuestro servicio se llama XE, por eso cambie el nombre en el código, ¿Cómo saber que nombre poner?.

En nuestro explorador de Windows busquemos el archivo tnsnames.ora, es un archivo de texto donde se muestran los servicios para conectarnos, en mi caso dicho archivo esta en: C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN.

Este archivo puede tener lineas como las siguientes:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mimaquina)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

Y listo!!

Podemos empezar a leer información del usuario HR (en este caso nombre de departamento de acuerdo a su ID)

Profesor Enrique Nash.

Fuentes:

[1] http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/GettingStartedNETVersion/GettingStartedNETVersion.htm


Publicado por neofito69 @ 11:57  | Base de datos
Comentarios (0)  | Enviar
Comentarios