Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема с таблицей


Автор: Vinnety 23.11.2003, 14:59
baaa.gif Подскажите, пожалуйстра!
Есть таблица. Есть у нее поле 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".
Что делать confused.gif В чём ошибка confused.gif

Автор: Vinnety 24.11.2003, 17:00
Так что, никто не знает как решить такую проблему confused.gif
Или все надо делать через Query, а не через Table confused.gif

Автор: Vit 24.11.2003, 17:37
Ошибка связана с кэшированием изменений. Пиши flushBuffers после Post и перед закрытием таблицы.

Автор: Akella 26.11.2003, 14:13
To Vit
А если не использовать кэширование?
В одной книжечке я прочитал 2 примера:
1. При добавлении записи не требуется применять кэширование.
2. При изменении записи применяется кэширование.
(книжечка помоему по Delphi 5 - Фараонов)
Я, честно говоря, не очень понимаю суть кэширования, какая разница с ним или без него?
Почему при добвлении не надо использовать, а при изменении надо?

Автор: Vit 26.11.2003, 16:34
Если используются BLOB/Memo поля особенно при многопользовательском доступе рекомендую после Post всегда ставить flushBuffers, а объяснить что думали авторы когда писали свои книжки не могу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)