Недавно, увидев две статьи на CSDN о «доступе к файлам JPEG в SQLServer в Delphi», я почувствовал, что метод, описанный в нем, желателен, но это довольно много времени. Надежный, я не смею наслаждаться этим в одиночку, я готов опубликовать его и поделиться этим со всеми. Тест был проведен в Delphi7.0+Win2000+SQLServer 2000 и работает хорошо.
Решение:
1. Ключ должен динамически преобразовать открытый файл JPEG в объект TBITMAP и отобразить его в объекте Timage;
2. Отправьте отображаемое изображение в базу данных.
В этом примере была установлена тестовая таблица примеров в SQLServer2000: экзамен (XM char (10), фотоизображение);
Исходный код программы:
единица сохранения;
интерфейс
Использование
Windows, сообщения, Sysutils, варианты, классы, графика, управления, формы,
Диалоги, extdlgs, extctrls, dbctrls, сетки, DBGrids, DB, AdoDB, кнопки,
STDCTRLS, JPEG;
тип
Tform1 = class (tform)
Speedbutton1: tspeedbutton;
Adoconnection1: TadoConnection;
Таблица 1: Тадоваbal;
DataSource1: tdatasource;
Dbgrid1: tdbgrid;
Dbimage1: tdbimage;
Image1: Timage;
Speedbutton2: tspeedbutton;
Openpicturedialog1: topenpicturedialog;
Label1: Tlabel;
Label2: Tlabel;
РЕДАКТИРОВАТЬ1: ТЕДИТ;
Speedbutton3: tspeedbutton;
Процедура SpeedButton2Click (отправитель: Tobject);
Процедура SpeedButton1click (отправитель: Tobject);
Процедура SpeedButton3click (отправитель: Tobject);
Частный
{Частные объявления}
публичный
{Публичные объявления}
конец;
вар
Форма1: tform1;
Выполнение
{$ R *.dfm}
Процедура tform1.speedbutton2click (отправитель: tobject);
вар
BMP1: TBITMAP;
JPG1: tjpegimage;
Начинать
Openpicturedialog1.defaultext: = graphicextension (tjpegimage);
Если openpicturedialog1.execute then
Начинать
bmp1: = tbitmap.create;
jpg1: = tjpegimage.create;
пытаться
jpg1.loadfromfile (openpicturedialog1.filename);
bmp1.assign (jpg1);
Image1.picture.bitmap.assign (bmp1);
Окончательно
jpg1.free;
bmp1.free;
конец;
конец;
конец;
Процедура tform1.speedbutton1click (отправитель: tobject);
Начинать
Таблица 1.open;
Таблица 1.insert;
table1.fieldbyname ('xm'). Appring: = edit1.text;
table1.fieldbyname ('photo'). назначить (image1.picture);
Таблица 1.post;
Таблица1.REFRESH;
конец;
конец.