Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Modificar registros desde DBgrid (https://www.clubdelphi.com/foros/showthread.php?t=76550)

quakerman 08-11-2011 23:25:06

Modificar registros desde DBgrid
 
Buenas gente. Esta web me sirvio mucho como guia para arreglar ciertos problemas que tuve a lo largo de desarrollos de varios programas, asi que decidi registrarme. En fin, mejor empiezo con mi problema.

imageshack .us/photo/my-images/705/testff.png (puse un espacio en el medio porque no me permiten poner enlaces)

Lo que quiero hacer es lo siguiente: en el dbgrid que me aparecen los registros, quiero modificar el que esta seleccionado (en la img, seria "direccion") con el botón "modificar", el problema es que no se como hacerlo ¿Alguno puede mostrarme o darme una ayuda con el codigo?

Tambien necesitaria poder borrar el registro entero con el boton "borrar", pero si mal no recuerdo, el proceso era parecido al de crear un registro.

Desde ya, gracias por adelantado.

Casimiro Notevi 09-11-2011 00:19:36

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

Te podemos indicar varios enlaces porque se ha tratado muchas veces en estos foros, puedes hacer una búsqueda, incluso hay tutoriales completos, pero como no has dicho ni qué base de datos estás usando.

quakerman 09-11-2011 00:37:56

Ah, si, se me olvidaba. Estoy trabajando con Delphi 6, usando Database desktop (paradox). Busqué en los foros a si había algun tema parecido, pero no encontre ninguno.

ecfisa 09-11-2011 00:47:03

Hola quakerman.

Te comento que no entiendo muy bién cuál es tu dificultad.
Si tu intención es modificar el campo directamente desde TDBGrid basta con que su propiedad ReadOnly esté en False. (Y este relacionado con un DataSet que permita modificar)
Y si quieres usar un TDBEDit a ese efecto, relaciónalo con el TDataSet, poniendo en su propiedad DataSource el TDataSource asociado al TDataSet y en la propiedad DataField el nombre interno
del campo.

Me olvidaba... Para borrar con un TButton:
Código Delphi [-]
procedure TForm1.btBorraClick(Sender: TObject);
begin
  if MessageBox(Handle,'¿Borra el registro','CONSULTA',
    MB_ICONQUESTION+MB_OKCANCEL) = IDYES then
  DataSet.Delete;
end;

Un saludo.

quakerman 09-11-2011 01:44:16

Quizas no me haya expresado bien...

Cuando hago click sobre la celda del DBgrid, se selecciona, pero no puedo escribir sobre ella. Mi intención sería modificarla como si fuese un Edit. Probé con cambiarle el valor de "readonly" a "false", pero no tuve exito

Casimiro Notevi 09-11-2011 01:49:54

Cita:

Empezado por quakerman (Mensaje 417956)
...pero no tuve exito

Pero, ¿por qué no tuviste éxito?, ¿no se podía editar?, ¿se podía editar pero no se guardaba la modificación?, ¿sale algún mensaje?, etc.

quakerman 09-11-2011 02:05:29

Quiero decir que el valor se lo cambie a "false", pero aún así, no lo puedo editar. No sale ningún mensaje de error, simplemente, no lo puedo modificar.

ecfisa 09-11-2011 03:40:03

Hola quakerman.

Los motivos que conozco puedan provocar ese comportamiento son:
  • DBGrid con la propiedad Enabled = False.
  • DBGrid con la propiedad ReadOnly = True.
  • DBGrid con la propiead Options -> dgEditing = False.
  • DBGrid asociado a un TDataSet que no permita modificar. (un TQuery con una consulta por ejemplo).
  • DBGrid asociado a TQuery con su correspondiente TUpdateSQL, pero el TQuery tiene la propiedad RequestLive = False.


Un saludo.


La franja horaria es GMT +2. Ahora son las 15:03:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi