Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 12.07.2008, 18:40   #1
DIBAZOL
Новичок
Джуниор
 
Регистрация: 05.07.2008
Сообщений: 2
По умолчанию Как привязать рисунок к записи в БД?

Создаю БД "Справочник мебели", включающий поля: Наименование товара, Количество, Стоимость и т.д. База готова, но нужно сделать возможность добавления рисунка к каждой записи (Наименование товара). Чтобы выбрав какую-либо запись можно было посмотреть рисунок соответствующий этой записи. Заранее благодарен за помощь.
DIBAZOL вне форума Ответить с цитированием
Старый 12.07.2008, 18:41   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

для этого необходимо использовать BLOB- поля
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 12.07.2008, 19:00   #3
DIBAZOL
Новичок
Джуниор
 
Регистрация: 05.07.2008
Сообщений: 2
По умолчанию

DBImages привязал к полю "Схема" таблицы в свойстве этого поля в ADOTable1 BlobType поставил ftBlob, но при нажатии Сохранить
procedure TForm4.BitBtn1Click(Sender: TObject);
begin
if DataModule2.ADOTable1.Modified then
DataModule2.ADOTable1.Post;
if DataModule2.ADOTable3.Modified then
DataModule2.ADOTable3.Post;
Form4.Close;
end;
Ничего не изменяется.
Что я сделал не так?
БД создавал в Access полю "Схема" присвоил тип Гиперссылка.
DIBAZOL вне форума Ответить с цитированием
Старый 13.07.2008, 09:19   #4
Mitriy
Пользователь
 
Регистрация: 08.07.2007
Сообщений: 47
По умолчанию

Тип поля в эксесе ставиш - "Поле объекта OLE".
Кидаеш на форму DBImage связываеш ее со своим ADOTable.
Кидаеш на форму кнопку.
Обработчик события кнопки:
Код:
....
var 
FileName: String;
Stream: TMemoryStream;
ImgBMP : TBitmap;
begin
   if not sOpenPictureDialog.Execute
    then Exit;
  FileName := sOpenPictureDialog.FileName;
  try
   ImgBMP := TBitmap.Create;
   ImgBMP.LoadFromFile(FileName);
   Stream:= TMemoryStream.Create;
   ImgBMP.SaveToStream(Stream);
   Stream.Position:=0;
   TBLOBField(DataModule1.DBQuery.FieldByName('Image')).LoadFromStream(Stream);
   DBImage1.Picture.Assign(ImgBMP);
  finally
   ImgBMP.Free;
   Stream.Free;
  end;
Mitriy вне форума Ответить с цитированием
Старый 15.07.2008, 16:19   #5
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

у меня на это выдает вот такую ошибку
как быть???
Код:
[Error] Unit1.pas(81): Undeclared identifier: 'TBLOBField'
[Error] Unit1.pas(81): Missing operator or semicolon
[Fatal Error] Project2.dpr(10): Could not compile used unit 'Unit1.pas'
1234 вне форума Ответить с цитированием
Старый 15.07.2008, 17:04   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
у меня на это выдает вот такую ошибку
Создавать нуна BLOB.
Вообще то я бы картинки в БД не пихал - БД разрастается, луче картинки в каталог, а в БД путь к картинке.
Stilet вне форума Ответить с цитированием
Старый 16.07.2008, 09:32   #7
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

а как создать этот БЛОБ
1234 вне форума Ответить с цитированием
Старый 16.07.2008, 10:07   #8
1234
Заблокирован
 
Регистрация: 09.11.2007
Сообщений: 97
По умолчанию

ребят опишите пожалуйста подробно как создать этот злосчастный БЛОБ
1234 вне форума Ответить с цитированием
Старый 16.07.2008, 10:53   #9
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Цитата:
у меня на это выдает вот такую ошибку
как быть???

1. [Error] Unit1.pas(81): Undeclared identifier: 'TBLOBField'
2. [Error] Unit1.pas(81): Missing operator or semicolon
3. [Fatal Error] Project2.dpr(10): Could not compile used unit 'Unit1.pas'
Скорее всего надо добавить в Uses DB

Цитата:
ребят опишите пожалуйста подробно как создать этот злосчастный БЛОБ
Blob - это тип поля, Открываеш свою бд в режиме изменения, добавляеш новое поле и тип поля указываеш Blob
Mitriy08 вне форума Ответить с цитированием
Старый 16.07.2008, 11:05   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Автору: http://programmersforum.ru/showthread.php?t=23300
Stilet вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как привязать ScrollBar к TabSheet в PageControl fen Компоненты Delphi 11 10.04.2012 19:39
Как привязать макрос к дате? АLексаNдр Microsoft Office Excel 3 12.08.2008 14:34
Привязать TrackBar к MediaPlayer One.Love Общие вопросы Delphi 6 09.02.2008 15:18
как привязать окно под размер файла - видео проигрыватель AVI _Solomon_ Общие вопросы Delphi 6 26.01.2007 03:32