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

problema con el recorset no puedo guardar ni borrar...

Estas en el tema de problema con el recorset no puedo guardar ni borrar... en el foro de Visual Basic clásico en Foros del Web. hola compañeros etos dprogramando usando mysql server 5.0 con visual basic 6 aca esta el codigo fuente del modulo con el mando a llamar a ...
  #1 (permalink)  
Antiguo 02/11/2008, 22:40
 
Fecha de Ingreso: febrero-2006
Mensajes: 52
Antigüedad: 18 años, 2 meses
Puntos: 0
problema con el recorset no puedo guardar ni borrar...

hola compañeros etos dprogramando usando mysql server 5.0 con visual basic 6
aca esta el codigo fuente del modulo con el mando a llamar a la base de datos


Global cn As ADODB.Connection 'base de datos actual
Global RecSQL As ADODB.Recordset
Public RecBD As New ADODB.Recordset
Public servidor As String
Public usuario As String
Public base As String
Public pass As String

Public Function Conectar()
Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = "driver={MySQL ODBC 5.1 Driver};server=Servidorcasa;uid=root;pwd=123;datab ase=registrobd;option=3;connection="
cn.Open
Conectar = True
'MsgBox "Conexión establecida!!!", vbExclamation, "Conexión"

If Err.Number > 0 Then
MsgBox Err.Description, vbCritical, "Error al conectar al servidor de Base de Datos" & Err.Number
Exit Function
End
End If
End Function

ahora bien cuando intento grabar, eliminar o actualizar registro me sale un error
dice que el "recorset actual no permite actualizaciones puede ser una limitacion el proveedor o del tipo de bloqueo seleccionado."

el codigo en el formulario es:

al inicio del formulario mando a llamar a la tabla

Private Sub Form_Load()
Call Conectar

Set rsperiodo = New ADODB.Recordset
sql = "select *from periodo"
rsperiodo.Open sql, cn, adOpenStatic, adLockOptimistic


Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case Is = 1:
Call desactivarcontrol
Unload Me
frm_periodos.Show

Text2.Enabled = True


Call activarcontrol

Text2.SetFocus
Toolbar1.Buttons(2).Enabled = True

Case Is = 2:
'verificar que los campos esten llenos
If Text2.Text = "" Then
MsgBox "Debe rellenar el campo", vbCritical, "Error"
Text2.SetFocus

Else

'pasa los datos a los campos
rsperiodo.Fields("descripcion") = Text2.Text
rsperiodo.Update

Set rsperiodo = Nothing

MsgBox (" Datos guardaros satisfactoriamente "), vbOKOnly
Text1.Text = ""
Text2.Text = ""
Call desactivarcontrol

' End If
End If




Case Is = 3:
Dim a As Integer
a = MsgBox("Desea eleminar el registro", vbQuestion + vbYesNo, "Sistema de Seguridad")
If a = vbYes Then

rsperiodo.Delete


rsperiodo.MoveNext
frm_periodos.Show

End If

gracias amigos se que falta codigo pero esa es la parte dond lo hago
  #2 (permalink)  
Antiguo 03/11/2008, 03:57
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
Respuesta: problema con el recorset no puedo guardar ni borrar...

Cita:
Iniciado por juanjoselive Ver Mensaje
hola compañeros etos dprogramando usando mysql server 5.0 con visual basic 6
aca esta el codigo fuente del modulo con el mando a llamar a la base de datos

...
ahora bien cuando intento grabar, eliminar o actualizar registro me sale un error
dice que el "recorset actual no permite actualizaciones puede ser una limitacion el proveedor o del tipo de bloqueo seleccionado."

rsperiodo.Fields("descripcion") = Text2.Text
rsperiodo.Update

rsperiodo.Delete

gracias amigos se que falta codigo pero esa es la parte dond lo hago
Hola, para ese tipo de operaciones mejor es utilizar consultas de actualización, sin crear ningún recordset.

Actualizar:
cn.Execute "UPDATE LaTabla SET descripcion = '" & Text2.Text & "'"

Eliminar:
cn.Execute "DELETE * FROM LaTabla WHERE Campo = '" & condición & "'"

Añadir registros:
cn.Execute "INSERT INTO LaTabla (Campo) VALUES ('" & variable & "')"

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 13:22.