Bueno ,viendo el problema de
Wbarrantes veo que la cosa se ha complicado demasiado de lo que parece.
![Wink](http://www.clubdelphi.com/foros/images/smilies/wink.gif)
Si lo que se desea es encriptar el contenido de una columna en un DBGrid, pues yo veo
dos alternativas:
1ra.- Hacerlo directamente en el SERVER
Tener una funcion o hacer uso de una funcion encriptadora directamente en la consulta SQL en el server es decir mi consulta SQL podría ser así:
Código SQL
[-]Select Nombre,Apellido1,Apellido2,Encryptar(CampoX) from MiTabla;
Con eso me evito la tarea de hacerlo desde Delphi.
2da.- Haciendolo desde Delphi
Desde Delphi lo que se podría hacer es utilizar el evento
OnGetText que todo
Campo Persistente tiene y poner un código sencillo como éste:
Código Delphi
[-]procedure TForm1.ZTable1CampoXGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text:=Encryptar(Text);
end;
Desde luego para hacer uso del evento
OnGetText lo primero que tendriamos que hacer es
agregar nuestro campo en cuestion(CampoX) como
campo persistente en el Dataset(Query o Table) que trae los datos de la base de dato.
![Wink](http://www.clubdelphi.com/foros/images/smilies/wink.gif)
.
Ésta solucion evitará estar modificando los datos en la base de datos, ya que como te han mencionado anteriormente si pones al Dataset en estado de Edicion (Data.Edit; ) se corre el riesgo de modificar los datos en la base de dato, y lo que yo veo es que solo se necesita mostrar los datos encriptado , pero que en la base de datos queden intactos , es decir que no se modifiquen.
![Wink](http://www.clubdelphi.com/foros/images/smilies/wink.gif)
.
Espero que te sea de ayuda.
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)
Saludos...
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)