Var AbitMap:TBitMap;
st:TStringStream;
begin
try
ABitMap:=TBitMap.Create;
aBitMap.LoadFromFile('D:\SAMPLE.BMP');
st:=TStringStream.create('');
aBitMap.SaveToStream(st);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO Sys_user(USER_ID,USER_PIC) VALUES(''AA'',:pic)');
Query1.ParamByName('PIC').AsBlob:=st.DataString;
Query1.ExecSQL;
finally
abitmap.Free;
st.Free;
End;
上面的代码会出现死掉的情况(窗口就不能动了)
用 SELECT DBMS_LOB.GETLENGTH(USER_PIC) FROM SYS_USER;执行结果为 0,插入的纪录成功了
可是blob字段User_Pic长度怎么是0呢?
保存于显示数据库中的图片究竟该如何做?请高手帮忙。希望把Query或者Table的重要属性也要说明
一下(我很菜)
解决方案 »
- 急* IE activex 问题
- idFTP connect 后程序未响应
- Rave5.0 Reports创建的视图和其所用字段名中使用汉字是不合法的?有没有补丁使其合法化?
- 用simpledataset组件连接sql server数据库为何不让我对表中得数据进行修改,提示“Field value required"是什么意思????
- 有哪位好心人可以帮帮我。关于数据库方面的问题,急急急...。
- 请教各位大虾:关于midas与注册表的问题
- ===== 寻人,Focus(老鱼) ========
- 时间问题?
- function应该放在什么地方?
- 那可以下载 姚庭宝 主编《精通delphi》 电子工业出版社
- delphi圣人高手请进解决硬件控制问题
- 期待已久的周爱民的书终于面世了<<Delphi源代码分析 >>
procedure Tfrm_Main.BtnSaveToDBClick(Sender: TObject);
var
ext:string;
begin
if image1.Picture.Graphic <>nil then
begin
try
DM.ADOConnection.BeginTrans ;
DM.ADODataSet_classMate.Edit ;
DM.ADODataSet_classMate.FieldByName('相片').Assign(image1.Picture.Graphic);
//以下记录保存到数据库的图像格式
ext:=extractfileext(openpicturedialog1.FileName);
if uppercase(ext) = '.BMP' THEN
DM.ADODataSet_classMate.FieldByName('isbmp').Value :=1
ELSE IF (UPPERCASE(EXT) = '.JPEG') OR (UPPERCASE(EXT) = '.JPG') THEN
DM.ADODataSet_classMate.FieldByName('isbmp').Value :=0;
DM.ADODataSet_classMate.Post ;
DM.ADOConnection.CommitTrans ;
except
DM.ADOConnection.RollbackTrans ;
showmessage('图片保存失败!');
end;//try
end;
end;
jpegimage:TJPEGImage;
begin
if not (adoquery1.State in [dsinactive]) then //写模式
begin
if OpenPictureDialog1.Execute then
begin
picname:=OpenPictureDialog1.FileName;
exename:=ExtractFileExt(picname);
if (UpperCase(exename)='.JPG')or(UpperCase(exename)='.JPEG') then
begin
jpegimage:=TJPEGImage.Create;
try
jpegimage.LoadFromFile(picname);
adoquery1.edit;
DBImage1.Picture.Graphic.Assign(jpegimage);
adoquery1.Post;
finally
jpegimage.Free;
end;
end
else
begin
adoquery1.Edit;
adoquery1DSDesigner13.LoadFromFile(OpenPictureDialog1.FileName);
adoquery1.Post;
end;
end;
end;