Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 25.11.2019
Сообщений: 9
Delphi 6-7

Добавление и удаление картинки через делфи в бд

06.02.2020, 16:25. Показов 777. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, не могу разобраться, как добавлять и удалять картинки в бд через делфи.
ОООЧЕНЬ много ошибок воть.
Программа состоит из 3х форм
1 форма
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
unit Unit13;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls;
 
type
TForm13 = class(TForm)
Image1: TImage;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
MainMenu1: TMainMenu;
ADOConnection1: TADOConnection;
Button1: TButton;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
 
 
procedure Button2Click(Sender: TObject);
 
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form13: TForm13;
 
implementation
 
uses Unit14, Unit15, Unit2;
 
{$R *.dfm}
 
procedure TForm13.Button1Click(Sender: TObject);
begin
Form13.Close;
end;
 
procedure TForm13.N2Click(Sender: TObject);
begin
Form2.Show;
Form13.Close;
end;
 
procedure TForm13.N3Click(Sender: TObject);
begin
Form2.Show;
Form13.Close;
end;
 
procedure TForm13.N4Click(Sender: TObject);
begin
Form13.Close;
end;
 
procedure TForm13.N10Click(Sender: TObject);
begin
ShowMessage('Ïîêà â ðàçðàáîòêå');
end;
 
procedure TForm13.N11Click(Sender: TObject);
begin
ShowMessage('Ïîêà â ðàçðàáîòêå');
end;
 
procedure TForm13.N7Click(Sender: TObject);
begin
Form13.ADOQuery1.Append;
Form14.Show;
end;
 
procedure TForm13.N8Click(Sender: TObject);
begin
Form14.Show;
end;
 
procedure TForm13.N9Click(Sender: TObject);
begin
Form15.Show;
end;
 
 
procedure TForm13.ADOTable1AfterScroll(DataSet: TDataSet);
begin
var
jpg: TJPEGImage;
begin
if not ADOTable1.FieldByName('Photo').IsNull then
begin
jpg := TJPEGImage.Create;
try
jpg.Assign(ADOTable1.FieldByName('Photo'));
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
end else
Image1.Picture := nil;
end;
 
 
end.

форма 2
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
unit Unit14;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls, Mask, DBCtrls, ExtDlgs, DB, ADODB;
 
type
TForm14 = class(TForm)
Image1: TImage;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
Button1: TButton;
Button2: TButton;
DBMemo1: TDBMemo;
Button3: TButton;
Image2: TImage;
OpenDialog1: TOpenDialog;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
 
 
 
 
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form14: TForm14;
 
implementation
 
uses Unit13, Unit15;
 
{$R *.dfm}
 
procedure TForm14.Button2Click(Sender: TObject);
begin
Form14.Close;
end;
 
procedure TForm14.Button1Click(Sender: TObject);
begin
if Form13.ADOTable1.Modified then Form13.ADOTable1.Post;
Form14.Close;
end;
 
procedure TForm14.Button3Click(Sender: TObject);
var
jpg: TJPEGImage;
begin
if OpenDialog1.Execute then
begin
jpg:= TJPEGImage.Create;
try
jpg.LoadFromFile(OpenDialog1.FileName);
ADOTable1.Edit;
ADOTable1.FieldByName.Assign(jpg);
ADOTable1.Post;
finally
jpg.Free;
end;
end;
ADOTable1AfterScroll(ADOTable1);
end;
 
 
 
procedure TForm14.ADOTable1AfterScroll(DataSet: TDataSet);
begin
var
jpg: TJPEGImage;
begin
if not ADOTable1.FieldByName('Photo').IsNull then
begin
jpg := TJPEGImage.Create;
try
jpg.Assign(ADOTable1.FieldByName('Photo'));
Image1.Picture.Assign(jpg);
finally
jpg.Free;
end;
 
else
Image1.Picture := nil;
end;
end;
 
 
end.


форма 3
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
unit Unit15;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
 
type
TForm15 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form15: TForm15;
 
implementation
 
uses Unit13, Unit14;
 
{$R *.dfm}
 
procedure TForm15.Button2Click(Sender: TObject);
begin
Form15.Close;
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2020, 16:25
Ответы с готовыми решениями:

Добавление и удаление записей в базу данных в делфи
Здравствуйте..помогите пожалуйста..в Delphi новичок..до сих пор еще хорошо в кодах не разобралась как их писать точно, чтобы прога...

Добавление данныз в БД Acsess через Делфи.
Суть проблемы в том, что есть прога, там есть возможность добавления в таблицу данных. Напрмиер у меня 4 столбца. Называются...

Добавление картинки в бд через форму
Здравствуйте! Столкнулся с такой проблемой при написании системы анкет. Каким образом можно добавить картинку в базу данных mysql? И...

3
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
06.02.2020, 21:40
Цитата Сообщение от y_Ozone Посмотреть сообщение
jpg.Assign(ADOTable1.FieldByName('Photo' ));
fieldByName - это функция, которая выдает TField
а присваивать вы хотите в JPG
это смешивание мягкого с зеленым

вам нужно
http://docwiki.embarcadero.com... BlobStream
http://docwiki.embarcadero.com... veToStream

пример использования есть в примерах делфи
http://docwiki.embarcadero.com... ams_Sample
0
1 / 1 / 0
Регистрация: 25.11.2019
Сообщений: 9
07.02.2020, 00:39  [ТС]
Я новичок в этом
Могли бы вы написать, что именно делать, пожалуйста)))
0
 Аватар для krapotkin
6851 / 4677 / 1465
Регистрация: 14.04.2014
Сообщений: 20,674
Записей в блоге: 21
07.02.2020, 07:13
у меня нет ни access, ни delphi 6-7, ни желания слать вам готовый код, тем более этот готовый код есть для вас прямо в поставке делфи, откройте его и смотрите, как там сделано.

если вы новичок, то тогда скажите, что вы уже умеете.
может вам надо сначала за простое браться, тема BLOB она как бы уже несколько продвинутая
форум это не место написания учебников, это ответы на конкретный вопрос

вопрос - как загрузить из поля BLOB картинку в TImage
ответ -
1. загрузить сырые данные в в m:TMemoryStream при помощи CreateBlobStream
2. создать jpg:TJpegimage и загрузить туда данные из стрима в jpg: jpg.loadFromStream(m)
3. если не ошибаюсь то дальше можно прямо загрузить jpg Image.Picture.Assign(jpg)
если ошибаюсь, то сначала bmp:=TBitmap.Create; bmp.Assign(jpg) а потом Image.Picture.Assign(bmp)

при этом за скобки вынесена вся работа с БД, которая не входит в рамки вопроса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2020, 07:13
Помогаю со студенческими работами здесь

Добавление картинки в PictureBox через кнопку
Пытаюсь добавить картинку через кнопку в WinForms с использованием OpenFileDialog(), но возникают проблемы. private: System::Void...

Удаление, редактирование, добавление БД через PHP
Cобственно сам скрипт для добавления, удаления, редактирования конкретной таблицы работает. Вопрос как это сделать для таблицы, которую мы...

Добавление, редактирование, удаление записей через форму
Здравствуйте, не могу сделать так что каждый раз при входе на форму не добавлялась новая строка. И как сделать редактирование с новой...

Добавление, редактирование и удаление записей через форму
Добрый день. Столкнулся с такой проблемой, необходимо писать курсовой по foxpro под руководством преподавателя, который знает его не...

Добавление и удаление данных в таблицу через поля едит
я написал код но не могу понять почему все время выходит ошибка параметр va не имеет значения по умолчанию и так же для других. это дает...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru