如何儲存JPG圖檔到SQL server 2000 database 中 |
答題得分者是:hagar
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
您是不是要用 TDBImage 顯示 jpeg?
是的話改這樣子的方式試試:
var jpg: TJpegImage; bmp: TBitmap; begin if OpenPictureDialog1.Execute then begin jpg := TJpegImage.Create; try jpg.LoadFromFile(OpenPictureDialog1.FileName); bmp := TBitmap.Create; try bmp.Width := jpg.Width; bmp.Height := jpg.Height; bmp.Assign(jpg); TBlobField(EmInfoQuery.FieldByName('Pics')).Assign(bmp); finally bmp.Free; end; finally jpg.Free; end; end; end;-- 歡迎光臨 KTop 研究院! 發表人 - hagar 於 2004/08/25 19:27:18 |
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
cd109
一般會員 發表:23 回覆:33 積分:11 註冊:2003-12-22 發送簡訊給我 |
fs是全域變數==>>fS : TFileStream; 這是換圖按鈕的寫法
if OpenDlg.Execute then
begin
fs:=nil;
dbimage1.Picture.LoadFromFile(OpenDlg.FileName);
fs:=TFileStream.Create(OpenDlg.FileName, fmOpenRead);
end;
這是寫入圖片的寫法
DataModule_EmployeeNew.Table_MANPIC.Active:=true;
DataModule_EmployeeNew.Table_MANPIC.Append;
DataModule_EmployeeNew.Table_MANPIC.FieldValues['EM_ID']:=Table_Main.FieldByName('EM_ID').AsInteger;
if fs=nil then
else
begin
try
DataModule_EmployeeNew.Table_MANPICEM_PIC.LoadFromStream(fs);
finally
fs.Free;
end;
end;
DataModule_EmployeeNew.Table_MANPIC.Post;
-----------------------------------------------------------------------------------------------------
這是<更新>換圖的寫法 宣告
fS : TFileStream=nil;==>全域變數
fes:Boolean=false;==>全域變數
----------- if OpenDlg.Execute then
begin
dbimage1.Picture.LoadFromFile(OpenDlg.FileName);
fs:=TFileStream.Create(OpenDlg.FileName, fmOpenRead);
fes:=true;
end; 這是<更新>的寫法
if fes=true then
begin
DataModule_Employeeedit.Table_MANPIC.Active:=true;
//DataModule_Employeeedit.Table_MANPIC.Locate('EM_ID',iEM_ID,[]);
try
DataModule_Employeeedit.Table_MANPIC.Edit;
DataModule_Employeeedit.Table_MANPICEM_PIC.LoadFromStream(fs);
DataModule_Employeeedit.Table_MANPIC.Post;
fes:=false;
finally
fs.Free;
end;
end; 以上的圖片均為DBIMAGE
PS:BDE中的
|
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
引言: Hi CD109, 謝謝你的建意,但是程式跑到DataModule_EmployeeNew.Table_MANPICEM_PIC.LoadFromStream(fs); 這行時還是會出現 Bitmap image is not valid 是不是SQL 2000不支援jpeg呢?1. 不是SQL 2000不支援jpeg, 而是 DBImage 元件不支援. 2. 若你考慮資料庫存圖的大小, 所以要存 JPG, 那顯示圖片的部分, 須自己處理, 而無法直接用 TDBImage 元件, 可以考慮改用 TImage, 在 DataSet 的AfterScroll event 寫程式去 Assign TImage. |
selina
一般會員 發表:39 回覆:64 積分:20 註冊:2002-12-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |