Ver Mensaje Individual
  #3  
Antiguo 05-06-2012
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Reputación: 23
StartKill Va por buen camino
Excelente respuesta

Startkill dice:
Cita:
... Aqui mi duda:
- Hay una tabla llamada "Almacenes" en cada base de datos.
- Uso un ClientDataSet para "Almacenes" de Movil-1 (el resultado de una query)
* Existe algun metodo/forma para utilizar el "resultado/filas" del ClientDataSet para añadir las filas a la tabla "Almacenes" de la base de datos Movil-2

- Basicamente mi deseo no es solo añadir el resultado de este clientDataset, tambien deseo hacer update o delete de las filas de este clientDaset a la otra tabla de la otra base de datos. (segun sea el caso a una condicion que manejariá) ...
gatosoft responde:
Cita:
Lo que buscas es una replicación en línea... para esto la mayoría de las bases traen esta funcionalidad para que se haga de forma automática en línea o periódicamente, pero esperando que la base destino no sea transaccional, es decir, solo es un repositorio de replciación como medida de seguridad....

Hay un articulo muy interesante de Pablo Reyes en "Embarcadero Developer Network" llamado Reconciliación de errores de actualización. revisa especialmente el apartado: "Registros modificados", en este muestra una forma para Visualizar los registros que han sufrido modificaciones en el ClientDataset.... el código clave es:

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  stStatusFiler: TUpdateStatusSet;
begin
  stStatusFiler := [];
  if CHKModified.Checked then
    stStatusFiler := stStatusFiler + [usModified];
  if CHKInserted.Checked then
    stStatusFiler := stStatusFiler + [usInserted];
  if CHKDeleted.Checked then
    stStatusFiler := stStatusFiler + [usDeleted];
  (DSParts.DataSet as TClientDataSet).StatusFilter := stStatusFiler;
end;

Gracias gatosoft

Your friend

Startkill
Lima-Perú
Responder Con Cita