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

Actualizar registros en MySQL

Estas en el tema de Actualizar registros en MySQL en el foro de Visual Basic clásico en Foros del Web. Hello amigos!! Tengo un pekeño inconveniente, estoy tratando de actualizar datos en mi tabla... La manera en que estoy tratando d hacerlo es la siguiente... ...
  #1 (permalink)  
Antiguo 07/04/2008, 13:45
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Actualizar registros en MySQL

Hello amigos!!

Tengo un pekeño inconveniente, estoy tratando de actualizar datos en mi tabla...
La manera en que estoy tratando d hacerlo es la siguiente...



Private Sub Command3_Click()
Dim BD As ADODB.Connection
Dim RecSQL As ADODB.Recordset
Dim ind As Integer
Dim x As Integer
Dim Tiene_Informacion As Boolean

Set BD = CONECTAR()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "select * from provs", BD, adOpenStatic, adLockOptimistic
EstadoB.Text = "Autorizado"
Tiene_Informacion = False
x = 0
Do While x < 10
If (Trim$(DescripcionB(x).Text) <> "" And _
(MontoB(x).Text) <> "") Then
Tiene_Informacion = True
End If
x = x + 1
Loop

If Not Tiene_Informacion Then
MsgBox "Debe Introducir Datos en la prevision", vbOKOnly + vbCritical, "¡Atención!"
Else
ind = 0
Do While ind < 10 And _
Trim$(DescripcionB(ind).Text) <> "" And _
(MontoB(ind).Text) <> ""


RecSQL.Fields(0).Value = Trim$(Num_docB.Text)
RecSQL.Fields(1).Value = Trim$(DescripcionB(ind).Text)
RecSQL.Fields(2).Value = MontoB(ind).Text
RecSQL.Fields(3).Value = TotMontoB.Text
RecSQL.Fields(4).Value = FechaB.Text
RecSQL.Fields(5).Value = EstadoB.Text
RecSQL.Fields(6).Value = Trim$(CreadoB.Text)
RecSQL.Fields(7).Value = Form1.nom & " " & Form1.apel
RecSQL.Fields(8).Value = "."
RecSQL.Fields(9).Value = "."
RecSQL.Fields(10).Value = Form1.dir2
RecSQL.Fields(11).Value = Form1.dept2
RecSQL.Fields(12).Value = Form1.site2
RecSQL.Update

ind = ind + 1
Loop

continua = MsgBox("Prevision Autorizada, ¿Desea buscar otra prevision?", vbOK, "Continuar...")

If (continua = vbOK) Then
Unload Me
Load Form3
Else
Unload Form4
RecSQL.Close
Set RecSQL = Nothing
End If

' RecSQL.Update


End If

End Sub

Me ayudan??
  #2 (permalink)  
Antiguo 07/04/2008, 14:38
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Actualizar registros en MySQL

A proposito el vinculo que me facilitaron hace ya algunos dias atras para poder hacer la conexion y actualizar, no me ha kedad claro y no comprendo nada existe alguna otra manera?
  #3 (permalink)  
Antiguo 08/04/2008, 05:19
 
Fecha de Ingreso: abril-2008
Mensajes: 68
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Actualizar registros en MySQL

Set BD = CONECTAR() ----> un array ? nooo

pone set db = new ADODB.Connection
y despues conecta la base
db.CursorLocation = adUseClient
db.ConnectionString = "coneccionstring" ---> remplaza por la que corresponda a tu base
db.Open

saludos
  #4 (permalink)  
Antiguo 08/04/2008, 07:38
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Actualizar registros en MySQL

Creo q formule mal la consulta, realmnte no son registros lo que trato de actualizar sino CAMPOS en la tabla, es decir si muestro algo que tengo en la tabla y le modifico algo como hago para guardar los cambios en el mismo campo
  #5 (permalink)  
Antiguo 08/04/2008, 09:53
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Re: Actualizar registros en MySQL

auxilio no se olviden de mi ayudenme :(
  #6 (permalink)  
Antiguo 08/04/2008, 21:40
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Re: Actualizar registros en MySQL

Probá con esto que publiqué para otro usuario del foro... La sentencia sería básicamente un UPDATE en lugar de un INSERT...

http://www.forosdelweb.com/f29/visua...access-570027/

Saludos.
  #7 (permalink)  
Antiguo 09/04/2008, 02:33
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: Actualizar registros en MySQL

Hola Kitty, el código de Adolfiten es para .NET, y por lo que veo tú estás utilizando VB6, así que no te va a servir.

Bueno, en cuanto a tu código no entiendo muy bién qué es lo que quieres hacer. Lo que veo es que actualizas 10 veces el mismo registro de la tabla 'provs' (siempre el primero, ya que no mueves el puntero).

Creo que te faltaría una condición '... WHERE campo = variable' en la consulta SQL.

Un saludo
  #8 (permalink)  
Antiguo 09/04/2008, 07:56
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Re: Actualizar registros en MySQL

Gracias Avellaneda muy amable de tu parte, ya corregi la situacion pero sigo sin poder actualizar los datos de la tabla :(
  #9 (permalink)  
Antiguo 09/04/2008, 10:51
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Actualizar registros en MySQL

Auxiliooooooooooooooooooooooooooooo por favor ayudenme segun lei en un manual mediante
recsql.update

deberia poder modificar los registros pero no me deja .. lo q esta aciendo es q el registro que modifica lo esta repitiendo las veces que tenga un resgistro q no sea vacio...

si le coloco el update me manda error, de q muchos campos fueron modificados y me saca de la ejecucion :(


Ayuda :(

Cita:
Private Sub Command3_Click()
Dim BD As ADODB.Connection
Dim RecSQL As ADODB.Recordset
Dim ind As Integer
Dim x As Integer
Dim Tiene_Informacion As Boolean

Set BD = CONECTAR()
Set RecSQL = New ADODB.Recordset

RecSQL.Open "select * from provs", BD, adOpenStatic, adLockOptimistic
EstadoB.Text = "Autorizado"


ind = 0
Do While ind < 10 And _
Trim$(DescripcionB(ind).Text) <> "" And _
(MontoB(ind).Text) <> ""

des = Trim$(DescripcionB(ind).Text)
cost = MontoB(ind).Text

RecSQL.Fields(0).Value = Trim$(Num_docB.Text)
RecSQL.Fields(1).Value = des
RecSQL.Fields(2).Value = cost
RecSQL.Fields(3).Value = TotMontoB.Text
RecSQL.Fields(4).Value = FechaB.Text
RecSQL.Fields(5).Value = EstadoB.Text
RecSQL.Fields(6).Value = Trim$(CreadoB.Text)
RecSQL.Fields(7).Value = Form1.nom & " " & Form1.apel
RecSQL.Fields(8).Value = "."
RecSQL.Fields(9).Value = "."
RecSQL.Fields(10).Value = Form1.dir2
RecSQL.Fields(11).Value = Form1.dept2
RecSQL.Fields(12).Value = Form1.site2
RecSQL.Update ' aki manda el error....
des = ""
cost = ""
ind = ind + 1

Loop

continua = MsgBox("Prevision Autorizada, ¿Desea buscar otra prevision?", vbOK, "Continuar...")

If (continua = vbOK) Then
Unload Me
Load Form3
Else
Unload Me
End If




End Sub
Por favor ayuda
  #10 (permalink)  
Antiguo 10/04/2008, 09:59
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Actualizar registros en MySQL

Se olvidaron de mi ...
  #11 (permalink)  
Antiguo 11/04/2008, 00:19
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Re: Actualizar registros en MySQL

Kittyta querida:

¿Depuraste? ¿Qué error es el que te arroja?

No sé VB6 precisamente pero es la misma escencia. Hacé esto, depurá, fijate el nombre del error y postealo, quizá estés enviando datos que no son compatibles con los campos de la base de datos o algo parecido. Además estás cambiando los campos de TODOS los registros, porque traés con el "*" en la consulta, registros que tampoco vas cambiando, como bien dijo alguien ahí arriba.

Podrías hacer un bucle que recorra el/los registros que quieres cambiar y asignar valores dentro.

Me gustaría que expusieras con más detalle qué es lo que querés lograr con los métodos para ver hacia donde vas.

Con esos detalles podremos saber más y la ayuda aparecerá... saludos.
  #12 (permalink)  
Antiguo 11/04/2008, 08:22
Avatar de Kitty_05  
Fecha de Ingreso: marzo-2008
Ubicación: SITEL un call center en Panamá
Mensajes: 100
Antigüedad: 16 años, 1 mes
Puntos: 0
Exclamación Re: Actualizar registros en MySQL

Buenos Dias!!

Les explico, pretendo hacer una busqueda, que si en caso de que el usuario modifica el campo 1, se actualice en la BD.

Es decir si en el campo1.text cambia algo... entonces

RecSQL.Fields(1).Value = campo1.text ....

pero me estan sucediendo dos cosas con los metodos que experimente ..

1- Si logro agregar un dato, el ultimo q leyo lo reescribe sobre los demas y me keda el ultimo elemento la cantidad de veces q tenga algo en la BD.

2-Si le pongo RecSQL.Update manda el siguiente error: "Informacion de columna clave insuficiente o incorrecta; demasiadas filas afectadas por la actualizacion"
  #13 (permalink)  
Antiguo 11/04/2008, 20:44
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Actualizar registros en MySQL

Hola Kitty no se por que haces un ciclo do while para modificar los datos, una pregunta estas modificando varios Registros? o solo un registro, si es un solo registro no es necesario hacer el do while, vayamos por partes dime cuales son los campos de tu tabla y cual es la clave primaria por que para poder modificar un Registro tienes que comparar con su clave primaria, bueno explicame que es lo que deseas hacer realmente para poder ayudarte o en todo caso agregame al msn que esta en mi perfil.

Saludos.
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 03:52.