請問dbExpress如何存入圖檔到資料庫 |
答題得分者是:GrandRURU
|
taxchen
一般會員 ![]() ![]() 發表:15 回覆:19 積分:6 註冊:2002-03-13 發送簡訊給我 |
|
GrandRURU
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
taxchen
一般會員 ![]() ![]() 發表:15 回覆:19 積分:6 註冊:2002-03-13 發送簡訊給我 |
|
GrandRURU
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=38346
===================引 用 taxchen 文 章=================== 不好意思, 我不是很懂你的意思, 我的希望是拉一個image的元件, 讓user透過openDialog選擇jpg, 然後在輸入其他欄位的值 接著按下新增, insert到資料庫. 可否可以貼個sample code上來給我看一下. 感謝. |
taxchen
一般會員 ![]() ![]() 發表:15 回覆:19 積分:6 註冊:2002-03-13 發送簡訊給我 |
我的程式碼如下:
var sqlSelect : string; ss : tmemorystream; begin SS:=TMemoryStream.Create; self.Image1.Picture.Graphic.SaveToStream(ss); sqlSelect := 'insert into img_table (img, description) values(:q1, :q2)'; self.SQLDataSet2.ParamByName('q1').Assign(self.Image1.Picture.Bitmap); self.SQLDataSet2.ParamByName('q2').AsString := 'test1'; self.SQLDataSet2.CommandText := sqlSelect; self.SQLDataSet2.ExecSQL(true); end; 結果出現 SQL State: 42000, SQL Error Code: 102 (SQL Server 2008) img欄位型態是image, 我是使用bmp檔。 謝謝 |
GrandRURU
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
試試看這個
[CODE DELPHI] var TempSDS : TSQLDataSet; TempStream : TMemoryStream; begin inherited; TempStream := TMemoryStream.Create; TempStream.LoadFromFile('C:/house.jpg'); TempSDS := TSQLDataSet.Create(nil); TempSDS.SQLConnection := dm_NMSMaster.sct_Main; TempSDS.CommandText := 'UPDATE INDBILL SET NEW_COMMENTS = :BLOBPARAM WHERE RECORD_NO=2'; TempSDS.ParamByName('BLOBPARAM').SetBlobData (TempStream.Memory,TempStream.Size); TempSDS.ExecSql; TempSDS.Free; TempStream.Free; end; [/CODE] ===================引 用 taxchen 文 章=================== 我的程式碼如下: var sqlSelect : string; ss : tmemorystream; begin SS:=TMemoryStream.Create; self.Image1.Picture.Graphic.SaveToStream(ss); sqlSelect := 'insert into img_table (img, description) values(:q1, :q2)'; self.SQLDataSet2.ParamByName('q1').Assign(self.Image1.Picture.Bitmap); self.SQLDataSet2.ParamByName('q2').AsString := 'test1'; self.SQLDataSet2.CommandText := sqlSelect; self.SQLDataSet2.ExecSQL(true); end; 結果出現 SQL State: 42000, SQLError Code: 102 (SQL Server 2008) img欄位型態是image, 我是使用bmp檔。 謝謝 |
taxchen
一般會員 ![]() ![]() 發表:15 回覆:19 積分:6 註冊:2002-03-13 發送簡訊給我 |
請問一下,
我開了一個form, 拉了TSQLConnection, TSQLDataset, 也加了兩個Params (img, desc) 結果執行時出現: No Value for Parameter 'img' 把img拿掉, 只insert description, 也是出現 No Value for Parameter 'desc' Image1已經載入, 也顯示出圖片. 請問這是什麼問題. 謝謝 procedure TForm1.btnInsClick(Sender: TObject); var sqlSelect : string; msTemp : TMemoryStream; begin msTemp := TMemoryStream.Create; try self.Image1.Picture.Graphic.SaveToStream(msTemp); // msTemp.LoadFromFile('c:\temp\dmr_48.bmp'); sqlSelect := 'Insert into img_table (img, description) values(:img, :desc)'; self.SQLDataSet1.ParamByName('img').SetBlobData(msTemp.Memory, msTemp.Size); self.SQLDataSet1.ParamByName('desc').Value := 'Test'; self.SQLDataSet1.CommandText := sqlSelect; self.SQLDataSet1.ExecSQL; finally msTemp.Free; end; end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |