Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Actualizar MySQL desde VB6

Estas en el tema de Actualizar MySQL desde VB6 en el foro de Visual Basic clásico en Foros del Web. Hola a todos... Tengo el siguiente problema... 1) conecto a una base MySQL en localhost desde vb6 asi: CxnStr = "Driver={MySQL ODBC 3.51 Driver};" & ...
  #1 (permalink)  
Antiguo 27/09/2005, 09:54
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Actualizar MySQL desde VB6

Hola a todos...

Tengo el siguiente problema...

1) conecto a una base MySQL en localhost desde vb6 asi:

CxnStr = "Driver={MySQL ODBC 3.51 Driver};" & _
"Server=localhost;Option=16809984;" & _
"Database=" & archivo & ";"

'Abro la conexion
Set Cxn = New Connection
Cxn.CursorLocation = adUseClient '---- ¿no se para que es este adUseClient? pero no importa...
Cxn.Open CxnStr

TODO OK...
y abro el recorset asi:

Set rec = New Recordset
rec.Open "Select * From " & tabla, Cxn, adOpenDynamic, adLockOptimistic

HASTA AQUI PERFECTO...


2) Todo bien (leo los registros) pero cuando trato de actualizarlo.... desastre!!!

Probé:
rec.Update rec!campito, txt.Text 'y nada... err: El objeto no admite esta propiedad!!!

sin embargo en inmediato.

?rec.Supports(adUpdate)
Verdadero

y add y delette tambien verdadero.... ¿?

Probé tambien alguna otra forma de actualizar pero nada...
Se que si le hago una especie de open "UPDATE ....." a la conexión lo puedo acutalizar,
pero debería poder utilizar el recordser ¿no?...

Desde ya gracias.
Saludos.
  #2 (permalink)  
Antiguo 27/09/2005, 10:09
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
cxn.execute "Update Facturas set nit_cliente = 'GC-CF' Where nit_cliente ='C F'"

en esta consulta le estoy diciendo que en la tabla "Facturas" en el campo nit_cliente, busque todos los "C F" y los convierta en "GC-CF", probá asi y me decis

nos vemos.
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 27/09/2005, 10:16
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola GeoAvila, antes que nada gracias por responder tan rápido... no hacia 10 minutos que puse el post.

Si, asi se que se puede hacer, como te digo abajo:

"Se que si le hago una especie de open "UPDATE ....." a la conexión lo puedo acutalizar, pero debería poder utilizar el recordser ¿no?... "

Si, el execute lo habia probado y funcionaba, pero tiene que poderse desde el recordset...

Igual muchas gracias. Si no encuentro otra solucion lo haré como vos decis.
Saludos.
  #4 (permalink)  
Antiguo 27/09/2005, 10:26
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
intenta asi..

Set rec = New Recordset
rec.Open "Select * From " & tabla, Cxn, adOpenStatic, adLockOptimistic

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 27/09/2005, 10:39
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola Geoavila
Quizas debería haber echo la pregunta de la siguiente manera...

Como funciona el metodo update en el recordset?
Es posible hacerlo funcionar (luego de todo lo anterior, conexión etc.) asi:

rec.Update rec!campito, txt.Text

o

set rec.update (rec!campito, txt.text)

Se necesita alguna especificación extra tipo

rec.Supports (adUpdate) 'o algo mas...

o la numeración en Option=nnnnnn;" al abrir la conexión?

???? es posible la utilización de este metodo en una conexión a mysql y utilizar las ventajas de ADO???

Desde ya muchas gracias...
  #6 (permalink)  
Antiguo 27/09/2005, 10:43
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
rec!campito = txt.text
rec.update
asi lo uso comunmente pero según veo en otros ejemplo tambien se puede usar asi.
rec!campito = txt.text
rec.UpdateBatch adAffectAll

asi. de esta manera funciona el update

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #7 (permalink)  
Antiguo 27/09/2005, 10:54
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Bueno ,si, eso yo tambien tenia entendido, pero al usarlo de esa forma me da el siguiente error

Error en el metodo 'Update' del objeto '_Recordset'

Será por algún otro motivo que no me estoy dando cuenta...

Gracias de nuevo.
  #8 (permalink)  
Antiguo 27/09/2005, 12:19
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
m.. no me queda nada mas que decirte que probes con otra tabla para ver si el problema no es la tabla.

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #9 (permalink)  
Antiguo 27/09/2005, 15:23
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Buena idea, no se me ocurrió, uno piensa que tiene que funcionar si o si y el árbol no me deja ver el bosque...

Gracias por la ayuda; si funciona aviso...
Saludos.
  #10 (permalink)  
Antiguo 27/09/2005, 17:10
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Aviso, aviso.... !!
Si funciona.... borre la tabla, la volvi a cargar y hace la actualizacion correctamente...

UNA VEZ, SOLO LA PRIMERA VEZ y nunca mas... vuelvo a borrar la tabla, la vualvo a cargar y actualiza perfecto. La segunda vez (y otras) da error...

Será que al cerrar rompo algo??

luego del

rec.update

solo hago

Cxn.Close 'cerrando la conexión

¿por alli estará el prolbema????

Gracias.
Saludos.
  #11 (permalink)  
Antiguo 28/09/2005, 08:48
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
estas dejando algun campo de fecha hora vacio ese puede se el problema. revisa que todos los campos esten correctamente llenos..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #12 (permalink)  
Antiguo 29/09/2005, 06:04
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 3 meses
Puntos: 0
Gracias GeoAvila, pero ... sere curioso... es "obligatorio" al actualizar la tabla, actualizar TODOS los campos?

Solo necesitaba actualizar uno solo...

Saludos.
  #13 (permalink)  
Antiguo 29/09/2005, 08:23
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
unicamente al agregar el registro tenes que estar segura que todos los campos esten correcamente llenos..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:51.