powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как очистить blob поле от содержимого
7 сообщений из 7, страница 1 из 1
Как очистить blob поле от содержимого
    #34481964
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
Попробовал использовать BLOB поле для хранения и IMAGE на форме для отображения картинки
Добавил две кнопки "Добавить" "Стереть"

Код кнопки "Добавить"

myfoto=GETPICT()
IF !EMPTY(myfoto) AND FILE((myfoto))
replace user.foto WITH FILETOSTR(myfoto)
= TABLEUPDATE(.T.)
thisform.image1.PictureVal= user.foto
thisform.Refresh()
ENDIF

Код кнопки "Стереть"

replace user.foto WITH ""
= TABLEUPDATE(.T.)
thisform.image1.PictureVal=""
Thisform.Refresh()

Код кнопки "Добавить" нормально отрабатывает, т.е загружает картинку и показывает,
а код кнопки "Стереть" вроде бы отрабатывает, но форму закрываю, открываю снова
и картинка как будто и не стиралась, что может быть и как правильно очистить BLOB поле
от содержимого
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482041
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При использовании функций вроде TableUpdate() следует очень тщательно следить за текущей рабочей областью. Необходимо либо перед их использованием явно переключаться в нужную рабочую область

Код: plaintext
1.
2.
3.
4.
5.
SELECT user
replace user.foto WITH "" 
= TABLEUPDATE(.T.) 
thisform.image1.PictureVal="" 
Thisform.Refresh() 

Либо указывать в самой функции в какой рабочей области ее необходимо применить

Код: plaintext
1.
2.
3.
4.
replace user.foto WITH "" 
= TABLEUPDATE(.T.,.T.,"user") 
thisform.image1.PictureVal="" 
Thisform.Refresh() 

Дело в том, что по умолчанию, подобные функции работают в текущей рабочей области. Но, в общем случае, "текущая" не означает "нужная".
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482063
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
замечания по существу, но проблема не решилась, картинка не удаляется
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482069
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
Пробовал так

SELECT user
APPEND MEMO user.foto FROM tempfile.txt OVERWRITE
* replace user.foto WITH ""
= TABLEUPDATE(.T.)
thisform.image1.PictureVal=""
Thisform.Refresh()

Думая что BLOB поле это аналог MEMO и нужна команда
APPEND MEMO user.foto FROM tempfile.txt OVERWRITE
где tempfile.txt файл 0 длины включенный в проект
код отрабатывает, но картинка из BLOB не удаляется
Кто знает что надо сделать?
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482071
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
Спасибо, заработало так

SELECT user
replace user.foto WITH ''
= TABLEUPDATE(.T.)
thisform.image1.PictureVal=""
Thisform.Refresh()

Проблема была в том что записал
replace user.foto WITH "" - двойные кавычки не удаляли
replace user.foto WITH '' - одинарные, все стерлось
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482075
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
Ну вот и так и так правильно и работает,
replace user.foto WITH ""
replace user.foto WITH ''

Проблема оказалась в другом, с показом картинки показывалась одна запись
а картинка отображалась от предыдущей или не обновлялась текущая
гдето я с refresh формы чтото перепутал,

А с картинкой в BLOB поле оказалось легко работать... ;-)][
...
Рейтинг: 0 / 0
Как очистить blob поле от содержимого
    #34482092
oav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
oav
Гость
Все заработало, привожу код

Свойство объекта Image.Stretch = 2 – Stretch

В Init формы добавляем код

IF !EMPTY(user.foto)
Thisform.Image1.PictureVal = user.foto
Thisform.Image1.Visible = .T.
ELSE
Thisform.Image1.PictureVal = ""
Thisform.Image1.Visible= .F.
ENDIF

Кнопка “добавить” изображение

myfoto=GETPICT()
IF !EMPTY(myfoto) AND FILE((myfoto))
SELECT user
replace user.foto WITH FILETOSTR(myfoto)
= TABLEUPDATE(.T.)
thisform.image1.PictureVal= user.foto
thisform.image1.visible= .T.
thisform.Refresh()
ENDIF

Кнопка “стереть” изображение

SELECT user
replace user.foto WITH ''
= TABLEUPDATE(.T.)
Thisform.Image1.PictureVal = ""
Thisform.Image1.Visible= .F.
Thisform.Refresh()

Код метода Click кнопок движения по базе (cmdPrev,cmdNext,cmdTop,cmdEnd)
добавить код

DODEFAULT()
IF !EMPTY(user.foto)
Thisform.Image1.PictureVal = user.foto
Thisform.Image1.Visible = .T.
ELSE
Thisform.Image1.PictureVal = ""
Thisform.Image1.Visible= .F.
ENDIF
Thisform.Refresh()

Ну и не забывать делать PACK MEMO если часто будете добавлять, удалять
картинки в поле, чтобы мемо файл не сильно распухал.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как очистить blob поле от содержимого
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]