La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8172 - ORACLE 8.0 CON VB 7.0 SENTENCIA UPDATE
Autor:  el Guille
Apelo a vuestros conocimientos pq los míos no dan para más de todas formas gracias por adelantado.

Estoy haciendo un update contra una tabla de oracle, dentro de un bucle "do while not recordset.eof".
La conexión que utilizo es un servicio que he generado para conectarme a la BD de oracle la aplicación con esta conexion va bien, el caso es que el update he probado a hacerlo de varias formas y todas sin resultado satisfactorio.

Con el "Con.execute sql", (con es la conexion activa en ese momento y la sql contiene el update) si lo hago de esta forma hace el update(de unos 500 registros) y al final el proceso da el error "fin de fichero en el canal de comunicación" y se "muere" el proceso.
Despues del fiasco obtenido probé de esta otra forma:

Defino un recordset de tipo "New ADODB.CONNECTION"
y la instrucción que utilizo es "Rd.open,sql(la del update)con(que es la conexion activa en ese momento),adOpenDynamic,adLockPessimistic , con esto lo único que consigo es aumentar un poco el nº de registros actualizados (unos 1500 + ó -) pero al final el proceso se muere y no me da ningún error(se queda colgado visual y tengo q recurrir al famoso Ctrl-Alt-Supr) la verdad es que ya no se si es problema del tipo de conexión , de la sql que utilizo, o de la base de datos Oracle.
Si alguno de vosotros/as sabe porque ocurre esto y como solucionarlo os estaría eternamente agradecido.
Un saludo, el Guille.

  Respuesta:  César
Yo he usado VB 6.0 contra Oracle 8 usando ado y para hacer los updates los hago utilizando el recordset:

Set res = New adodb.Recordset
res.Open sql, conexion

donde sql="UPDATE ...."