RE:Truncate en archivo dbase
Truncate (que elimina físicamente todos los registros) es soportado por SQL Anywhere, SQL Server (tendrías que averiguar si es soportado por DBase).
Como no se puede ejecutar TRUNCATE, directamente desde PB (ya que existe una función con el mismo nombre), debes ejecutarlo a través de un procedimiento almacenado. Es decir:
Crear el SP (simplificado):
* En SQL Server:
CREATE procedure miprocedure
as
truncate table mitabla
* En SQL Anywhere:
CREATE PROCEDURE miprocedure()
BEGIN
truncate table mitabla
END
En ambos casos la llamada al SP desde PB, es el mismo:
DECLARE eliminar PROCEDURE FOR miprocedure
USING SQLCA;
EXECUTE eliminar;
//Si quieres haz un retrieve para refrescar el DW
Dw_1.Retrieve()
Notas:
* Si tu tabla está relacionada con otras tablas; debes asegurarte que puede eliminar en cascada.
* No sé si DBase soporta SP y la forma de crearlos; también debes averiguar. Te aseguro que los ejemplos precedentes, sí funciona.