Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.08.2012, 06:53   #1
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию Работа с Blob - Можно ли как то выгрузить картинку из DBImage в БД?

В таблицу Оптовый магазин добавьте поле Вывеска магазина содержащее файлы формата *.bmp

Делаю как то так.
Это для загрузки
Код:
procedure TForm1.Button9Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
DM.Query2.Insert;
DM.Query2.ParamByName('Fotomag').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
DM.Query2.Post;
end;
end;
Это для сохранения
procedure TForm1.Button10Click(Sender: TObject);
begin
if SaveDialog1.Execute then
DM.Query2.ParamByName('FotoMag').Value.SavetoFile(Savedialog1.FileName+'.bmp');
end;
end.
Впоследствии не удается добавить файл. В чем может быть ошибка.
Можно ли как то выгрузить картинку из DBImage в БД?

Последний раз редактировалось artemavd; 24.08.2012 в 07:34.
Ericnex вне форума Ответить с цитированием
Старый 24.08.2012, 07:37   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Можно ли как то выгрузить картинку из DBImage в БД?
Из DBImage конкретно нельзя. Можно загрузить в БД из Image. Какая СУБД? Paradox чтоли? Проблема именно с выгрузкой из BLOB поля в файл?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 24.08.2012, 09:21   #3
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

СУБД клиент-серверная InterBase. Проблема с загрузкой изображения в БД.
Ericnex вне форума Ответить с цитированием
Старый 24.08.2012, 11:58   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я не знаю точно как будет это в Interbase. Приведу пример как я делаю в Firebird (работает). Наверное в Interbase аналогично будет:
Код:
if Form1.sOpenPictureDialog1.Execute then
begin
 Form1.sLabel1.Caption:=Form1.sOpenPictureDialog1.FileName;
Form1.pFIBQuery1.Close;
Form1.pFIBQuery1.SQL.Clear;
Form1.pFIBQuery1.SQL.Text:='INSERT INTO T_TABLE(BLOB_POLE) VALUES(:BP)';
Form1.pFIBQuery1.ParamByName('BP').Value:=Form1.sLabel1.Caption;
Form1.pFIBQuery1.ExecQuery;
Form1.pFIBQuery1.Transaction.Commit;
end;
Писал прямо на форуме, возможно где-то ошибся в словах. У меня все работает.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2012, 07:11   #5
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Не совсем работает: особенно в отношении этого
Form1.pFIBQuery1.ExecQuery;
Form1.pFIBQuery1.Transaction.Commit ;

У меня программа не понимает этих методов.
Ericnex вне форума Ответить с цитированием
Старый 27.08.2012, 08:59   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
У меня программа не понимает этих методов.
Эти методы есть у компонентов FIBPlus.
Приведи полностью код, в котором ты пытаешься добавить картинку в БД.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2012, 10:52   #7
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Примерно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.SQL.Clear;
  Query1.SQL.Add('insert into tNoutBook (Image) values ( :Image)');
  Query1.ParamByName('Image').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
  Query1.ExecSQL;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from tNoutBook');
  Query1.Open;
end;
Обработчик события кнопки «Загрузить картинку»:
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

Последний раз редактировалось Stilet; 27.08.2012 в 13:32.
Ericnex вне форума Ответить с цитированием
Старый 27.08.2012, 15:23   #8
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Зеленым - почему нет этого в коде
Красным - зачем это?
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.SQL.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('insert into tNoutBook (Image) values ( :Image)');
  Query1.ParamByName('Image').LoadFromFile(OpenPictureDialog1.FileName,ftBlob);
  Query1.ExecSQL;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from tNoutBook');
  Query1.Open;
end;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 27.08.2012, 15:47   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Красным - зачем это?
Потому, что используется BDE. И завершить транзакцию наверно нужно Database.Commit после ExecSQL. При условии, что InterBase в этом смысле подобен FireBird. Close после ExecSQL не нужен. А для отображения лучше использовать другой TQuery. И зачем BDE для InterBase? IB-компонент в дельфи полно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.08.2012 в 15:50.
Аватар вне форума Ответить с цитированием
Старый 27.08.2012, 16:02   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Потому, что используется BDE
Ааа....тогда с пас. Я с этим старьем не работал уже давно ))
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
He получается отобразить blob-поле в DBImage igelchen БД в Delphi 3 16.09.2015 08:35
Выгрузить картинку с листа Excell в Image Userform'ы Hoochara Microsoft Office Excel 1 07.09.2012 19:57
Отображать данные поля blob в DBImage C2H5OH Помощь студентам 24 17.08.2012 14:03
как вывести из Ole-поля access'a картинку в dbimage? nuevegramodelamor Помощь студентам 2 17.05.2012 11:08
Можно ли java-скриптом загружать картинку в поле BLOB Оракла? GenniY JavaScript, Ajax 2 15.07.2010 23:51