Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas.
Alguien sabe como hacer un rollback a datos generados en un QVD.
Tengo un QVD que guarda cierta informacion incluida la historica, los procesos que hoy se tienen planchan toda la informacion a diario, lo que pretendo es crear cargas incrementales, pero me tope con el problema del borrado.
Ejemplo:
Tengo informacion cargada de las ventas desde el anio 2000 a la fecha en un *.qvd, este archivo se actualiza a diario con los nuevos registros de las ventas, entonces si yo cargo el dia 07/06/2012 y posteriormente tengo la necesidad de borrarlo, como puedo hacer para truncar esta informacion del *.qvd.
Saludos,
Alberto
Hola Alberto,
No me queda claro si lo que quieres es eliminar por completo una línea de información o susituirla por información más actualizada.
En el primer caso, el script debería ser algo así como:
DatosActuales:
LOAD *
FROM Fichero.qvd (qvd)
WHERE Date(Fecha) <> Date('01/01/2012');
// ahora se guarda la tabla sin esos datos en el mismo fichero
STORE DatosActuales INTO Fichero.qvd (qvd);
En el segundo caso, necesitarás un campo clave, o una clave compuesta con la que puedas identificar qué registro es el que quieres eliminar.
// Carga los datos nuevos primero
DatosActualizados:
LOAD *;
SQL SELECT *
FROM Clientes;
// Carga sólo los datos que no tengan que actualizarse, y modifica los que esten actualizados por num cliente
DatosTotales:
CONCATENATE (DatosActualizados) LOAD *
FROM Fichero.qvd (qvd)
WHERE NOT EXISTS (NumCliente);
// La tabla DatosActualizados tiene tanto los nuevos como los antiguos, actualizados
// Sobreescribe el fichero original con todos los datos: antiguos y nuevos actualizados
STORE DatosActualizados INTO Fichero.qvd (qvd);
Espero que te sirva.
Miguel
Hola Alberto,
No me queda claro si lo que quieres es eliminar por completo una línea de información o susituirla por información más actualizada.
En el primer caso, el script debería ser algo así como:
DatosActuales:
LOAD *
FROM Fichero.qvd (qvd)
WHERE Date(Fecha) <> Date('01/01/2012');
// ahora se guarda la tabla sin esos datos en el mismo fichero
STORE DatosActuales INTO Fichero.qvd (qvd);
En el segundo caso, necesitarás un campo clave, o una clave compuesta con la que puedas identificar qué registro es el que quieres eliminar.
// Carga los datos nuevos primero
DatosActualizados:
LOAD *;
SQL SELECT *
FROM Clientes;
// Carga sólo los datos que no tengan que actualizarse, y modifica los que esten actualizados por num cliente
DatosTotales:
CONCATENATE (DatosActualizados) LOAD *
FROM Fichero.qvd (qvd)
WHERE NOT EXISTS (NumCliente);
// La tabla DatosActualizados tiene tanto los nuevos como los antiguos, actualizados
// Sobreescribe el fichero original con todos los datos: antiguos y nuevos actualizados
STORE DatosActualizados INTO Fichero.qvd (qvd);
Espero que te sirva.
Miguel