Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
ВнизPack в TClientDataSet Найти похожие ветки
← →
Владимир (2003-09-11 13:53) [0]Здравствуйте, уважаемые!
Использую в програмке TCliendDataSet как локальную таблицу, сохраняю в CDS или XML формате. Все прекрасно работает, но при удалении, записи только метятся как удаленные, при этом они остаются в файле и он разрастается...
Вопрос: есть ли возможность выполнить Pack? Я что-то не нашел...
← →
sniknik (2003-09-11 14:14) [1]> записи только метятся как удаленные
чего правда чтоли?
я всегда думал что раз CliendDataSet виртуальный (весь в памяти), то там таких проблем нет, и любой СейвТуФайл положит чистый от удаленных записей образ.
но т.к. не работал с ним в таком плане то и не знаю точно (а пробовать ломает как всегда).
← →
Nikolay M. (2003-09-11 14:18) [2]Имхо, странно. Я, правда, не работал в CDS с файлами, но в хелпе на Delete черным по белому написано:
Frees any buffers allocated for the record.
:(
← →
Владимир (2003-09-11 14:21) [3]СейвТуФайл не делал, тк метод Пост, при реально указанном ФайлНейм все сохраняет и без вызова СейвТуФайл...
А вот Pack и Zap не могу реализовать...
← →
Владимир (2003-09-11 14:24) [4]То есть, я указываю ClientDataSet.FileName:="test.cds" и работаю...
Что-то не так?
← →
sniknik (2003-09-11 15:08) [5]а так значит, почему не так? если работает
сделай тогда
ClientDataSet1.SaveToFile()
по идее это и будет Pack, в другой файл естественно.
← →
Бомеранг (2003-09-11 16:09) [6]Да все равно он будет сохранять все сделанные изменения в файл.
Я сделал так:
беру открываю в другом ClientDataSet этот файл,
первому делаю EmptyTable(или типо того, но не Делете, т.к. это тоже все записывается), а потом переписываю данные из второго в первый...
← →
Polevi (2003-09-11 16:28) [7]MergeChangesLog
← →
Владимир (2003-09-11 17:12) [8]Спасибо!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c