![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Vinnety |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 8.4.2003 Репутация: нет Всего: нет |
Есть таблица. Есть у нее поле Picture (BLOB field) . Загружаю туда картинку таким образом : table1.Edit; if OpenPictureDialog1.Execute then (table1.FieldByName('Picture') as TBlobField).LoadFromFile(OpenPictureDialog1.FileName); table1.Post; А при выходе из редактора делаю так: with Table1 do begin CachedUpdates:=true; Edit; fmAsk:=TfmAsk.Create(self); if fmAsk.ShowModal=mrOK then begin Post; ApplyUpdates; end else begin Cancel; CancelUpdates; end; CachedUpdates:=false; fmAsk.Free; end; И всё-вроде нормально! Но когда запускаю программу (в там только Table1, DdGrid1, DgImage1, DbNavigator1, DataSource1 - т.е. когда бегаешь по гриду в DbImage1 - отображается картинка), которая должна работать с этой таблицей возникает ошибка такого характера : "BLOB has been modified". Что делать |
|||
|
||||
| Vinnety |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 8.4.2003 Репутация: нет Всего: нет |
Так что, никто не знает как решить такую проблему
Или все надо делать через Query, а не через Table |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Ошибка связана с кэшированием изменений. Пиши flushBuffers после Post и перед закрытием таблицы.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
To Vit
А если не использовать кэширование? В одной книжечке я прочитал 2 примера: 1. При добавлении записи не требуется применять кэширование. 2. При изменении записи применяется кэширование. (книжечка помоему по Delphi 5 - Фараонов) Я, честно говоря, не очень понимаю суть кэширования, какая разница с ним или без него? Почему при добвлении не надо использовать, а при изменении надо? |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Если используются BLOB/Memo поля особенно при многопользовательском доступе рекомендую после Post всегда ставить flushBuffers, а объяснить что думали авторы когда писали свои книжки не могу.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |