Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Вниз

Работа с Blob   Найти похожие ветки 

 
dik   (2007-10-26 00:25) [0]

Уважаемые мастера, задачка вроде бы простая, требуется очистить поле с картинкой.
Картинка в поле Field, тип TBlobField.
делаю:

Field.DataSet.Edit;
Field.Value := Null;

или

Field.DataSet.Edit;
Field.Clear;

или

Field.DataSet.Edit;
Field.Value := "";

В любом случае после указанных операций вижу в отладчике:
Field.OldValue = Field.NewValue = картинка

очистки поля не происходит,
а признак модификации Field.Modified = false

Если не поскажете, в чем дело, пойду лечиться, т.к. глазам своим уже не верю.


 
kaif ©   (2007-10-26 02:09) [1]

Я не помню этой темы. Если подключен какой-нибудь TDBImage для отображения картинки, то, кажется, я присваивал nil объекту Bitmap. Что-то вроде DBImage1.Picture.Bitmap.Assign(nil). И то это не сразу работало. Но "вслепую" как очистить - не помню. Допускаю, что даже простое  присутствие визуального компонента может каким-то образом мешать очистить поле так, как Вы пытаетесь это сделать. Для меня класс TGraphic Delphi всегда оставался несколько непонятным. Похоже, что было бы лучше, если бы это был интерфейс, а не класс.
Если сморозил ересь, прошу простить.
Просто компетентных ответов на вопрос пока я не поступило, поэтому я пытаюсь подать хоть какое-то направление для поиска решения. :)


 
Германн ©   (2007-10-26 02:18) [2]


> kaif ©   (26.10.07 02:09) [1]


> Просто компетентных ответов на вопрос "пока я не поступило",
>  поэтому я пытаюсь подать хоть какое-то направление для
> поиска решения. :)
>
Кавычки добавил я. Извини, Ашот.:)

Ну тогда и я выскажусь, раз "компетентных ответов" пока не было. А метод Post вызывается? Про Refresh  может быть скажу позже. :)


 
dik   (2007-10-26 08:26) [3]

[1] ...DBImage1.Picture.Bitmap.Assign(nil)....

Пробовал, только нужно делать DBImage1.Picture := nil;
не помогает, хотя картинка и очищается но не происходят изменения в поле Field.

[2]...метод Post вызывается?...
Разумеется, и Refresh срабатывает, да что толку, если в базу изменения просто не ушли, поскольку не было измения в самом поле.


 
Виталий Панасенко ©   (2007-10-26 09:24) [4]

Field.Clear

r
> В любом случае после указанных операций вижу в отладчике:
>
> Field.OldValue = Field.NewValue = картинка

А это очень похоже на то, что используется кешапдейт.. И, как вариант, не вызывается AppllyUpdates


 
Правильный_Вася   (2007-10-26 11:12) [5]

Field.Clear работает великолепно
еще лучше работает UPDATE x SET y = NULL


 
dik   (2007-10-26 11:54) [6]

Спасибо всем, разобрался.
При очистке поля типа TBlobField не порождается событие DataEvent, хотя и должно порождаться, чтобы связанный с полем контрол мог отреагировать на изменение данных, кроме того, не выставляется флаг Field.Modified, и когда датасет пытается сохранить только измененные поля, он оказывается грубо обманутым. Проконтролировать эту ситуацию (что-то было в поле и поле было очищено) в стандартных компонентах (DB, IDB) невозможно, во всяком случае я такого способа не нашел. Поэтому приходится теперь сохранять все имеющиеся Blob поля, были они изменены или нет.
Не знаю, в компонентах FIBplus этот глюк убран?


 
Ega23 ©   (2007-10-26 11:55) [7]

А где Post?


 
Правильный_Вася   (2007-10-26 11:58) [8]


>  не порождается событие DataEvent

байки
в Бде и дбэкспресс, слиентдатасете - везде порождается


 
dik   (2007-10-26 12:51) [9]

У меня IB-компоненты, проследил пошагово, не байки.


 
kaif ©   (2007-10-26 13:46) [10]

Я использую IBX6.04 под D6.
Вообще скачай обновление IBX, возможно у тебя старая версия. Вроде бы у меня таких проблем не возникало, во всяком случае методы Picture.Assign(nil) или Picture.Bitmap.Assign(nil)  в визуальных контролах у меня давали требуемый результат.


 
Маша Шрайбер ©   (2007-10-26 14:23) [11]

Вполне возможно, что не байки, т.к. содержимое блоб поля и работа с ним никаким боком не связана с набором данных, якобы его содержащим. По кр.мере это справедливо для IB/FB.


 
Johnmen ©   (2007-10-28 00:09) [12]


> Маша Шрайбер ©   (26.10.07 14:23) [11]

При использовании библиотек прямого доступа, следует добавить.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2008.03.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
2-1202460936
igor666
2008-02-08 11:55
2008.03.16
Сервис, подсчитывающий время бездействия ПК


3-1193151397
opoloXAI
2007-10-23 18:56
2008.03.16
Знак диаметра в DBGrid


15-1202440284
Slider007
2008-02-08 06:11
2008.03.16
С днем рождения ! 8 февраля 2008 пятница


15-1202266248
Slider007
2008-02-06 05:50
2008.03.16
С днем рождения ! 6 февраля 2008 среда


15-1202484636
Cyrax
2008-02-08 18:30
2008.03.16
Рейтинг (популярность) сотовых телефонов...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский