Прошу помочь с сохранением картинки в базе данных MySQL
Модератор: Модераторы
Прошу помочь с сохранением картинки в базе данных MySQL
Прочитал весь форум ответа так и не нашел, все те куски кода которые есть на разных сайтах у меня не работают:
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 я новичок, это первая программа которую пишу используя данный движок, может я что то не так в самой базе сделал?
Прошу помочь реальным кодом. Заранее спасибо.
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 я новичок, это первая программа которую пишу используя данный движок, может я что то не так в самой базе сделал?
Прошу помочь реальным кодом. Заранее спасибо.
загружать рисунок надо не в 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;
делаю так:
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. то ошибки вылетают, то вроде код весь исполняется, а в базе пусто.
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. то ошибки вылетают, то вроде код весь исполняется, а в базе пусто.
а какие компоненты доступа используются? стандартный TSQLQuery? попробуйте Zeos, например.
Понимаете, не хотелось бы использовать другие компоненты кроме стандартных, использую SQLdb, SQLConnection, SнQLQuery, DataSource
Кто успешно смог записать в базу данных MySQL изображение с помощью Lazarus`а? поделитесь рабочим куском кода пожалуйста.
Кто успешно смог записать в базу данных MySQL изображение с помощью Lazarus`а? поделитесь рабочим куском кода пожалуйста.
я лично грешу на сам TSQLQuery
могу и ошибаться, конечно.
yurgel писал(а):я лично грешу на сам TSQLQueryмогу и ошибаться, конечно.
Не заморачивайся вынеси этот кусок кода в подпрограмму и оформи через Zeos , я тоже когда то пробовал стандарными но из-за куч недопилов плюнул и перешол на Zeos, там конечно тоже хватает но плюсов больше
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Не заморачивайся вынеси этот кусок кода в подпрограмму и оформи через Zeos , я тоже когда то пробовал стандарными но из-за куч недопилов плюнул и перешол на Zeos, там конечно тоже хватает но плюсов больше
Не надо такое советовать
Всем спасибо.
Стал использовать Zeos и все получилось.
Попробую запостить ошибку на сайте Лазаруса, но не силен в английском.
Жаль что стандартные компоненты все таки не работают.
Стал использовать Zeos и все получилось.
Попробую запостить ошибку на сайте Лазаруса, но не силен в английском.
Жаль что стандартные компоненты все таки не работают.
debi12345 писал(а):Не надо такое советоватьКто тогда будет вылизывать SQLDB-код, марсиане что-ли ? А тут как раз случай вылизать и оттестировать.
Зашибись, давайте посоветуем человеку самому пройтись по граблям, и сделаем из него бетатестера, ну если конечно ему прям так хочется пускай,какую дорогу ему выбрать это его личное дело главное это ему дать список альтернатив(а раз вы уважаемый такой идеалист то почему бы вам лично своими руками не поучаствовать, слов нету сами будем рады,и спасибо скажем)
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Зашибись, давайте посоветуем человеку самому пройтись по граблям, и сделаем из него бетатестера, ну если конечно ему прям так хочется пускай,какую дорогу ему выбрать это его личное дело главное это ему дать список альтернатив(а раз вы уважаемый такой идеалист то почему бы вам лично своими руками не поучаствовать, слов нету сами будем рады,и спасибо скажем
Увы, но другого пути, кроме как активная жизненная позиция (кто кроме нас ?!) в мире опен-сорса ен существует.
ПС: участвовал и участвую.
