Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2006
Avatar de bellota
bellota bellota is offline
Miembro
 
Registrado: may 2006
Ubicación: Santiago de Chile
Posts: 26
Poder: 0
bellota Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 19-06-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

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

Lo que pude entender es asigarle una fecha a un campo de una tabla:
Table.FieldByName('campofecha').AsDate:=VariableTipoFecha
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 19-06-2006
Avatar de bellota
bellota bellota is offline
Miembro
 
Registrado: may 2006
Ubicación: Santiago de Chile
Posts: 26
Poder: 0
bellota Va por buen camino
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.
Archivos Adjuntos
Tipo de Archivo: zip DbGrid.zip (6,4 KB, 55 visitas)

Última edición por bellota fecha: 19-06-2006 a las 23:39:43.
Responder Con Cita
  #4  
Antiguo 20-06-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
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.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 20-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 20-06-2006
Avatar de bellota
bellota bellota is offline
Miembro
 
Registrado: may 2006
Ubicación: Santiago de Chile
Posts: 26
Poder: 0
bellota Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 20-06-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #8  
Antiguo 20-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 20-06-2006 a las 17:29:02.
Responder Con Cita
  #9  
Antiguo 20-06-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿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) .

// Saludos
Responder Con Cita
  #10  
Antiguo 20-06-2006
Avatar de bellota
bellota bellota is offline
Miembro
 
Registrado: may 2006
Ubicación: Santiago de Chile
Posts: 26
Poder: 0
bellota Va por buen camino
Jajaja...

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

así es la vida...

Gracias,
Bellota.

Última edición por bellota fecha: 20-06-2006 a las 20:57:33.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02-08-2005 12:05:35
como asignar un valor a una columna en un dbgrid Shidalis Varios 4 18-07-2005 23:50:46
Obtener el valor de una celda de dbgrid gescoto99 OOP 3 31-03-2004 22:47:16
Como hago referencia al valor de una celda de un DBGrid? Sóstrato OOP 3 12-06-2003 00:32:06


La franja horaria es GMT +2. Ahora son las 11:51:19.


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
Copyright 1996-2007 Club Delphi