Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-01-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Poder: 14
darkamerico Va por buen camino
Duda en cuanto a valores de celda de un DBGrid

Saludos nuevamente estimados amigos, el asunto es el siguiente:

Tengo 2 DBGrids, uno dependiente del otro, tipo maestro-detalle:

- EL DBGrid maestro se llama gridTrabajos
- El DBGrid dependiente del anterior se llama gridMovTrabajos.

La idea es que cuando se haga click en una fila de gridTrabajos se extraiga el valor de la celda de la columna 0, que se llama id_trabajo, para que pase a ser parametro de la consulta de gridMovTrabajos.

Mi problema nace cuando deseo extraer el valor de la columna 0 en el evento OnCellClick de gridTrabajos.

Aqui les muestro el codigo de ese evento:

Código Delphi [-]
procedure TForm1.gridTrabajosCellClick(Column: TColumn);
begin
  idTrabajoSelecc:=StrToInt((gridMovTrabajos.Columns[0].Field.text));
  q_GridMovTrabajo.Close;
  q_GridMovTrabajo.Params[0].AsInteger:=idTrabajoSelecc;
  q_GridMovTrabajo.Open;
end;


El problema se suscita en la primera linea del evento:

Código Delphi [-]
idTrabajoSelecc:=StrToInt((gridMovTrabajos.Columns[0].Field.text));

El error de esa linea dice: "Access violation at address 005A871B in module..."

Alguien puede darme una luz sobre como extraer ese valor pero en entero?

Saludos
Responder Con Cita
  #2  
Antiguo 18-01-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Poder: 14
darkamerico Va por buen camino
Thumbs up Solucion

Buscando en la red, encontre finalmente la solucion a esto, aqui les dejo el codigo para quien desee:

Código Delphi [-]
procedure TForm1.gridDetalleTrabajosCellClick(Column: TColumn);
begin
  idTrabajoSelecc:=gridDetalleTrabajos.DataSource.DataSet.Fields[0].AsInteger;
  q_GridMovTrabajo.Close;
  q_GridMovTrabajo.Params[0].AsInteger:=idTrabajoSelecc;
  q_GridMovTrabajo.Open;
end;
Responder Con Cita
  #3  
Antiguo 18-01-2013
Avatar de Caminante
Caminante Caminante is offline
Miembro
 
Registrado: oct 2010
Ubicación: Lima - Peru
Posts: 338
Poder: 14
Caminante Va camino a la fama
Prueba asi:

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  q_GridMovTrabajo.Close;
  q_GridMovTrabajo.Params[0].AsInteger:=dbgrid1.Fields[0].AsInteger;
  q_GridMovTrabajo.open
end;


Que bueno q encontraste la solucion.

Saludos
Responder Con Cita
  #4  
Antiguo 18-01-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 227
Poder: 14
darkamerico Va por buen camino
Gracias a ti

Cita:
Empezado por Caminante Ver Mensaje
Prueba asi:

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  q_GridMovTrabajo.Close;
  q_GridMovTrabajo.Params[0].AsInteger:=dbgrid1.Fields[0].AsInteger;
  q_GridMovTrabajo.open
end;


Que bueno q encontraste la solucion.

Saludos
Gracias Caminante, igual tu aporte es valioso, un abrazo
Responder Con Cita
  #5  
Antiguo 19-01-2013
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Una pregunta...

Que pasaría si:

1) Elimino la columna 0 del grid maestro.
2) Muevo la columna 0 a otra posición.

El código seguiría funcionando?.

Yo en estos casos prefiero utilizar los nombre del campo en forma literal.

Código Delphi [-]
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  q_GridMovTrabajo.Close;
  q_GridMovTrabajo.Params[0].AsInteger:=dbgrid1.Dataset.FieldByName('ID_TRABAJO').AsInteger;
  q_GridMovTrabajo.open
end;

Es un cambio sutil pero creo que me protege de algunas situaciones.

Saludos cordiales.
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
Ocultar valores de celda en dbgrid rruffino OOP 7 22-11-2012 12:36:48
Duda contar valores distintos ldelmor Varios 1 16-07-2012 19:47:51
¿duda sobre soporte a opensource cuanto cobrar.? JXJ Varios 2 20-07-2011 12:24:37
Duda sobre valores null Inmi Conexión con bases de datos 2 24-09-2007 17:21:27
Como Pintar Solo la Celda y No Toda la Columna de la Celda de un dbGrid?? AGAG4 Varios 11 15-11-2004 20:53:28


La franja horaria es GMT +2. Ahora son las 07:44:11.


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