Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cómo asignar un valor a una celda de un DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=32875)

bellota 19-06-2006 22:43:42

Cómo asignar un valor a una celda de un DBGrid
 
Hola,
Estoy trabajando con una dbgrid, mi problema es porque necesito asignarle la fecha de proceso en una de sus celdas, y me he dado miles de vueltas en el foro y en la ayuda y aún no encuentro nada que me oriente... BUAAAAA!!!!... Necesito su ayuda por favor.

Gracias,
Bellota.

vtdeleon 19-06-2006 22:58:07

Saludos

bellota debes explayarte un poco mas, pues aun está muy en las nubes el asunto que has planteado:confused:

Lo que pude entender es asigarle una fecha a un campo de una tabla:
Table.FieldByName('campofecha').AsDate:=VariableTipoFecha

bellota 19-06-2006 23:06:49

1 Archivos Adjunto(s)
Veamos si logro explicarme un poco mas...

Tengo un DBGrid asociado a un Ttable, al abrirse la pantalla deben desplegarse los datos que se encuentran en la tabla de mysql(la base de datos que utilizo), si deseo agregar un registro o una linea al dbgrid, debe salir un mensaje y en la celda que se encuentra vacía asignarle la fecha de proceso.

Adjunté una imagen para que sea mas fácil entender de que "hablo"...

Ahora, si bien, la sentencia que me diste me "funciona", hay un pequeño detalle... en vez de asignarle el valor a la fila 2 se lo asigna a la fila 3(es la fila que estoy agregando)... como hago para que eso no ocurra?...(creo que viendo la imagen se puede entender mejor)
Gracias.
Bellota.

vtdeleon 20-06-2006 03:45:03

Cita:

Empezado por bellota
[...]y en la celda que se encuentra vacía asignarle la fecha de proceso.
[...]en vez de asignarle el valor a la fila 2 se lo asigna a la fila 3(es la fila que estoy agregando)[...]

Aun estoy confundido, pues no sé si quieres agregar la fecha antes o despues de agregar un registro. Pero para ambos casos puedes usar lo eventos del Table: BeforeInsert, AfterInsert o OnNewRecord.

Chequea a ver si con uno de esos eventos puedes hacerlo.

Lepe 20-06-2006 09:13:33

Si lo he entendido bien, Tú estas creando la fila 3, pero quieres modificar la fecha de la fila 2. Si es así, tendrás que lanzar una consulta de actualización por la clave primaria de la fila 2, es decir algo como:

Código SQL [-]
 update nombreTabla set Campofecha = :Fecha where Campocodigo = :codigo

Donde el parámetro Fecha es el valor que quieres guardar, y el parámetro codigo es la clave primaria de la fila 2.

Saludos

bellota 20-06-2006 15:13:29

Gracias!!!!
 
Gracias a ambos...

vtdeleon, traté de hacerlo en los eventos que me mencionaste, pero me arrojaba un error, asi que lo hice como dijo Lepe, y me funcionó bien...

Muchas Gracias por darse el tiempo de ayudarme.

Bellota.
:D

roman 20-06-2006 16:50:06

Según entiendo, se debe asignar un valor a un campo del registro actual al momento de insertar un nuevo registro.

Pienso que hay aquí una confusión. Creo que no se trata tanto de asignar el valor cuando se inserte el nuevo registro sino justo antes de guardar el registro actual y para ello se usa el evento BeforePost en donde se verificaría que el campo esté vacío y en tal caso se asigna la fecha.

La solución de Lepe es correcta pero implica una consulta extra a la base de datos: una la que guarda el registro y otra la que lo actualiza con la fecha. Usando BeforePost sólo se hace la primera consulta.

// Saludos

Lepe 20-06-2006 17:26:14

roman: a mí me pasó exactamente lo mismo, tuve que meditar la frasecita:
Cita:

en vez de asignarle el valor a la fila 2 se lo asigna a la fila 3(es la fila que estoy agregando).
es decir, al agregar un registro, se quiere actualizar una fecha de otro registro, por eso es necesario una consulta aparte.

Saludos

roman 20-06-2006 17:31:50

¿Tú crees? En tal caso es un diseño muy raro. Está basando la lógica en el orden físico de los registros. No me convence(s) :p.

// Saludos

bellota 20-06-2006 20:55:29

Jajaja...
 
a mi tampoco... pero mi jefa lo quiere así...

así es la vida...

Gracias,
Bellota.


La franja horaria es GMT +2. Ahora son las 06:03:47.

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