Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: elmaro en 6 Diciembre 2007, 17:49 pm



Título: Oracle [.NET]
Publicado por: elmaro en 6 Diciembre 2007, 17:49 pm
hola a todos, mi problema es el siguiente
no me puedo conectar a un servidor oracle y lo que encuentro en internet no me soluciona nada y me confunde :S

el codigo que estoy usando es este:


Código:
        Try

            Dim oradb As String = "Data Source=(DESCRIPTION=((ADDRESS=(PROTOCOL=TCP)(HOST=10.53.1.49)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=BSNKLA)));User Id=BSNKLA;Password=BSNKLA;"

            Dim conn As New Oracle.DataAccess.Client.OracleConnection(oradb)

            conn.Open()

            Dim cmd As New Oracle.DataAccess.Client.OracleCommand

            cmd.Connection = conn

        Catch ex As Oracle.DataAccess.Client.OracleException ' intercepte seulement les erreurs Oracle
            MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source)
        End Try


y me da error :S
les dejo un saludos

adios


Título: Re: Oracle [.NET]
Publicado por: elmaro en 17 Diciembre 2007, 17:47 pm
bueno... me surgio otra duda y creo q es un problema, creo.

se puede conectar a un servidor oracle 9.2 usando las librerias de un cliente 10i???
gracias


Título: Re: Oracle [.NET]
Publicado por: elmaro en 21 Diciembre 2007, 14:59 pm
Bueno... como veo que nadie me contesto, ya sea pr falta de conocimiento o por razones que desconozco, voy a postiar una conexio en .NET a un servidor oracle 9

lo que se necesita es oracle data provider(ODP) que se puede bajar de la pagina de oracle

http://www.oracle.com/technology/software/tech/windows/odpnet/index.html (http://www.oracle.com/technology/software/tech/windows/odpnet/index.html)
buscan la version que necesitan (en mi caso la 9i) descargan e instalan. Esta explicado en la misma web de oracle como es la instalacion (es muy sencilla)

Se debe agregar la referencia Oracle.DataAccess (V9.2 en mi caso)
Agregar un timer con el valor enabled a true y 100 en interval. Uso un timer para evitar algun que otro problema.
Dentro del Timer (Tmr_conectar)


Código:
        Dim Ex As Exception
        Dim oradb As String = "Data Source=(DESCRIPTION=" _
                   + "(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=TU_IP)(PORT=1521)))" _
                   + "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ES_TUYO)));" _
                   + "User Id=ES_TUYO;Password=ES_TUYO;"

        Dim conn As New OracleClient.OracleConnection(oradb)

        conn.ConnectionString = oradb
        Try
            conn.Open()
        Catch Ex
            Tmr_conectar.Enabled = False
            MsgBox(Ex.Message, MsgBoxStyle.Critical, Ex.Source)
        End Try

        If conn.State = ConnectionState.Open Then
            MsgBox("La conexion fue exitosa.", MsgBoxStyle.Exclamation)
        End If

        'enviar(comandos)
        Dim sql As String = "select * from bsn_product"
        Dim cmd As New OracleClient.OracleCommand(sql, conn)
        cmd.CommandType = CommandType.Text

        'leer
        Dim dr As OracleClient.OracleDataReader = cmd.ExecuteReader()
        dr.Read()
        'Label1.Text = dr.Item("c_primero") ' se puede usar cualqueira
        'Label1.Text = dr.Item(0) 'de estas 3 lineas para
        'Label1.Text = dr.GetString(0) 'obtener los datos


        'cerrar
        conn.Close()
        conn.Dispose()

        Tmr_conectar.Enabled = False



El codigo hace la conexion y obtiene el primer dato de la consulta dada, es simple de entender. Solo es la conexion, el resto lo pone cada uno :)

Espero les sirva.