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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2014, 15:46   #1
spotip
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 68
По умолчанию Сохранение и чтение файлов в BLOB-полях

Здравствуйте уважаемые помогите вот в каком вопросе: нужно загружать в бд и из бд (Microsoft sql server 208r2) файлы разных форматов объёмом не больше 10 МБ, в бд создал таблицу, в ней:
1_id (int)
pole (image)
в Delphi 7 пишу:
Код:
var
pole:string;
begin
pole:=quotedstr(unit1.Form1.sFilenameEdit1.FileName);
with Query1 do
begin
close;
SQL.Clear;
sql.Add('exec new_cxema '+pole);
Execsql;
Form1.ADOQuery1.Active:=false;
Form1.ADOQuery1.Active:=true;
end;
end;
в бд появляется надпись двоичные данные
теперь хочу этот же файл сохранить из бд, делаю так:
Код:
var
ptkwrd:Tmemorystream;
begin
ptkwrd:= Tmemorystream.Create;
tblobfield(form1.ADOQuery1.FieldByName('pole')).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
ptkwrd.SaveToFile('temp.doc');
ShellExecute(Handle, 'open','temp.dwg',nil,nil,SW_SHOWNORMAL);
ptkwrd.Free;
end;
открываю файл temp.doc там путь к файлу...F:\ Руководство (рус. яз.).pdf
подскажите где ошибаюсь.
spotip вне форума Ответить с цитированием
Старый 09.10.2014, 17:44   #2
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

Цитата:
ShellExecute(Handle, 'open','temp.dwg',nil,nil,SW_SHOWNO RMAL);
эм, мб ошибка в расширении файла?
Dozent вне форума Ответить с цитированием
Старый 09.10.2014, 18:53   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Чикатило.
Есть жэж TBlobStream!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.10.2014, 14:00   #4
spotip
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 68
По умолчанию

Спасибо за ответы, сделал так:
Код:
//вставка файла в поле базы данных
begin
with ADOQuery1 do
if OpenDialog1.Execute then
begin
ADOQuery1.Insert;
tblobfield(form1.ADOQuery1.FieldByName('pole')).LoadFromFile(OpenDialog1.FileName);
ADOQuery1.Post;
Код:
//чтение файла из Базы Данных
var
ptkwrd:Tmemorystream;
begin
ptkwrd:= Tmemorystream.Create;
tblobfield(form1.ADOQuery1.FieldByName('pole')).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
ptkwrd.SaveToFile('temp.txt');
shellexecute(Handle, 'open','temp.txt',nil,nil,SW_SHOWNORMAL);
ptkwrd.Free;
Подскажите кто знает как сделать чтобы при чтении из бд файл сохранился не в файле temp.txt а выдал SaveDialog1 ?

Последний раз редактировалось spotip; 13.10.2014 в 14:13.
spotip вне форума Ответить с цитированием
Старый 13.10.2014, 15:03   #5
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

кидаешь на форму TSaveDialog вызываешь его и забираешь из него путь, и подставляешь его в
Код:
ptkwrd.SaveToFile('temp.txt');
как работать с TSaveDialog легко гуглится, а лучше почитать книгу по программированию на выбор
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 13.10.2014, 17:52   #6
spotip
Пользователь
 
Регистрация: 09.06.2010
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
кидаешь на форму TSaveDialog вызываешь его и забираешь из него путь, и подставляешь его в
Код:
ptkwrd.SaveToFile('temp.txt');
как работать с TSaveDialog легко гуглится, а лучше почитать книгу по программированию на выбор
Спасибо за ответ, всё получилось, сделал так:
Код:
var
ptkwrd:Tmemorystream;
begin
ptkwrd:= Tmemorystream.Create;
tblobfield(form1.ADOQuery1.FieldByName('pole')).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
 if SaveDialog1.Execute then
ptkwrd.SaveToFile(SaveDialog1.FileName);
ptkwrd.Free;
end;
spotip вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
чтение данных из BLOB Folly SQL, базы данных 3 13.01.2014 00:13
сохранение blob на диск eldalex БД в Delphi 14 09.09.2010 14:50
Чтение из Blob(Ole) Artruman БД в Delphi 14 04.03.2010 07:37
JPEG и Blob полях Prisian БД в Delphi 5 25.04.2007 09:04
картинки в BLOB полях Toxa БД в Delphi 1 23.04.2007 13:34