Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
1

BLOB

25.11.2012, 18:11. Показов 2123. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  private
    { Private declarations }
    fS: TFileStream;
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 
 
procedure TForm1.Image1Click(Sender: TObject);
var
  FileExt: string;
begin
  if OpenPictureDialog.Execute then
  begin
    FileExt := LowerCase(ExtractFileExt(OpenPictureDialog.FileName));
 
    if FileExt = '.bmp' then
    begin
      fS := TFileStream.Create(OpenPictureDialog.FileName, fmOpenRead);
       Image1.Picture.Bitmap.LoadFromStream(fS);
    end;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 
if fS = nil then
  begin
    MessageBox(handle, PChar('Çàãðóçèòå êàðòèíêó'), PChar('Îøèáêà'),
      (MB_OK + MB_ICONINFORMATION));
    exit;
  end;
    with ADOTable1 do
    begin
      Insert;
        TBlobField(FieldByName('Ôîòî')).LoadFromStream(fS);
      Post;
      fS.Free;
    end;
end;

что там в коде надо поменять что бы он не добавлял новое поле с картинкой а вставлял в конкретное поле и изменял в нём картинку??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2012, 18:11
Ответы с готовыми решениями:

Blob данные
Привет всем, с прошедшим всех. Перерыл весь интернет, нашел примеры, пытаюсь реализовать у себя...

BLOB и графика
Здравствуйте, у меня такой вопрос. На форме имеем объект TImage. В него со сканера отпечатка...

Изображение в Blob
Добрый день господа! Подскажите пожалуйста как записать изображение в BLOB не в бинарном виде....

blob поле
Здравствуйте ! немного непонятно с blob полями.. Пусть есть БД с несколькими таблицами. (см....

11
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
25.11.2012, 21:05 2
Если бы ты не мудрил с потоками, а сделал все с DBImage, все встало бы на место. Видимо, я невнятно объяснял. Скинь проект свой с фотографиями, я покажу. Тебе нужно, чтобы при выборе записи в таблице отображалось, соответствующее ей фото, так?
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
25.11.2012, 21:15  [ТС] 3
да именно так
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
25.11.2012, 21:36 4
Вот, об этом я и говорил.. Сначала загрузи свои фото в поле (типа OLE) таблицы Access. Потом в проекте Delphi кинь на форму DBImage и в свойсте DataSourse укажи свой DS, котрый ты используешь для получения данных из Access и в свойстве DataField - имя поля таблицы Access, в которое ты загрузил фото. Ясно? И не нужно никаких потоков!

Добавлено через 12 минут
1. Создай в таблице поле типа объекта Ole. Далее кликаешь по первой записи поля правой кнопкой мыши и выбираешь "Вставить объект", выбираешь свое изображение из файла.
2. Чтобы отобразить изображение из базы в программе используй компонент DBImage, который привязывается к полю, содержащему графические объекты.
отвечал в другой твоей теме и таким образом, вставляешь фото в поле каждой записи, выделяя ее, а затем выводишь в программу
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
25.11.2012, 21:41  [ТС] 5
он выдаёт ошибку Bitmap images is not valid
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
25.11.2012, 21:43 6
сохрани фото в JPEG формате и грузи
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
25.11.2012, 21:45  [ТС] 7
а может я неправельно сохранял фото???? рассказываю как сохранял: открывал эксель вставлял туда фото а от туда копировал в акцесс

Добавлено через 48 секунд
и у меня все фотки в Jpeg
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
25.11.2012, 21:53 8
Если фото все в jpg, то ошибки с bitmap быть не должно. Excel тут вообще не нужен! Просто создаешь поле типа OLE в Access и сразу загружаешь в него фото без всякого копирования.
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
25.11.2012, 21:55  [ТС] 9
я незнаю почему пишет эту ошибку давай я тебе прогу кину посмотриш?
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
25.11.2012, 22:12 10
Кидай
0
2 / 2 / 1
Регистрация: 26.09.2012
Сообщений: 201
25.11.2012, 22:13  [ТС] 11
http://rghost.ru/41809475
там 6 форма
0
Эксперт Pascal/Delphi
4912 / 2781 / 853
Регистрация: 04.10.2012
Сообщений: 10,121
26.11.2012, 13:35 12
Переделал немного твой проект. Очень много лишнего у тебя. Модули 7, 8 и 9 я убрал. При переносе базы на другой компьютер программа ее не определяла, т.к. в свойстве ConnectionString компонента AdoConnection у тебя был прописан полный путь к базе+имя базы. Достаточно было просто прописать имя базы. Исправил.
Фотографии в Form6 можно загружать по кнопке "Загрузить фото" сразу при добавлении записи либо после добавления. Выделяешь нужную запись, кликаешь "Загрузить фото" и выбираешь нужную фотографию. Я уже загрузил несколько фото, но только. для примера.
Код загрузки фото через диалог
Delphi
1
2
3
4
5
6
7
procedure TForm6.BitBtn1Click(Sender: TObject);
begin
 if not OpenPictureDialog1.Execute then exit;
      ADOTable1.Edit;
        TBlobField(ADOTable1.FieldByName('Фото')).LoadFromFile(OpenPictureDialog1.FileName);
       ADOTable1.Post;
end;
Также подредактировал поиск на той же форме. Просто вводишь название гитары в поле поиска и если такая гитара в базе есть, она будет отображена. После очистки поля - фильтрация отменяется. Не нужно лишних sql запросов.
Пример этого поиска
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm6.LabeledEdit1Change(Sender: TObject);
begin
AdoTable1.filter:='Название='+QuotedStr(LabeledEdit1.Text) ; //ищем по полю "Название" в таблице
AdoTable1.Filtered :=true;
if length(LabeledEdit1.Text)=0 then
begin
AdoTable1.Filtered :=false;
end;
end;
Архив из-за объема разбил на части. Скопируй все части архива куда-нибудь в каталог и распакуй только первую часть! Остальные его части распакуются автоматически. Тебе еще многое нужно учесть, но дальше сам.... Удачи!
P.S. И еще, достаточно было одного AdoConnection в проекте. Я не стал убирать лишние.
1
26.11.2012, 13:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2012, 13:35
Помогаю со студенческими работами здесь

Запись Blob в БД
Избитая тема, знаю, но не выходит. Дано: БД interbase, таблица с тремя полями: ID, NAME, FILE....

Запись файла в BLOB
народ, помогите составить код, в firebird работает все прелесть, хотелось бы так же локанично и в...

Работа с BLOB в FireBird
Добрый день! В таблице хранятся записи, которые необходимо вывести в виде дереева в TreeView. В...

Из BLOB-поля в TDBImage
Всем привет, подскажите, что делаю не так?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru