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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2009, 12:06   #1
ToLeG
Пользователь
 
Регистрация: 12.09.2008
Сообщений: 37
По умолчанию Mysql хранение файлов

Здравствуйте! Помогите пожалуйста решить следующий вопрос:
Мне нужно в mysql хранить файлы *.doc

1. Какой тип поля должен быть для храния файлов?
2. Как Записать файл в базу?
3. Как извлечь файл из базы?

Пользуюсь компонентом Tmysql.
Спасибо!
ToLeG вне форума Ответить с цитированием
Старый 13.07.2009, 12:53   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

копать надо в сторону BLOB-полей
примеров работы приводилось море (поиск в помощь)
soleil@mmc вне форума Ответить с цитированием
Старый 13.07.2009, 14:02   #3
ToLeG
Пользователь
 
Регистрация: 12.09.2008
Сообщений: 37
По умолчанию

Ничего не получилось сделать.. Приведите примеры пожалуйста...

1. Как загрузить файл просто в переменную типа TBlobField?
2. Как записать полученное в базу. Есть ли какой то sql-запрос?
3. Как прочитать из базы в переменную типа TBlobField?
4. Как сохранить файл из переменной на диск?
ToLeG вне форума Ответить с цитированием
Старый 13.07.2009, 15:17   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от ToLeG Посмотреть сообщение
Ничего не получилось сделать.. Приведите примеры пожалуйста...
а приведите ваш пример, в котором ничего не получилось

ссылки по теме
http://www.programmersforum.ru/searc...earchid=310812
soleil@mmc вне форума Ответить с цитированием
Старый 13.07.2009, 15:19   #5
ToLeG
Пользователь
 
Регистрация: 12.09.2008
Сообщений: 37
По умолчанию

я даже примерно не понял как к этому подобраться.

Код:
procedure TForm1.Button2Click(Sender: TObject);
var doc:Tblobfield;
begin
doc.Create(form1.Parent);
doc.LoadFromFile('C:\blank.doc');
end;
пробовал вот так. Выдает ошибку
ToLeG вне форума Ответить с цитированием
Старый 13.07.2009, 17:01   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

а чо такой ленивый?
по второй ссылке из поиска
Цитата:
Чтение и запись BLOB-файла в БД

Вставка файла в поле базы данных
Код:

if OpenDialog1.Execute then
begin
ADOQuery1.Insert;
tblobfield(form1.ADOQuery1.FieldByName('MyBlob')).LoadFromFile(OpenDialog1.FileName);
ADOQuery1.Post;
end;
Чтение файла из Базы Данных
Код:

var
ptkwrd:Tmemorystream;
begin
ptkwrd:= Tmemorystream.Create;
tblobfield(form1.ADOQuery1.FieldByName('MyBlob')).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
ptkwrd.SaveToFile('temp.doc');
shellexecute(Handle, 'open','temp.dwg',nil,nil,SW_SHOWNORMAL);
ptkwrd.Free;
естественно, названия полей/кверей и т.п. поправь под себя
soleil@mmc вне форума Ответить с цитированием
Старый 14.07.2009, 09:22   #7
ToLeG
Пользователь
 
Регистрация: 12.09.2008
Сообщений: 37
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
а чо такой ленивый?
по второй ссылке из поиска
1. Я не ленивый. Я это видел и много ещ перелопатил. только не понял ничего.
2. Я же говорил, что пользуюсь не ADO, а Tmysql
3. Ваш пример выдает ошибку:
"Cannot perfom this operation on a closed dataset", но это как я понимаю из-за того, что нужно подключить компонент к базе. Но подключаться кучей разных компонентов к базе, что бы выполнять разные действия ИМХО глупо.
ToLeG вне форума Ответить с цитированием
Старый 14.07.2009, 10:43   #8
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
Сообщение от ToLeG Посмотреть сообщение
Но подключаться кучей разных компонентов к базе, что бы выполнять разные действия ИМХО глупо.
Тогда надо делать правильную постановку вопроса! soleil@mmc дал исчерпывающий ответ на ваш вопрос. Вам же остается посмотреть методы для компонента Tmysql и сопоставить их или еще лучше почитать книжку по работе с базами данных и тогда вопросов будет меньше!
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 14.07.2009, 12:20   #9
ToLeG
Пользователь
 
Регистрация: 12.09.2008
Сообщений: 37
По умолчанию

Может выложить компонент и вы подскажите решение? потому что я найти его не могу.
ToLeG вне форума Ответить с цитированием
Старый 14.07.2009, 12:23   #10
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от ToLeG Посмотреть сообщение
Но подключаться кучей разных компонентов к базе, что бы выполнять разные действия ИМХО глупо.
скажу тебе честно, само оно точно не напишется
хоть компоненты, хоть не компоненты (пиши на API)
ты ведь не предлагаешь мне написать за тебя весь код твоей проги
иначе ты ошибся разделом форума - тебе во Фриланс
soleil@mmc вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хранение данных в Excel Maka111 Microsoft Office Excel 6 04.05.2009 10:10
хранение данных в файле (dc++) AsabeasT Общие вопросы Delphi 2 27.03.2009 11:57
Хранение дисков Levsha100 Свободное общение 24 04.02.2009 15:58
Хранение TColor в Access $teelR@t БД в Delphi 2 20.09.2007 13:56
Хранение и шифрование данных Paul Hindenburg БД в Delphi 1 20.08.2007 09:04