Nachdem ich zwei Artikel über CSDN über "Zugriff auf JPEG-Dateien auf SQLServer in Delphi" gesehen hatte, war ich der Meinung, dass die darin beschriebene Methode wünschenswert ist, aber es ist ziemlich zeitaufwändig. Zuverlässig, ich wage es nicht alleine zu genießen, ich bin bereit, es zu veröffentlichen und es mit allen zu teilen. Der Test wurde in DelPhi7.0+Win2000+SQLServer 2000 durchgeführt und läuft jetzt gut.
Lösung:
1. Der Schlüssel besteht darin, die Open JPEG -Datei dynamisch in ein TBitMap -Objekt umzuwandeln und im Timage -Objekt anzuzeigen.
2. Senden Sie das angezeigte Bild in die Datenbank.
In diesem Beispiel wurde in SQLServer2000: Prüfung (XM Char (10), Fotobild) eine Testbeispieltabelle festgelegt;
Programmquellcode:
Einheit Savepic;
Schnittstelle
Verwendung
Fenster, Nachrichten, Systeme, Varianten, Klassen, Grafiken, Steuerelemente, Formulare,
Dialoge, extdlgs, extctrls, dbctrls, grids, dbgrids, dB, adodb, buttons,
Stdctrls, jpeg;
Typ
Tform1 = Klasse (tform)
SpeedButton1: TspeedButton;
Adoconnection1: Tadoconnection;
Tabelle 1: mühsam;
DataSource1: tdataSource;
DBGRID1: TDBGRID;
Dbimage1: tdbimage;
Bild1: Timage;
SpeedButton2: TspeedButton;
OpenPicturedialog1: Topenpicturedialog;
Label1: Tlabel;
Label2: Tlabel;
Edit1: tedit;
SpeedButton3: TspeedButton;
Prozedur SpeedButton2Click (Absender: Tobject);
Prozedur SpeedButton1Click (Absender: Tobject);
Prozedur SpeedButton3Click (Absender: Tobject);
Privat
{Private Deklarationen}
öffentlich
{Öffentliche Erklärungen}
Ende;
var
Form1: tform1;
Durchführung
{$ R *.dfm}
procedure tform1.speedbutton2click (Absender: tobject);
var
BMP1: tbitmap;
JPG1: Tjpegimage;
Beginnen
OpenPicturedialog1.defaultEXT: = GraphizeTension (tjpegimage);
Wenn openPicturedialog1.execute dann
Beginnen
bmp1: = tbitmap.create;
JPG1: = tjpegimage.create;
versuchen
JPG1.LOADFROMFILE (OpenPicturedialog1.FileName);
Bmp1.Sign (JPG1);
Image1.Picture.bitmap.assign (BMP1);
Endlich
JPG1.FREE;
Bmp1.Free;
Ende;
Ende;
Ende;
procedure tform1.speedbutton1click (Absender: tobject);
Beginnen
Tabelle 1.open;
Tabelle 1.insert;
Tabelle 1.FieldbyName ('xm'). Assstring: = edit1.text;
Tabelle 1.FieldbyName ('Foto'). Zuordnung (Image1.Picture);
Tabelle 1.Post;
Tabelle 1.Refresh;
Ende;
Ende.