save image into sql server 2000 dataset blobfield |
尚未結案
|
stevenkkt
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2005-07-15 發送簡訊給我 |
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 發送簡訊給我 |
以下代碼需要把圖片先存為文檔,然後調用。但我相信要修改為從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 發送簡訊給我 |
|
stevenkkt
一般會員 ![]() ![]() 發表:1 回覆:3 積分:0 註冊:2005-07-15 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |