Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.10.2011, 07:21
Skif1369 Skif1369 вне форума
Прохожий
 
Регистрация: 07.10.2011
Сообщения: 3
Репутация: 10
По умолчанию Загрузка и выгрузка данных из MSSQL

Доброе время суток всем. У меня есть необходимость загружать в БД (БД на MSSQL 2005) в поле типа "Image" файлы. В БД гружу при помощи следующей команды
Код:
INSERT INTO tbl_Image (I_Image) 
SELECT *
FROM OPENROWSET(BULK N'C:\Ошибка контроллера.jpg', SINGLE_BLOB) AS [File]

Т.е. проблем с загрузкой файла нет. Мне необходимо этот файл потом из БД вытянуть и открыть его. Все это надо реализовать на Delphi. А поскольку я новичок, то прошу помощи как все это реализовать.
Ответить с цитированием
  #2  
Старый 07.10.2011, 08:00
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

В uses добавь Shellapi:
Код:
unit Unit1;
interface
uses
...,
Shellapi;

На форму кинуть ADOQuery (name - query).
Установить Connection, а в SQL внести запрос типа:
Код:
select I_Image from tbl_Image
потом обрабатываем (как пример на нажатие кнопки)
Код:
procedure TfmLinks.Button1Click(Sender: TObject);
begin
  if query.Active then
    query.close;
  query.open; //получили твою картинку

  //сохраняем на диск С под именем Image с расширением JPEG
  TBlobField(query.FieldByName('I_Image')).SaveToFile('C:\Image.jpg'); 

  //открытие
  ShellExecute(0,'Open',PChar('C:\Image.jpg'),nil,nil,1);
end;
Как-то так.
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 07.10.2011, 08:22
Skif1369 Skif1369 вне форума
Прохожий
 
Регистрация: 07.10.2011
Сообщения: 3
Репутация: 10
По умолчанию

Спасибо, буду пробывать сейчас
Ответить с цитированием
  #4  
Старый 07.10.2011, 08:39
Skif1369 Skif1369 вне форума
Прохожий
 
Регистрация: 07.10.2011
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Ildar-tsr
В uses добавь Shellapi:
Код:
unit Unit1;
interface
uses
...,
Shellapi;

На форму кинуть ADOQuery (name - query).
Установить Connection, а в SQL внести запрос типа:
Код:
select I_Image from tbl_Image
потом обрабатываем (как пример на нажатие кнопки)
Код:
procedure TfmLinks.Button1Click(Sender: TObject);
begin
  if query.Active then
    query.close;
  query.open; //получили твою картинку

  //сохраняем на диск С под именем Image с расширением JPEG
  TBlobField(query.FieldByName('I_Image')).SaveToFile('C:\Image.jpg'); 

  //открытие
  ShellExecute(0,'Open',PChar('C:\Image.jpg'),nil,nil,1);
end;
Как-то так.
А без сохранения на диск это возможно?
Ответить с цитированием
  #5  
Старый 07.10.2011, 09:57
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от Skif1369
А без сохранения на диск это возможно?

Можно, но того не стоит (правда не стоит!). Если напрягает файл на жестком диске, то можно:
1. Хранить в папке с проектом универсальный рисунок, например, temp.jpg и все время его перезаписывать.
2. Можно на FormClose выполнять:
Код:
  try DeleteFile('C:\Image.jpg'); except end;
3. А можно и то и другое. В общем решать все равно тебе. Ищи наиболее оптимальные вариант именно для ТВОЕЙ задачи.
__________________
Google в помощь
Ответить с цитированием
  #6  
Старый 07.10.2011, 12:44
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Странное какое-то решение предложено. Ну да ладно. Предложу альтернативу:
На форму помещаете TDBImage. Настраиваете его на отображение поля содержащего картинку. В секции uses добавляете модуль Jpeg.
Теперь вы можете просматривать картинки. А сохранение в файл тоже просто:
Код:
 DBImage1.Picture.SaveToFile('Image.jpg');
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 07.10.2011 в 12:48.
Ответить с цитированием
  #7  
Старый 07.10.2011, 12:58
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Тут уже вопрос к автору темы, в каком виде он хочет свой рисунок увидеть.

P.S. Я наверно слишком буквально понял фразу "Мне необходимо этот файл потом из БД вытянуть и открыть его".
__________________
Google в помощь

Последний раз редактировалось Ildar-tsr, 07.10.2011 в 13:00.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter