Вопрос № 92113: Уважаемые эсперты суть такова:
Использую datasource и clientdataset
В clientdataset=>FileName указываю путь к xml файлу (MobileAccessDbMobile.xml), при сохранении пишу так
if ClienDataSetl.Modified then
ClientDataSet.Post;
п...Вопрос № 92180: Здравствуйте, господа Эксперты! У меня, в проге используется БД Firebird-2.0, проблема в том что файл *.gdb не уменьшается после удаления из него данных, подскажите в чем причина?...
Вопрос № 92.113
Уважаемые эсперты суть такова:
Использую datasource и clientdataset
В clientdataset=>FileName указываю путь к xml файлу (MobileAccessDbMobile.xml), при сохранении пишу так
if ClienDataSetl.Modified then
ClientDataSet.Post;
пишет, что не может создать файл, подскажите пожалуйста как правильно перезаписать или сохранить тотже файл который указан в ClientDataSet=>FileName.
Зарание спасибо
Отвечает: Виктор Пырлик
Здравствуйте, Oneboyfriend!
Вариантов два - или нет файла или нет доступа на запись в данный каталог.
Если нет файла, скорее всего, метод пост прежде будет "ругаться" на то, что набор данных не открыт.
Для этого, можно попробовать, щелкнув на clientdataset правой кнопкой мыши и выбрать Create Dataset - будет создан набор данных с которым можете работать в последствии.
Во втором случае, требуется проверить путь: он должен существовать и должны быть права на запись для данного пользователя.
Возможно, вы написали имя файла которое не соответствует действительному или он лежит не там где вы прописали (относительные пути обманчивы :) ). Проверкой может служить - выставить свойство Active у clientdataset в True.
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 4-ый класс)
Ответ отправлен: 20.06.2007, 10:58
Вопрос № 92.180
Здравствуйте, господа Эксперты! У меня, в проге используется БД Firebird-2.0, проблема в том что файл *.gdb не уменьшается после удаления из него данных, подскажите в чем причина?
Причина в том, что не произведена сборка мусора.
Это можно сделать с помощью утилиты gbak.exe
Либо сделать backup/restore.
Или извлечь БД в sql скрипт, а потом восстановить ее.
Ответ отправил: Igor_ (статус: 3-ий класс)
Ответ отправлен: 20.06.2007, 12:50
Отвечает: Виктор Пырлик
Здравствуйте, Mr_pik_gammi!
самый лучший способ "очистить" базу - создать бэкап потом востановить из него.
Хорошая утилита для этого (и не только) IbExpert
--------- Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 4-ый класс)
Ответ отправлен: 20.06.2007, 12:52
Отвечает: Архангельский Андрей Германович
Здравствуйте, Mr_pik_gammi!
Для того чтобы уменшить файл нужно выполнить операцию Backup/Resore
Для этого служит программа gbak.exe (лежит в каталоге bin)
Заодно эта операция улучшит производительность БД.
Совет. Не нужно давать файлу БД тип .gdb - во-первых он использовался в Interbase, во-вторых он сейчас используется Microsoft и фозможны конфликты.
Наиболее подходящее расширение .fb, что позволяет очень просто именовать многофайловую БД - .fb, .fb1, .fb2 и т.д.
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Отвечает: Примак Руслан Николаевич
Здравствуйте, Mr_pik_gammi!
В дополнение к предыдущим ответам хотел бы добавить, что если у вас в БД своевременно делается сборка мусора, совсем не обязательно делать backup/restore для уменьшения размера БД. Место удаленных записей со временем займут вновь добавленные, и таким образом место теряться у вас не будет. Используйте backup по прямому его назначению - создание резервной копии БД.
В IBExpert "Службы":
"Резервирование базы данных"
"Восстановление базы данных"
Ответ отправил: Примак Руслан Николаевич (статус: 3-ий класс)
Ответ отправлен: 20.06.2007, 17:42