線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1561
推到 Plurk!
推到 Facebook!

save image into sql server 2000 dataset blobfield

尚未結案
stevenkkt
一般會員


發表:1
回覆:3
積分:0
註冊:2005-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-15 17:19:47 IP:219.93.xxx.xxx 未訂閱
hi i've a image in a Timage component that's retrieved from a jpeg file.I'd like to save the image into a dataset blobfield, i'm using N-tier architecture, so the connection is taken care of. I've tried the following code but the save-to-dataset part doesn't work. Kindly help me on this. Thank you in advance. //delphi var image1 : TImage; datasetPatPhoto : TADODataSet; JStream : TStream; Image1.Picture.LoadFromFile('C:\photo.jpg'); PatImage := TJpegImage.Create; PatImage.Assign(dbImage1.Picture); datasetPatPhoto.DisableControls; if datasetPatPhoto <> nil then begin dataSetPatPhoto.Insert; JStream := dataSetPatPhoto.CreateBlobStream(dataSetPatPhoto.FieldByName('Photo'), bmWrite); PatImage.SaveToStream(JStream); PatImage.SaveToStream(JStream); datasetPatPhoto.Post; end; datasetPatPhoto.EnableControls; //delphi Best Regards, Steven
------
Best Regards,
Steven
Arlung Miao
初階會員


發表:9
回覆:44
積分:25
註冊:2004-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-15 22:53:41 IP:61.145.xxx.xxx 未訂閱
以下代碼需要把圖片先存為文檔,然後調用。但我相信要修改為從MemoryStream也很方便

    var
      cSql: string;
      adoQry: TAdoQuery;
    begin
      ...           cSql := 'UPDATE SomeTable'
              '  SET ImageField = :AnyName'
              '  WHERE ...'
            ;
      adoQry.SQL.Add(cSql);
      if cDataType = 'IMAGE' then begin
        adoQry.Parameters.ParamByName('AnyName').LoadFromFile(cFile, ftBlob);
      end else if cDataType = 'TEXT' then begin
        adoQry.Parameters.ParamByName('AnyName').LoadFromFile(cFile, ftMemo);
      end else begin
        adoQry.Parameters.ParamByName('AnyName').LoadFromFile(cFile, ftString);
      end;          ...    
發表人 - arlung miao 於 2005/07/15 22:56:04
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-16 00:45:56 IP:219.68.xxx.xxx 未訂閱
以下提供您參考 http://delphi.ktop.com.tw/topic.php?topic_id=48855 或使用"blob 圖檔"搜尋有很多資料。
stevenkkt
一般會員


發表:1
回覆:3
積分:0
註冊:2005-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-18 10:27:22 IP:219.93.xxx.xxx 未訂閱
The problem that i face with my code is that it's a running error saying 'dataset not in edit or insert mode.' but i already have dataset.insert (i also tried dataset.edit)right before the line that showed the error. //delphi var image1 : TImage; datasetPatPhoto : TADODataSet; JStream : TStream; Image1.Picture.LoadFromFile('C:\photo.jpg'); PatImage := TJpegImage.Create; PatImage.Assign(dbImage1.Picture); datasetPatPhoto.DisableControls; if datasetPatPhoto <> nil then begin dataSetPatPhoto.Insert; JStream := dataSetPatPhoto.CreateBlobStream(dataSetPatPhoto.FieldByName('Photo'), bmWrite); PatImage.SaveToStream(JStream); //error happened here datasetPatPhoto.Post; end; datasetPatPhoto.EnableControls; //delphi Best Regards, Steven [/quote] Best Regards, Steven 發表人 - stevenkkt 於 2005/07/18 10:44:06
------
Best Regards,
Steven
stevenkkt
一般會員


發表:1
回覆:3
積分:0
註冊:2005-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-18 10:27:49 IP:219.93.xxx.xxx 未訂閱
I've changed my code several times, now the error still the same but my code is different. //delphi datasetPatPhoto.disableControls; if datasetPatPhoto <> nil then begin FileStream := TFileStream.Create('C:\photo.jpg', fmOpenRead); try if datasetPatPhoto.State <> dsEdit then begin datasetPatPhoto.edit; datasetPatPhotoPhoto.LoadFromStream(FileStream); //error happens here end; finally FileStream.Free; end; end; datasetPatPhoto.EnableControls; 發表人 - stevenkkt 於 2005/07/18 10:54:18
------
Best Regards,
Steven
stevenkkt
一般會員


發表:1
回覆:3
積分:0
註冊:2005-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-18 14:03:21 IP:219.93.xxx.xxx 未訂閱
Hi guys, i guess there is nothing wrong with my save-to-dataset code, it was my N-Tier connection to be blamed. Thank you guys for all the replies. 
------
Best Regards,
Steven
系統時間:2024-06-27 22:41:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!