Прошу помочь с сохранением картинки в базе данных MySQL

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение Peter » 05.07.2010 15:26:13

Прочитал весь форум ответа так и не нашел, все те куски кода которые есть на разных сайтах у меня не работают:
http://www.sql.ru/Forum/actualthread.as ... 441342&hl=
http://www.delphisources.ru/pages/faq/b ... field.html
http://forum.lazarus.freepascal.org/ind ... pic=7890.0
viewtopic.php?f=5&t=5939&p=43448
и т.д.

Есть:
Lazarus 0.9.28.2
база MySQL 5 с таблицей fio , в ней поле BLOB

Пробовал и с DBImage и просто грузил картинки в Image через разные Stream и пытался записывать в базу данных, никак... или дает ошибки или же делает вид что все ок, а на самом деле в базе пусто.
Базу смотрю MySQL Administrator.
если в базу через MySQL Administrator записать картинку, то показывает изображение.

пробовал разные форматы и только битмапы и jpg и т.д., никакие у меня не записываются.

В MySQL я новичок, это первая программа которую пишу используя данный движок, может я что то не так в самой базе сделал?
Прошу помочь реальным кодом. Заранее спасибо.
Peter
незнакомец
 
Сообщения: 4
Зарегистрирован: 05.07.2010 15:15:23

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение yurgel » 05.07.2010 17:30:36

загружать рисунок надо не в Image (DBImage), а в поле соответствующей таблицы.

в интербэйзовскую базу картинку из файла я загружал так:

Код: Выделить всё
  if OpenPicDlg.Execute then begin
    dsScreenshot.DataSet.Insert;
    dsScreenshot.DataSet.FieldByName ('SCREENSHOT_NAME').AsString := ExtractFileNameOnly (OpenPicDlg.FileName);
    (dsScreenshot.DataSet.FieldByName ('SCREENSHOT_IMAGE') as TBlobField).LoadFromFile (OpenPicDlg.FileName);
    dsScreenshot.DataSet.Post;
  end;
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение Peter » 06.07.2010 15:07:52

делаю так:
procedure TFIOEditForm.BitBtn3Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute = true then
begin
ShowMessage(OpenPictureDialog1.FileName);
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
DM.SQLQueryFIO.Edit;
(DM.SQLQueryFIO.FieldByName ('Image') as TBlobField).LoadFromFile (OpenPictureDialog1.FileName);
DM.SQLQueryFIO.Post;
DM.SQLQueryFIO.ApplyUpdates;
end;
end;
реакции никакой, в базу ничего не записывает, делал и по другому, через stream запихивал данные и пытался через DBImage. то ошибки вылетают, то вроде код весь исполняется, а в базе пусто.
Peter
незнакомец
 
Сообщения: 4
Зарегистрирован: 05.07.2010 15:15:23

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение yurgel » 06.07.2010 15:25:46

а какие компоненты доступа используются? стандартный TSQLQuery? попробуйте Zeos, например.
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение Peter » 06.07.2010 15:33:36

Понимаете, не хотелось бы использовать другие компоненты кроме стандартных, использую SQLdb, SQLConnection, SнQLQuery, DataSource
Кто успешно смог записать в базу данных MySQL изображение с помощью Lazarus`а? поделитесь рабочим куском кода пожалуйста.
Peter
незнакомец
 
Сообщения: 4
Зарегистрирован: 05.07.2010 15:15:23

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение yurgel » 06.07.2010 15:59:14

я лично грешу на сам TSQLQuery :) могу и ошибаться, конечно.
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение grigoreo » 08.07.2010 08:53:16

yurgel писал(а):я лично грешу на сам TSQLQuery :) могу и ошибаться, конечно.


Не заморачивайся вынеси этот кусок кода в подпрограмму и оформи через Zeos , я тоже когда то пробовал стандарными но из-за куч недопилов плюнул и перешол на Zeos, там конечно тоже хватает но плюсов больше
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение debi12345 » 08.07.2010 12:15:58

Не заморачивайся вынеси этот кусок кода в подпрограмму и оформи через Zeos , я тоже когда то пробовал стандарными но из-за куч недопилов плюнул и перешол на Zeos, там конечно тоже хватает но плюсов больше

Не надо такое советовать :) Кто тогда будет вылизывать SQLDB-код, марсиане что-ли ? А тут как раз случай вылизать и оттестировать.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение Peter » 08.07.2010 12:40:54

Всем спасибо.
Стал использовать Zeos и все получилось.
Попробую запостить ошибку на сайте Лазаруса, но не силен в английском.
Жаль что стандартные компоненты все таки не работают.
Peter
незнакомец
 
Сообщения: 4
Зарегистрирован: 05.07.2010 15:15:23

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение grigoreo » 08.07.2010 14:19:49

debi12345 писал(а):Не надо такое советовать :) Кто тогда будет вылизывать SQLDB-код, марсиане что-ли ? А тут как раз случай вылизать и оттестировать.


Зашибись, давайте посоветуем человеку самому пройтись по граблям, и сделаем из него бетатестера, ну если конечно ему прям так хочется пускай,какую дорогу ему выбрать это его личное дело главное это ему дать список альтернатив(а раз вы уважаемый такой идеалист то почему бы вам лично своими руками не поучаствовать, слов нету сами будем рады,и спасибо скажем)
Аватара пользователя
grigoreo
постоялец
 
Сообщения: 195
Зарегистрирован: 10.03.2009 15:43:43
Откуда: С нашей Раши

Re: Прошу помочь с сохранением картинки в базе данных MySQL

Сообщение debi12345 » 08.07.2010 15:23:53

Зашибись, давайте посоветуем человеку самому пройтись по граблям, и сделаем из него бетатестера, ну если конечно ему прям так хочется пускай,какую дорогу ему выбрать это его личное дело главное это ему дать список альтернатив(а раз вы уважаемый такой идеалист то почему бы вам лично своими руками не поучаствовать, слов нету сами будем рады,и спасибо скажем

Увы, но другого пути, кроме как активная жизненная позиция (кто кроме нас ?!) в мире опен-сорса ен существует.

ПС: участвовал и участвую.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 243

Рейтинг@Mail.ru