Conexión a Oracle con Visual basic 6.0

Te cuento que deseo hacer una conexión a oracle desde visual basic 6.0.Además debe ser con login y password. Por medio de ADO.
Te cuento que solo lo se hacer con Access:
Dim conexion As ADODB.Connection
Dim registro As ADODB.Recordset
Private Sub Conectar()
Set conexion = New ADODB.Connection
conexion.Open "DSN=Neptuno"
End Sub
Private Sub Desconectar()
Registro. Close
Conexión. Close
End Sub
Por favor ayudame, es muy importante para mi tesis o memoria.

5 Respuestas

Respuesta
1
Te sugiero que uses el OLEDB provider de Oracle. En la línea "conexion.Open ...", reemplaza "DSN=Neptuno" por:
"Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=MI_ORACLE;Persist Security Info=True"
Donde:
"DataSource" es el nombre del alias que has creado en el tnsnames. Ora para referirte a tu base de datos Oracle.
"User ID" es el nombre de usuario (login) de Oracle y Password es el password (evidentemente).
Estos tres valores son los que proporcionarías habitualmente desde el SQLPlus.
Recuerda que esto es una conexión nativa a Oracle, y por ello el SQL debe estar en el dialecto SQL que entiende ORACLE (nada de INNER JOINS antes de la versión 9, nada de funciones como DateDiff, etc.).
Un millón de gracias, bueno te cuento que lo resolví con el mismo método que me dijiste (tal cual), y resulta exelente; pero me resultó antes de leer tu respuesta, en todo caso te agradezco de todo corazón, porque si no lo hubiera hecho ahora me hubiera resultado gracias a ti.
Te pasaste!
Respuesta
1
Te escribo un ejemplo de como te puedes conectar a Oracle Usando Oracle OLEDB para poder conectarte tendrás que tener instalado lo siguiente:
Oracle OLEDB Para Oracle9i/Oracle8i
SQL*NET
Y configurar el string de conexion oportuno
Los productos indicados te los puedes bajar de OTN otm. Oracle.com y el código en Visual Basic seria el siguiente:
Public cnSirius As ADODB.Connection
Public UserSir As String
Function Conectando
(Usu As String, Clave As String, Strconec As String) As Boolean
On Error GoTo err_conecta
Set cnSirius = New ADODB.Connection
With cnSirius
.ConnectionString = "Provider=OraOLEDB.Oracle;User ID=" & Usu & ";Password=" & Clave & ";Data Source= " & Strconec & ";"
End With
cnSirius.Open
Conectando = True
Exit Function
err_conecta:
MostrarError (Err)
Conectando = False
Exit Function
End Function
Respuesta
1
La conexión a oracle es exactamente la misma si es que estas accediendo a través de odbc, pero tratándose de oracle esto no es conveniente, para conectarte a oracle primero que nada tienes que tener instalado el cliente y configurado un nombre de servicio a través de net8, incluso esto es indispensable para que pueda conectarte a través de odbc también. Yo te recomiendo que uses conexión nativa y no odbc, para eso bajate las librerías de la página de oracle y usa el objeto orainprocserver que es bastante similar a ado.
Si usas odbc vas a tener muchas limitaciones de uso del lenguaje plsql así como una seria disminución en la performance.
Cualquier otra duda consúltame.
Respuesta
1
Vamos a Suponer:
- Que Tienes un Servidor NT en Tu Red con la Ip 192.168.0.1
- Un Nombre de Servicio llamado SERVIDORORACLE. WORLD (192.168.0.1, ORC1)
(Por Default el Oracle tiene un usuario llamado "SYSTEM", y password "MANAGER")
- Tienes un Tablespace llamado SISTEMA con un Usuario asociado llamado "USUARIO" y
password "USR" (dba, conect)
- Y Una Tabla llamada PATENTE
Dado el Supuesto Tenemos Varias Formas de Conectarnos al servidor ORACLE
Forma 1.- (y es la que recomiendo)
Dim Base As Object
Dim Reg as Object
Set Base = OraSession.DbOpenDatabase("SERVIDORORACLE", "USUARIO/USR", 0&)
Set Reg = Base.DbCreateDynaset("Select * from PATENTE", 0&)
' Aquí ya tenemos el recordset
' Puedo realizar cualquier operacion si problemas
Set Reg = nothing
Set Base = nothing
Forma 2.- (ADO)
- Crear un Form
- Click en Proyecto, y Componente
- Activar la Casilla Microsoft ADO data control 6.0 y Aceptar
- Click en Ver, y Cuadro de Herramienta
- Doble click en el Control Adodc (se creo el control adodc1)
- Click con el Botón derecho y click en propiedades.
- Click en Generar, click en Microsoft OLE DB Provider for Oracle y Click en Siquiente
- Escribir en Nombre de Servidor SERVIDORORACLE, USUARIO y USR en donde corresponde a
Usuario y password respectivamente
- Haz Click en Probar conexión para asegurarte de que este bien hecho
- Click en Aceptar
- Click en Autentificación y luego escribir USUARIO y USR nuevamente donde corresponde a
Usuario y password respectivamente.
- Click en Origen de Registros y luego seleccionar en tipo de comando (2 - adCmdTable)
- Luego selecciona en tabla, la tabla PATENTE y luego aceptar
Con esto estas conectado y ademas tienes el recordset con el control ADOdc1
Para Verificar crea un datagrid y asocialo en la propiedad de datasource a ADODC1 y luego
recupera los campos.
Forma 3 y 4.- (si necesitas otras me vuelves a preguntar)
Chao..
Que te sirva
Gracias por tu ayuda, te cuento que ya lo resolví y por si te interesa fue con el siguiente mátodo:
Usa el OLEDB provider de Oracle. En la línea "conexion.Open ...", reemplaza "DSN=Neptuno" por:
"Provider=MSDAORA.1;Password=manager;User ID=system;Data Source=MI_ORACLE;Persist Security Info=True"
Donde:
"DataSource" es el nombre del alias que has creado en el tnsnames.ora para referirte a tu base de datos Oracle.
"User ID" es el nombre de usuario (login) de Oracle y Password es el password (evidentemente).
Y resulta sin problemas, en todo caso igual tengo guardada tu respuesta por cualquier cosa, gracias.
Agradezco tu dedicación.
Respuesta
A la cadena de conexión añade ";uid=<usuario>;pwd=<password>".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas