Conexión

Gracias por las otras respuesta y mi pregunta es la siguiente tu sabes si se puede, establecer una conexión a oracle crear un recorsert con esa conexión, y luego cerrar la conexión y trabajar con los datos del recorset sin la conexión, te agradecería mucho cualquier información gracia
A te cuento, necesito que me des un concejo, tengo que hacer un traspaso desde dbf a oracle solo actualizo una tabla oracle, ¿qué cosa a tu jucio debería tomar en cuenta para realizar el traspaso? ¿Concepto trasacional? ¿O no? Es solo una tabla la que se actualiza, te pido que me ayudes con cualquier cosa que tu encuentres relevante en este tipo de aplicación

2 respuestas

Respuesta
1
Soledad, de nada...
1) Conexión a oracle
Claro que se puede cargar un recordset y luego desconectarlo.. No te olvides que los Rs no son más que contedores de estructuras y puedes crearlos sin necesidad de tener una base de datos por detrás.
Por ejemplo, esto crea un rs ado desconectado:
'----- Declarar el Recordset, definir sus campos y abrirlo
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Rs. Fields. Append "Descripcion", adVarChar, 20
Rs. Fields. Append "Precio", adCurrency
Rs.Open , Nothing
'----- Agregar algunos registros
Rs.AddNew Array("Descripcion", "Precio"), Array("Tornillo", 0.75)
Rs.AddNew Array("Descripcion", "Precio"), Array("Tuerca", 0.65)
Rs.AddNew Array("Descripcion", "Precio"), Array("Clavo", 0.35)
'----- Recorrer el recordset y mostrar los registros
Rs.MoveFirst
While Not Rs.EOF
MsgBox "Descripción: " & Rs!Descripcion & vbCrLf & "Precio: " &
FormatCurrency(Rs!Precio)
Rs.MoveNext
Wend
'----- Cerrar el Recordset
Rs.Close
Set Rs = Nothing
Eso solo a los fines del comentario de Rs desconectados. Pero volviendo a lo de Oracle, simplemente creas la conexión, recuperas los registros y la cierras si eso quieres, para que, luego de realizar los cambios pertinentes, la vuelvas a abrir y volcar en la DB.
Por ejemplo:
Dim strConnect As String
Dim rs As ADODB.Recordset
Dim cn As ADODB.Connection
Dim strSQL As String
Set rs = New ADODB.Recordset
Set cn = New ADODB.Connection
strConnect = "Provider=MSDAORA;Data Source=MyOracleServer;" & _
"User ID=MyUID;Password=MyPwd;"
cn.Open strConnect
strSQL = "SELECT * FROM MyTable"
With rs
.ActiveConnection = cn
.CursorLocation = adUseServer
.Properties("Determine Key Columns For Rowset") = True
.CursorLocation = adUseClient
'Note that the ActiveConnection parameter below is empty
.Open strSQL,, adOpenStatic, adLockBatchOptimistic
End With
Cn. Close
(El rs te queda abierto para que hagas lo que quieras, luego solo lo conectas y descargas)
------------------------------------
2)Respecto a emitir un jucio sobre el traspaso de datos de una db a otra, no se exactamente como quieres que te asesore. Dime que te hace falta (métodos de conexión, apertura y volcado de registros, etc) y veo como ayudarte. Sobre el proceso es sí, y si me dices que es solo una tabla, no veo mayores complicaciones haciéndolo con una conexión normal y carga de un rs. Te podría decir algo sobre indices... pero no conozco la estructura de tu db tampoco (ni siquiera si los dbf son de clipper, dbx, fox, etc.)
En fin, cualquier cosa me lo comentas.
Respuesta
1
El SQL permite comunicarse con la instancia Oracle usando de forma transparente cualquier protocolo de nivel 4 (TCP/IP, Decnet, IPX/SPX, etc.)
Me parece que el mecanismo de conexión de OO4O es más rapido que el de ODBC, ya que al concentrar el procesamiento de la consulta en el servidor Oracle, la cantidad de recursos ocupada por una aplicación y el tiempo de respuesta disminuyen.
Ejemplo:
------------------------------------------------
Tengo una configuración al servidor Oracle llamada "miConexion".
------------------------------------------------
a)Creando un Recordset:
Private Sub Form_Load()
Dim Orasession as Object
Dim OraDatabase as Object
Dim OraDynaset as Object
'Creamos el objeto OraSession
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Creamos el objeto OraDatabase abriendo la conexion a Oracle
Set OraDatabase = OraSession.OpenDatabase("miConexion", "scott/tiger", 0&)
'Creamos el Objeto OraDynaset
Set OraDynaset = OraDatabase.CreateDynaset("select * from TABLA", 0&)
Text1.text = OraDynaset.Fields("CAMPO").value
OraDynaset. Close
OraDatabase. Close
End Sub
Espero que te sea útil el ejemplo, siempre es un placer ayudarte
Hasta pronto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas