|
|
|
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Хочу изменить значения в базе данных. Набо из 3000 записей. Программно по всем им прохожу, меняя значение одного поля. Но размер вбайтах файла базы данных *.db не меняется, хотя и при выполнении программы и впроцессе проектирования - база данных уже представлена в измененном виде. Однако перезагружаю компьютер - и база данных в старом своем состоянии. Такое ощущения что эти изменения хранятся в каком-то кэше, и нужно применить что-то типа ApplyUpdates. В чем тут дело?
Похожая история с копированием записей из одной базы в другую. Вроде бы все скопировалось, однако размеры как исходной базы данных, так и той, куда копировал - остались без изменений, хотя в процессе выполнения программы все отображается нормально, до перезагрузки компьютера. |
|||
|
||||
azesmcar |
|
|||
uploading... Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Ну в общем-то так оно и есть, и больше всего меня веселит то, что функция так и называется Кажется там была опция CashedUpdates, можно ее убрать. Давно это было, точно не помню. |
|||
|
||||
Нитонисе |
|
||||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Называется-то она так, но не работает
Выдает ошибку - T2: Not in cached update mode. T2 - это компонент класса TTable. |
||||
|
|||||
azesmcar |
|
|||
uploading... Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Нитонисе
вызывай ApplyUpdates() после функции Post() и ApplyUpdates стоит вызывать если CashedUpdates стоит. |
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
После Post() пишет ошибку - Database not in insert or edit mode. CashedUpdates на это никак не влияет. Да и вообще - эту опцию нужно ставить если надо кэшировать данные. А мне-то этого не надо. Мне надо сразу записывать. Потому CashedUpdates у меня всегда false. Но база почему-то не обновляется после прямой записи. |
|||
|
||||
azesmcar |
|
|||
uploading... Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Так не работает? |
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
||||
|
||||
azesmcar |
|
|||
uploading... Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Скорее всего проблемы компилятора..бывает
|
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Опять начались проблемы с Table.
Редактирую записи таки образом. Меняю в них точку на запятую.
В итоге все записи успешно редактируются, но они как будто бы в каком-то кэше. Отображаются правильно в DBGrid, но файл размера не поменял, а должен был. |
|||
|
||||
dumb |
|
|||
sceloglauxalbifacies Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
ничего он не должен. формат хранения данных для всех СУБД свой, и, как правило, при изменении данных, размер контейнеров(файлов) не меняется. тебя это вообще не должно волновать.
и где твоя логика?! - возьми текстовый файл, замени в нем все точки на запятые - размер поменяется? |
|||
|
||||
Данкинг |
|
|||
Yersinia pestis Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Да ладно. Возьми базу Access, добавь 1000 записей, потом их удали, потом добавь снова. Размер файла поменяется? Скорее, "Парадокс" непонятный. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
Нитонисе |
|
|||
Опытный Профиль Группа: Участник Сообщений: 917 Регистрация: 5.11.2009 Репутация: 2 Всего: 2 |
Кстати да... наверное ты прав. То есть получается что если у меня база данных с одним текстовым полем, размером 255 символов, то ее размер в байтах при значении этого поля всего в один текстовый символ не будет отличаться от размера в байтах если поле будет содержать 255 символов?
Я так пробовал с *.xml - тоже размер не меняется. Все записи как будто присутствуют в базе данных. Видимо есть возможность их восстановить. Они даже видны все, если просматривать файл в браузере. "Удаленные" записи имеют какой-то спец флаг, говорящий о том, что они !удаленные" |
|||
|
||||
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |