1、路径 imgPath:string;//比如已经得到了图片路径
2、SQL2000 数据库 表名 ttbtestimg 字段名 img 字段类型image
3、请给一个完整代码,将此路径下的图片,存入数据库,相应表的相应字段中
4、请给出一段完整代码,将此表中的图片显示在图片控件上
4、请给出注释
5、程序一通,立即给分
2、SQL2000 数据库 表名 ttbtestimg 字段名 img 字段类型image
3、请给一个完整代码,将此路径下的图片,存入数据库,相应表的相应字段中
4、请给出一段完整代码,将此表中的图片显示在图片控件上
4、请给出注释
5、程序一通,立即给分
解决方案 »
- TMS AdvStringGrid onGetCellColor (第1列条件满足时最第2列加颜色)
- 出现"List index out of bounds(-1)"错误?
- 【在线等待】关于QR报表打印的问题,高手进,急!!!
- 关于使用ClientDataSet查询记录的看法
- 在数据库如何保存图片,up有分,,,,
- 关于日期的问题
- 有没有人知道软件工程硕士的行情怎么样?
- 建个索引,用Table.AddIndex()方法!谁会?需上机通过验证代码!
- 哪里有boundchecker for delphi 版的下载
- 提示 '' is not a valid integer value
- stringgrid当鼠标不点在cell(stringgrid中)中,就不显示弹出菜单
- 定时器触发延时太长问题
http://topic.csdn.net/t/20051215/18/4461795.html
.....程序还是要自己写的......
//tempdataset是一个数据集,在使用这个函数的时候,数据集必须是处于edit或insert状态
//这个函数可以做为公用函数
procedure PhotoToDB(imgpath:string;tempdataset: TDataSet);
begin
try
try
(TBlobField(tempdataset.FieldByName('img'))).LoadFromFile(imgpath);
except
end;
finally
if FileExists(imgpath) then //这是删除图片文件
DeleteFile(imgpath);
end;
end;
//从数据库在取出图片并显示在Image中
//image控件,tempDataSet数据集。这个数据集必须是open状态(即是打开查询状态)
procedure DBToPhoto( image: Timage; tempDataSet: TADOQuery);
var
tempFile:string;//临时存放图片的路径(包括文件名)
begin
try
//ExtractFilePath获取当前程序路径,创建一个临时图片文件
tempFile:=ExtractFilePath(Application.ExeName)+'tmp.jpg';
if not tempDataSet.FieldByName(phoneField).IsNull then
begin
try
(TBlobField(tempDataSet.FieldByName(phoneField))).SaveToFile(tempFile);
image.Picture.LoadFromFile(tempFile);
except
end;
end
else
Image.Picture.Graphic:=nil;
finally
if FileExists(tempFile) then DeleteFile(tempFile);
end;
end;
注意:以上图像都是以jpg为例的。如果你是存储bmp.保存的函数不用修改。取出时那个图片的后缀改成bmp就行了.
var
picstream:tadoblobstream;
bmppic:tbitmap;
jpgpic:tjpegimage;
bmpstream:TMemoryStream;
OpenPicDialog:TOpenPictureDialog;
begin
try
OpenPicDialog:=TOpenPictureDialog.Create(nil);
OpenPicDialog.Filter:='All *.jpg;|*.jpg;)';
with AdoQuery1 do
begin
close;
sql.text := 'Insert into ttbtestimg(id) values(1)';
ExecSql;
SQL.Text := 'select id,img from ttbtestimg with(nolock) where id=1';
Open;
Edit;
if OpenPicDialog.Execute then
begin
jpgpic:=tjpegimage.Create;
bmppic:=tbitmap.Create;
bmpstream:=tmemorystream.Create;
jpgpic.LoadFromFile(OpenPicDialog.filename);
bmppic.Assign(jpgpic);
bmppic.SaveToStream(bmpstream);
picstream:=tadoblobstream.Create(tblobfield(adoquery1.Fields[1]),bmWrite);
picstream.LoadFromStream(bmpstream);
picstream.Position:=0;
tblobfield(adoquery1.Fields[1]).loadfromstream(picstream);
end;
Post;
end;
finally
OpenPicDialog.Free;
end;
end;
procedure TFrmDocument.SpBtnAddClick(Sender: TObject);
var
sqlText: string;
TmpAdo: TAdoquery;
FileKind: string;
begin
if (EdtFileDir.Text = '') or (trim(EdtFileName.Text) = '') or (CmbKind.ItemIndex < 0) then
begin
MessageBox(Handle,'请将信息添加完整!','信息提示',MB_ICONWARNING + MB_OK);
exit;
end;
try
TmpAdo := TAdoquery.Create(nil);
sqlText := 'select * from DocumentTb where 1<>1';
FrmDm.OpenSql(TmpAdo,sqlText);
FileKind := Rightstr(EdtFileDir.Text,4);
TmpAdo.Append;
TmpAdo.FieldByName('FileName').Value := EdtFileName.Text+FileKind;
TmpAdo.FieldByName('KindId').Value := (CmbKind.Items.Objects[CmbKind.ItemIndex] as TCombKind).AKindId;
TmpAdo.FieldByName('SaveTime').Value := FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
TblobField(TmpAdo.FieldByName('Content')).LoadFromFile(EdtFileDir.Text);
TmpAdo.Post;
{日志}
WriteLog(CUR_USER.UserID,DateTimeTostr(Now()),IntTostr(LOG_DOCUMENT),
'新增文档<'+EdtFileName.Text+'>');
EdtFileDir.Text := '';
EdtFileName.Text := '';
CmbKind.ItemIndex := 0;
TmpAdo.Free;
sqlText := 'select * from DocumentTb';
FrmDm.OpenSql(FrmDm.AQDecument,sqlText);
except
MessageBox(Handle,'添加信息失败!','信息提示',MB_ICONWARNING + MB_OK);
end;
end;