เมื่อเร็ว ๆ นี้หลังจากได้เห็นบทความสองเรื่องเกี่ยวกับ CSDN เกี่ยวกับ "การเข้าถึงไฟล์ JPEG ไปยัง SQLServer ใน Delphi" ฉันรู้สึกว่าวิธีการที่อธิบายไว้ในนั้นเป็นที่ต้องการ แต่มันใช้เวลาค่อนข้างนาน เชื่อถือได้ฉันไม่กล้าสนุกกับมันคนเดียวฉันยินดีที่จะเผยแพร่และแบ่งปันกับทุกคน การทดสอบถูกส่งผ่านใน Delphi7.0+Win2000+SQLServer 2000 และทำงานได้ดี
สารละลาย:
1. คีย์คือการแปลงไฟล์ JPEG แบบเปิดเป็นวัตถุ TBITMAP แบบไดนามิกและแสดงในวัตถุ timage;
2. ส่งภาพที่แสดงไปยังฐานข้อมูล
ในตัวอย่างนี้ตารางตัวอย่างการทดสอบถูกสร้างขึ้นใน SQLServer2000: การสอบ (XM Char (10), ภาพภาพถ่าย);
ซอร์สโค้ดโปรแกรม:
หน่วย SavePic;
ส่วนต่อประสาน
ใช้
Windows, ข้อความ, sysutils, ตัวแปร, คลาส, กราฟิก, การควบคุม, รูปแบบ,
กล่องโต้ตอบ, extdlgs, extctrls, dbctrls, กริด, dbgrids, db, adoDB, ปุ่ม, ปุ่ม, ปุ่ม, ปุ่ม, ปุ่ม, ปุ่ม, ปุ่ม
stdctrls, jpeg;
พิมพ์
tform1 = คลาส (tform)
SpeedButton1: TSPEEDBUTTON;
Adoconnection1: Tadoconnection;
ตารางที่ 1: tadotable;
DataSource1: tDataSource;
dbgrid1: tdbgrid;
dbimage1: tdbimage;
Image1: timage;
SpeedButton2: TSPEEDBUTTON;
OpenPictureDialog1: topenpicturedialog;
label1: tlabel;
label2: tlabel;
Edit1: Tedit;
SpeedButton3: TSPEEDBUTTON;
ขั้นตอน speedbutton2click (ผู้ส่ง: tobject);
ขั้นตอน speedbutton1click (ผู้ส่ง: tobject);
ขั้นตอน speedbutton3click (ผู้ส่ง: tobject);
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
{ประกาศสาธารณะ}
จบ;
วาจา
Form1: TFORM1;
การดำเนินการ
{$ r *.dfm}
ขั้นตอน TFORM1.SpeedButton2Click (ผู้ส่ง: tobject);
วาจา
BMP1: TBITMAP;
JPG1: tjpegimage;
เริ่ม
OpenPictureDialog1.defaultext: = graphicextension (tjpegimage);
ถ้า openpicturedialog1.execute แล้ว
เริ่ม
bmp1: = tbitmap.create;
jpg1: = tjpegimage.create;
พยายาม
JPG1.LoadFromFile (OpenPictureDialog1.filename);
BMP1.ASSIGN (JPG1);
Image1.picture.bitmap.assign (BMP1);
ในที่สุด
jpg1.free;
BMP1 ฟรี;
จบ;
จบ;
จบ;
ขั้นตอน TFORM1.SpeedButton1Click (ผู้ส่ง: tobject);
เริ่ม
ตารางที่ 1.Open;
ตารางที่ 1.insert;
table1.fieldbyName ('xm'). assTring: = edit1.Text;
table1.fieldbyName ('รูปภาพ') กำหนด (Image1.Picture);
ตารางที่ 1. โพสต์;
ตารางที่ 1.Refresh;
จบ;
จบ.