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