Récemment, après avoir vu deux articles sur CSDN sur "l'accès aux fichiers JPEG à SQLServer à Delphi", j'ai senti que la méthode décrite est souhaitable, mais elle prend beaucoup de temps. Fiable, je n'ose pas l'apprécier seul, je suis prêt à le publier et à le partager avec tout le monde. Le test a été passé dans Delphi7.0 + Win2000 + SQLServer 2000 et fonctionne bien.
Solution:
1. La clé consiste à convertir dynamiquement le fichier JPEG ouvert en un objet TBitmap et à l'afficher dans l'objet Timage;
2. Soumettez l'image affichée à la base de données.
Dans cet exemple, un tableau d'exemple de test a été établi dans SQLServer2000: examen (XM CHAR (10), image photo);
Code source du programme:
Unit SavePic;
interface
usages
Windows, messages, systèmes, variantes, classes, graphiques, contrôles, formulaires,
Dialogues, extdlgs, extctrls, dbctrls, grilles, dbgrids, db, adodb, boutons,
Stdctrls, jpeg;
taper
Tform1 = classe (tform)
SpeedButton1: TspeedButton;
Adoconnection1: Tadoconnection;
Tableau 1: Tadotable;
DataSource1: tdataSource;
Dbgrid1: tdbgrid;
Dbimage1: tdbimage;
Image1: Timage;
SpeedButton2: TspeedButton;
OpenPicturealioG1: TOPENPICTUREDIAMOG;
Label1: Tlabel;
Label2: Tlabel;
Edit1: Tedit;
SpeedButton3: TspeedButton;
Procédure SpeedButton2Click (expéditeur: tobject);
Procédure SpeedButton1Click (expéditeur: tobject);
Procédure SpeedButton3Click (expéditeur: tobject);
Privé
{Déclarations privées}
publique
{Déclarations publiques}
fin;
var
FORM1: TFORM1;
Mise en œuvre
{$ R * .dfm}
Procédure tform1.SpeedButton2Click (expéditeur: tobject);
var
BMP1: tbitmap;
JPG1: TJPEGIMAGE;
Commencer
OpenPictuRealiog1.DefaultExt: = GraphIcextension (tJPegImage);
Si openPicturéealiog1.exécute alors
Commencer
bmp1: = tbitmap.create;
jpg1: = tjpegimage.create;
essayer
jpg1.loadFromFile (OpenPictuRealiog1.FileName);
bmp1.assign (jpg1);
Image1.picture.bitmap.assign (bmp1);
Enfin
jpg1.free;
bmp1.free;
fin;
fin;
fin;
Procédure tform1.SpeedButton1Click (expéditeur: tobject);
Commencer
Tableau 1.Open;
Tableau 1.insert;
TABLE1.FIELDBYNAME ('XM'). Asstring: = edit1.Text;
TABLE1.FIELDBYNAME ('Photo'). Assign (Image1.Picture);
Tableau 1.Post;
Tableau1.Refresh;
fin;
fin.