我想要存取SQL server 的 image

Dear 各位大大:

請教各位大大,SQL Server資料庫中有一個型別為image,如何存取呢?其他各種欄位的值我都可以存取

但是image的資料型別就是沒有辦法,有誰可以教教我

怎麼都沒人回覆呢?

我最近也遇到這個問題了

當我以sql server 2005查看image欄位時會顯示為<二進位資料>

而以LabSQL的example中之Fetch a table去查詢時則此欄位為空白

有沒有人可以教我如何存取圖片資料呢?

![](upload://k4WRydAhcJe1MzOEDqg6ACd49j9.jpeg)

 

提示一下:

這個功能要用Varient的icon才做的出來。

在LabSQL的工具裏面,現成的範例是已經把Varient的資料型態轉成string再轉成array了。

所以你如果要擷取圖片資料或是存入圖片資料的話,應該要在LabSQL裡面,當資料還是Varient型態的時候就轉成圖片,這樣就可以了。

把圖片存入資料庫也是一樣,把圖片轉成Varient,再存入資料庫中。

哇!好棒喔!

終於做出來了

謝謝班傑明兄的提示

當初看到提示後霧煞煞

不過實際研究了半天終於搞定了

跟大家分享我的做法

![](upload://tvVMzTexiHM1SFrO1vspcTFLy4u.jpeg)

首先需先將SQL Fetch Data這個subvi改為如上圖紅框所示

即可將輸出之字串改為輸出variant型態

接下來將variant中存放圖片資訊之欄位資料以矩陣vi擷取出來並轉換為一維矩陣格式(如下圖紅框所示)

之後再依圖片資訊將一維矩陣轉換為二維矩陣(如下圖綠框所示,本處之一維矩陣第0及4個element定義圖片橫及縱軸pixel數,故圖片實際灰階矩陣由第9 element開始)

![](upload://az8fbQGOkpu1h84KHuCLDS8g4O1.jpeg)

之後即可由IMAQ顯示圖片囉!

Dear Waneric,

你真厲利,可以寄程式給我嗎.

另外請問你如何將圖檔上傳到database,可以寄程式給我嗎,謝謝!

很抱歉

前一陣子正在忙

一直拖到現在

程式已上傳囉!希望能對您有幫助

Fetch a image test.vi

先前雖已可把圖片從已有的資料庫中擷取出來

延續先前的成果,這兩天開始在想如何把圖片再寫入其它資料庫中呢?

依照班兄的提示,必須把圖片轉成Variant

可是寫入的SQL指令卻必須是String

於是我只好再把圖片Variant轉成Flattened String

可是還是一直出現錯誤(Exception occured in Microsoft OLE DB Provider for SQL Server: 接近 '(' 之處的語法不正確。 in ADO Connection Execute.vi->SQL Execute.vi->Insert a image test.vi)

附上我的程式

有誰可以教教我呢?

![](upload://hgcEwOZ6ab2bgtbs0SpdKXdA9i9.jpeg)

 

因為你是字串,所以指令應該為
INSERT INTO image (image)

VALUES (‘你的
Flattened String’)

感謝caeru大的提醒

我已將指示修正,加入了前後的引號

不過還是沒辦法成功寫入

這次錯誤訊息換成了:Exception occured in Microsoft OLE DB Provider for SQL Server: 遺漏字元字串 '' 後面的引號。 in ADO Connection Execute.vi->SQL Execute-test.vi->Fetch a image test2-遠端ok.vi(code:-2147217900)

請問還有哪裡出了問題呢?

有可能是你的Flattened String中帶有不合法的字元如 ’  )  (  等,造成語法錯誤

另建議不要直接將圖放入sql,把圖放到伺服器上的資料夾並把路徑紀錄在sql中即可