Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-04-2012
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
StartKill Va por buen camino
Actualizar ClientDaset en otra base de datos

Buenas foro.

Saludarlos y solicitarles ayuda.

- Estoy con Dephi XE.
- Sql Server 2008.
- Tengo 2 bases de datos en el mismo servidor (Movil-1 y Movil-2).
- Basicamente las dos base de datos son identicas en la estructura.

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á)


Your friend

Startkill
Lima-Perú
Responder Con Cita
  #2  
Antiguo 26-04-2012
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Poder: 21
gatosoft Va camino a la fama
StartKill,

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....

Pero creo que lo que tu esperas es algo diferente ¿no es cierto?, pues estoy suponiendo que tus bases Movil-1 y Movil-2 son ambas transaccionales, lo cual querría decir que lo que buscas es una Sincronización o conciliación de datos entre las bases....

Todo lo que sea "en línea" tiene un costo, por lo menos de procesamiento, y es algo que debes evaluar....

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;

Esto tal vez te de una idea de como podrías conocer los cambios de tu ClientDataset antes de aplicarlos en una base, para intentar replicarlos en la otra....

Espero que te haya servido...

Un saludo,
Responder Con Cita
  #3  
Antiguo 05-06-2012
Avatar de StartKill
StartKill StartKill is offline
Miembro
 
Registrado: ene 2004
Posts: 299
Poder: 21
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
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
Actualizar estructura de base de datos sin perder datos ManuelPerez Firebird e Interbase 8 20-10-2010 02:41:19
copiar de una tabla de una base de datos a otra tabla igual de otra base de datos ingabraham Conexión con bases de datos 1 14-10-2008 23:16:42
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Actualizar la Base de Datos. ramirezjl7 Firebird e Interbase 4 04-01-2005 08:44:51


La franja horaria es GMT +2. Ahora son las 10:21:12.


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