Agregar, editar, borrar

Por su parte el botón de cancelación simplemente cierra el formulario, sin actuar sobre los datos.

PUBLIC SUB btncancelar_click()

Me.close

End

Insertamos los datos mediante el siguiente código en el evento click de btnaceptar:

TRY hconn.EXEC (“insert into mitabla values (&1,&2,&3,&4,&5.&6)”, txtid,txtnombre,txtapellido,txttelefono,txtmovil,txtcumple)

ME.close
CATCH

message.error(“Imposible introducir los datos solicitados”)

END

Le pedimos al objeto connection que inserte los datos en la tabla,mediante la instrucción insert intro nombre_de_la_tabla values,el &1 indica que toma el primer valor a continuación que es txid.text, el &2 el siguiente(txtnombre.text) y así sucesivamente.

Si todo va bien el formulario se cierra, si hay un error se captura con catch y nos muestra el mensaje de error.

Volvamos ahora al formulario principal  y en el evento click de btnnuevo  colocamos el siguiente código;

PUBLIC SUB Btnnuevo_Click()

IF ConectarBase() THEN RETURN
fdata.runnew(hconn)
cerrarconexion()
Form_Open()

END

Primeros tratamos de conectarnos a nuestra base de datos, si no lo conseguimos nos salimos. Conseguida la conexión llamamos al método runnewde fdata.
Como este formulario se muestra en forma modal, el presente código queda a la espera de que ingresemos datos en fdata o simolemente lo cerremos.
A continuación cierra la conexión y llama al metodo form_open que se encarga de recargar los datos para mostrar los cambios realizados.

Continuando con el formulario principal, vamos a codificar el método para borrar registros presionando la tecla suprimir.

PUBLIC SUB tabla_KeyRelease()

IF Key.Code = Key.Delete THEN

IF tabla.current = NULL THEN RETURN
IF tabla.Current.Selected = FALSE THEN RETURN

IF ConectarBase() THEN RETURN
TRY hconn.exec(“delete from mitabla where id=&1”, tabla.Current.Key)
IF ERROR THEN
Message.Error(“Imposible borrar el registro”)
ELSE
tabla.Current.Delete()
ENDIF
ENDIF
END

Vemos primero si hay algún elemento en la tabla y si hay algo seleccionado, si no es así salimos del método. Si hay alguno seleccionado tratamos de abrir la conección y tras lograrlo, borramos de la base los datos del registro cuya clave coincida con la del registro seleccionado. Si hay un error sale el mensaje informativo, es caso contrario se borra el registro también en nuestro colunmview para reflejar el cambio en la base.
Aquí vemos que la instrucción sql usada es condicional y la palabra marcada en negrita where antecede a la condición;
TRY hconn.exec(“delete from mitabla where id=&1″, tabla.Current.Key)
Ahora vamos a ver como hacemos para modificar un registro, por ejemplo si un amigo cambia el móvil, basta con editar ese campo.
Vamos a aprovechar el evento activitede nuestro control colunmview(tabla) para agregar esta funcionalidad . Dicho evento se dispara al hacer doble click sobre alguna columna de la tabla.

PUBLIC SUB tabla_Activate()

DIM hresul AS Result

IF tabla.Current = NULL THEN RETURN

IF ConectarBase() THEN RETURN

hresul = hconn.Edit(“mitabla”, “id=&1”,
tabla.Current.Key)
fdata.runedit(hresul)
tabla.Current[0] = hresul[“id”]
tabla.Current[1] = hresul[“nombre”]
tabla.Current[2] = hresul[“apellido”]
tabla.Current[3] = hresul[“telefono_fijo”]
tabla.Current[4] = hresul[“telefono_movil”]
tabla.Current[5] = hresul[“cumple”]

cerrarconexion()

END

La línea en negrita es la que llama al método runedit de fdata. Como aún no hemos creado este método si tratamos de ejecutarlo ahora no funcionará.
Volvamos por tanto a fdata y coloquemos las siguientes variables al principio del formulario para que sean accesibles desde todo el formulario.

PRIVATE hconn AS Connection
PRIVATE hresul AS Result
PRIVATE editando AS Boolean

y agregamos el método runedit cuyo código es el siguiente:

PUBLIC SUB runedit(data AS Result)

hresul = data
editando = TRUE
txtid.text = hresul[“id”]
txtnombre.text = hresul[“nombre”]
txtapellido.text = hresul[“apellido”]
Txttelefono.text = hresul[“telefono_fijo”]
txtmovil.text = hresul[“telefono_movil”]
txtcumple.text = hresul[“cumple”]
ME.ShowModal

END

Esto nos muestra fdata con los datos del registro seleccionado de modo que podamos editarlo.Y nos pone la variable editando con el valor true. Esto es necesario para que mediante una instrucción condicional al hacer click en btnaceptar distinga entre altas y modificaciones.
El nuevo código de btnaceptar es el siguiente.

PUBLIC SUB btnaceptar_Click()
IF editando THEN

TRY hresul[“id”] = txtid.text
TRY hresul[“nombre”] = txtnombre.text
TRY hresul[“apellido”] = txtapellido.text
TRY hresul[“telefono_fijo”] = Txttelefono.text
TRY hresul[“telefono_movil”] = txtmovil.text
TRY hresul[“cumple”] = txtcumple.text
TRY hresul.Update

ELSE

TRY hconn.EXEC(“insert into mitabla values (&1,&2,&3,&4,&5,&6)”, txtid.text, txtnombre.text, txtapellido.text,
Txttelefono.text, txtmovil.text, txtcumple.text)

ENDIF

ME.Close()
CATCH
Message.Error(“Imposible introducir los datos solicitados”)
END

Si hay una modificación sitúa el valor de cada caja de texto con TRY y actualiza la base de datos con hresul.update, si hay un error lo captura con CATCH y muestra el mensaje de error. Si editando es false continúa con las intrucciones despúes de else que no es más que la instrucción insert into ya vista en agregar registros.

Anuncios
Esta entrada fue publicada en programación y etiquetada . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s