Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-10-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Actualizar todos los registros de un ClientDataSet

Como dice el titulo como hago para actualizar todos los registros ?
la idea es que tengo una tabla en memoria con varios registros y una columna de ITEM que va del 1 al Nº total de registros

imaginemos que tengo una tabla con 60 registros, enumerados y si borro el registro 20, todos los demas deben re-enumerarse y tendre 59 registros....

estaba pensando en

Código Delphi [-]
vitem := 1;
CdsAsiento.First;
While not cdsasiento.eof do
Begin
  cdsasiento.edit;
  cdsasiento.item.value := vItem;
  cdsasiento.post;
  inc(vitem);
End;


existe alguna otra manera?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 23-10-2018
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
Hola


Como es un clientdataset podrias crear el campo para la numeracion como calculado y luego en el evento oncalcfields:


Código Delphi [-]
MiDataset.fieldbyname('Num').asinteger:=Midataset.recno;


No lo he probado pero una vez hice lo mismo y mas o menos recuerdo que asi lo resolvi.



Espero sea util


Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #3  
Antiguo 23-10-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
no funciona, me sale 0 en todos los registros.
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 23-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Pero, ¿ Asignaste la propiedad TClientDataSet.RecNo al campo calculado en el evento OnCalcFields del TClientDataSet ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 23-10-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
me explicas como se hace por favor?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #6  
Antiguo 23-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si por supuesto, va un ejemplo:

1.- Sobre el TClientDataSet hace click con botón derecho del mouse y agrega los campos persistentes:


2.- Agrega un nuevo campo:


3.- Definelo:


Y luego, estando seleccionado el TClientDataSet, desde el Object Inspector -> events -> doble click sobre el evento -> OnCalcFields y dentro del procedimiento este código:
Código Delphi [-]
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
  cdsRecNo.Value := ClientDataSet1.RecNo;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 24-10-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
ah si
hice eso, agregue un campo Item (Calculated)
pero me sale cualquier cosa
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 24-10-2018
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En mis pruebas mantiene correctamente la numeracion de los registros al agregarlos o al borrarlos:


Pero, hay que tomar en cuenta que no todos los DataSet reconocen posiciones y eso podría estar dandote algun problema. En la categoría de los que no lo hacen entran aquellos que soportan cliente/servidor.

Como desconozco el gestor de base de datos y los componentes de conexión que estas usando, no podría decir mucho mas...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 24-10-2018
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
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

En mis pruebas mantiene correctamente la numeracion de los registros al agregarlos o al borrarlos:




En el programa que tenia tambien funcionaba bien sobre el clientdataset. Tal vez tengas en la propiedad packetrecords un valor diferente al que tiene por defecto y eso este afectando (Creo). Fuera de eso no se que pueda estar pasando.
Por desgracia no he podido encontrar el codigo de mi programa para compararlo.


Saludos
__________________
Caminante, son tus huellas el camino y nada más; Caminante, no hay camino, se hace camino al andar.
Antonio Machado
Responder Con Cita
  #10  
Antiguo 27-11-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Uso MsSQL me conecto via FireDac

Cita:
Empezado por ecfisa Ver Mensaje
Hola.

En mis pruebas mantiene correctamente la numeracion de los registros al agregarlos o al borrarlos:


Pero, hay que tomar en cuenta que no todos los DataSet reconocen posiciones y eso podría estar dandote algun problema. En la categoría de los que no lo hacen entran aquellos que soportan cliente/servidor.

Como desconozco el gestor de base de datos y los componentes de conexión que estas usando, no podría decir mucho mas...

Saludos
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #11  
Antiguo 27-12-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
aun no puedo solucionar este problema
he seguido los pasos indicados y nada

alguna referencia adicional?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 27-12-2018
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola Oscar. Tal vez deberías mostrar lo que estás haciendo, por lo menos con el 10% de dedicación y detalle que tuvo ecfisa para orientarte.

La pereza para los que programan en Visual Basic, colega. ;-)
Responder Con Cita
  #13  
Antiguo 27-12-2018
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
entendi cual es el problema.
lo que me dio ecfisa si funciona ya lo probe, el tema es que posteriormente al post, recorro los registros del ClientDataSet, para hacer unos calculos (sumas, acumulados, etc), es ahi donde se hace bolas.
lo solucione, pero ahora me doy con la sorpresa que cuando ejecuro la instruccion

CdsDetalle.First

el campo Item se pone en blanco (cero) en todos los registros...
cosa de locos
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Actualizar registros de ClientDataSet oscarac OOP 1 31-01-2018 11:01:00
Actualizar datos al clientdataset escorpionrojo43 Conexión con bases de datos 1 14-08-2013 18:51:02
buscar registros de un ClientDataSet a otro clientDataSet novato_erick Conexión con bases de datos 2 02-02-2013 21:48:09
Actualizar todos los registros de una tabla GrupoDatasoft Tablas planas 4 09-02-2009 16:19:09
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql Arturo MySQL 3 05-09-2006 19:39:37


La franja horaria es GMT +2. Ahora son las 17:26:35.


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