Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Consulta sobre DBGrid delphi 6 (https://www.clubdelphi.com/foros/showthread.php?t=74058)

oktubre 27-05-2011 23:42:41

Consulta sobre DBGrid delphi 6
 
Hola gente,
mi consulta es sobre si se puede acceder a un registro de un dbgrid haciendo doble click sobre la fila.
no se si soy claro, la idea es hacer click o doble click sobre una fila (o registro) en el dbgrig y producir algo, como borrarlo o ponerlo en estado de edición, pero no todo el dbgrid sino el registro sobre el que actúo.
gracias de antemano,
esteban

Casimiro Noteví 28-05-2011 00:12:08

Por supuesto que sí, si lo tienes asociado a un dataset con los respectivos sql, su funcionamiento predeterminado es así, precisamente.

ecfisa 28-05-2011 00:17:11

Hola oktubre.

En principio lo que se pone en algún estado no es el TDBGrid, es el TDataSet asociado a él.
No es posible poner un registro en un estado en particular de forma independiente al estado del DataSet, lo que es posible es interactuar con el registro seleccionado en ese momento.

Por ejemplo, si el DBGrid1 tiene el DataSource1 que apunta al DataSet1, este código en respuesta al evento OnDblClick del DBGrid1 provoca el borrado del registro actualmente seleccionado en el mismo:
Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  DataSet1.Delete;
end;

Que sería lo mismo que hacer:
Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  DBGrid1.DataSource.DataSet.Delete;
end;

Un saludo.

Edito: No vi el mensaje de Casimiro, que básicamente es lo mismo pero mejor resumido ;)

oktubre 28-05-2011 01:02:28

a ver si entendi bien
 
a ver si entendí bien...
si tengo un DBGrid es porque hay un Tquery y un TDatasource no?
el dataset del que hablan es el TDatasource?

ahora, de que manera le indica el procedimiento de cual registro se trata exactamente?

disculpen pero vengo de PHP y se imaginan que estoy mas acostumbrado a las tablas hechas a mano con etiquetas pedorras y links con las instrucciones sql correspondientes a cada registro. un poco me cuesta entender como se hace con un dbgrid.
gracias por sus respuestas, me voy a poner a probar y pase lo que pase, les copio codigo.

oktubre 28-05-2011 01:17:23

Bueno, ahora estoy lleno de dudas
 
no me maten, pero ahora si que no entiendo.
lo probe con un Tquery y no funciona, pero con un TTable funciona perfectamente, al hacer doble click borra el registro sin problemas.

hay una explicacion racional para eso no? cual es?

Pedro-Juan 28-05-2011 01:24:33

Tienes que actualizar el TQuery después de borrar el registro.

Un saludo.

ecfisa 28-05-2011 02:07:23

Cita:

Empezado por oktubre (Mensaje 401697)
no me maten, pero ahora si que no entiendo.

No te preocupes que no hay motivos para llegar a esos extremos ... :D

Cita:

lo probe con un Tquery y no funciona, pero con un TTable funciona perfectamente, al hacer doble click borra el registro sin problemas.
hay una explicacion racional para eso no? cual es?
Si que la hay, y es que el TQuery no realiza como el TTable actualizaciones al menos en forma directa, para eso tenés que lanzar manualmente una sentencia de actualización o utilizar un TUPDateSQL. Pero realmente un TTable es más simple de usar para esa tarea.

Un saludo. :)


La franja horaria es GMT +2. Ahora son las 15:17:58.

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