Ver Mensaje Individual
  #1  
Antiguo 06-12-2008
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Reputación: 21
StartKill Va por buen camino
RefreshRecord - DBExpress con Interbase

Saludos al foro..

Estoy con Delphi 2006, Interbase 7.5 y componentes Dbexpress.

Tengo dos tablas (productos y grupos):
Productos
codigo_p
descrip_p
codigo_grupo


Grupos
codigo_grupo
nombre_grupo


Un FK de codigo_grupo entre ambas tablas

Tengo un componente:
SQLDataSet1=
'select p.codigo_p, p.descrip_p, p.codigo_grupo, g.nombre_grupo_p
from productos p
left join grupo p.codigo_grupo = g.codigo_grupo?'

En ProviderFlag estan asi:
codigo_p = [pfInUpdate,pfInWhere,pfInKey]
descrip_p = [pfInUpdate]
codigo_grupo = [pfInUpdate]
nombre_grupo = []

un DataSetProvider1 cuya propiedad UpdateMode = upWhereKeyOnly

Al final todo ello apuntando a un ClientDatset-->CDS

Cuando abro la consulta y la muestro en una grilla los datos son correctos.

Cuando añado/insert un nuevo registro y lo grabo con CDS.ApplyUpdates(0) no muestra el valor g.nombre_grupo.
Le doy un RefreshRecord tampoco se refresca el campo g.nombre_grupo.
(Con el IBExpert e visto que si hay algun valor en el campor codigo_grupo y por consecuencia deberia visualizarse un valor para g.nombre_grupo)

Pero si doy un CDS.Refresh o un "Reopen(CDS.close/CDS.open)" si se refresca el campo g.nombre_grupo del nuevo registro, pero es de suponer que he vuelto a leer todos los registros, cosa que no deseo, solo necesito refrescar el registro activo.

A la espera de su ayuda.

Startkill
Lima-Perú
Responder Con Cita