SQL Server2005中,我用image類型來存取圖片,首先把數據庫表設置好
例如我的pic表有如下兩列:時間,圖片。
delphi中,我用ADOQuery來連接數據庫,但是數據庫中有好幾張表,我只往其中一張表裏存圖片。
首先將攝像頭傳來的jpeg圖片存入文件中,將路徑設爲全局變量以供後續使用。(當然你也可以用現成的jpeg圖片)
function/procedure 存入圖片過程
var
strmDB: TMemoryStream;
begin
strmDB:= TMemoryStream.Create;
TMemoryStream(strmDB).LoadFromFile(sLocate1);//此處sLocate1爲文件路徑
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:='INSERT INTO pic VALUES('''+DateTimeToStr(Now)+''', :a) ';
Parameters.ParamByName('a').LoadFromStream(strmDB, ftBlob);
ExecSQl;
end;
strmDB.Free;
end;
讀取過程
strmDB := tadoblobstream.Create(tblobfield(fieldbyname('圖片')),bmread);
這是關鍵一句,前提是按你自己的條件打開pic這張表,再操作,如果提示找不到‘圖片’這一列之類的錯誤,請務必將你的sql代碼放到SQLServer2005上去試一下
就知道哪裏出錯了,經常是沒有運行open之類的句子就進行fieldbyname的操作。