如何將圖片存入三層式後端資料庫中? |
尚未結案
|
landochu
一般會員 發表:23 回覆:20 積分:8 註冊:2003-12-24 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
landochu 你好
引言: 如題,因為上次用了個包絡伯(BLOB)型態的"罕見用法"使用Blob型態儲存圖片,並不算"罕見",至少我也是這樣用,因為用Blob我可以存任何型態的資料,不限圖片資料! 引言: 導致沒有人能夠幫偶解決此問題沒人回答,應該是你提供的資訊不足,太籠統了,大家不知怎麼回答,而不是因為你使用Blob型態的問題。 如何有效地報告錯誤 anpino 版主轉貼 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=53181 回歸主題:先問你一個問題..不使用"三層式架構",你可以處理存取圖片了嗎? 否:那你的問題在圖片存取而不在"三層式架構" 可:你先將DataSetProvider.Options.poFetchBlobsOnDemand 設為True(即Options包含poFetchBlobsOnDemand選項),試試看可不可以正常運作?(這時處理的速度會比較慢,如果圖片多且大的話) 先求可以運作,後續再來考慮速度的問題,ok? _______________________________________ 深藍的魚,祝您好運..........連.連 |
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
function TPICTUREObj.UpdateImage(sPrjID, sPictID: String): String; var FupDate:TQuery; Jpg:TJPEGImage; Stream:TMemoryStream; begin FupDate:=TQuery.Create(FOwner); Jpg:=TJPEGImage.Create; Stream:=TMemoryStream.Create; try FupDate.DatabaseName:=FDatabase.DatabaseName; try FssSQL.Clear; FssSQL.Add('UPDATE PICTURE '); FssSQL.Add(' SET PICT_IMAGE=:B_PICT_IMAGE'); FssSQL.Add(' WHERE SYS_PRJ_ID = '+sPrjID); FssSQL.Add(' AND PICT_ID = '+sPictID); FupDate.SQL.Text:=FssSQL.Text; JPG.Assign(FImage.Picture); //FImage為一TImage,且內已有JPEG圖 JPG.SaveToStream(Stream); FupDate.ParamByName('B_PICT_IMAGE').SetBlobData(Stream.Memory,Stream.Size); if FDatabase.InTransaction then FDatabase.Rollback; FDatabase.StartTransaction; FUpDate.Prepare; FupDate.ExecSQL; Result:='圖檔寫入成功'; FDatabase.Commit; except on E:Exception do begin FDatabase.Rollback; raise Exception.Create('圖檔寫入失敗,錯誤訊息如下:'#13 e.Message); end; end; finally FUpDate.Active:=False; FupDate.Free; Stream.Free; end; end;以上是以BDE方式連資料庫的. 請問一下, (1)你連資料庫是用什麼連的?BDE?ADO?dbExpress?後端資料庫是什麼? (2)client端與ApServer用什麼方式連接?TSocketConnection?TDCOMConnection? 雖然原則上寫入資料庫的程式都差不多,但因為架構的不同,需要注意的地方也不同,所以,如果你仍試不出來,最好把你的架構詳述一下,甚致,把出錯的程式碼放上來,這樣會比較快找到答案 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |