第一次用delphi,要用到SQL server 2000 ,很是不明白,蒙在这里了。这个问题我之前在数据库开板块问过,但是我还没能解决。希望各位能帮帮忙。谢谢啦。
问题:
1. 怎样通过delphi控件button1,将本地磁盘的图像存放数据库 (SQL Server 2000)?
2. 怎样通过delphi控件button2将第一步存入数据库里的部份图像读出,并在控件image1~image9中显示?实现功能:
1.按下button1(caption:找开图库),将本地磁盘D:\图像的所有图像存入SQL Server 2000的数据库(picData)的表(picture)里;Picture表我是这样建的:
CREATE TABLE Picture
(
PicID CHAR(10),
PicFileName CHAR(20),
PicMemo IMAGE,
);2.在第一步骤完成后,.按下button2(开始查找), 将图像库的表picture的图像在image1~image9显示。
问题:
1. 怎样通过delphi控件button1,将本地磁盘的图像存放数据库 (SQL Server 2000)?
2. 怎样通过delphi控件button2将第一步存入数据库里的部份图像读出,并在控件image1~image9中显示?实现功能:
1.按下button1(caption:找开图库),将本地磁盘D:\图像的所有图像存入SQL Server 2000的数据库(picData)的表(picture)里;Picture表我是这样建的:
CREATE TABLE Picture
(
PicID CHAR(10),
PicFileName CHAR(20),
PicMemo IMAGE,
);2.在第一步骤完成后,.按下button2(开始查找), 将图像库的表picture的图像在image1~image9显示。
解决方案 »
- 拖动音量滑块来显示音量的百分比
- 郁闷,散分
- 自己写了个播放器,要求双击MP3文件后, 只允许打开一个应用程序来播放
- RichEdit的滚动问题
- 100分求idhttp怎样get网站的图片文件?
- 寻 DELPHI 5.0 下载
- 新手求ADO+ACCESS的读取、插入,修改,删除记录代码。作参考学习之用。
- WINDOWS窗口问题
- 求援
- help:一表中出现两相同记录,想删除其中一条,出现以下错误:“无法为更新行集定位,一些值可能已在在最后后改变”。
- 如何讲TStrings 转换成 String或是TCaption?
- VCLZIP 解压恢复的问题~~~就100分 都给出去了........在线的关注一下也好..谢谢大家
以后是我写的部份代码:
一:数据库表建立:
CREATE TABLE Picturetest
(
PicName CHAR(10)PRIMARY KEY,
PicPath CHAR(40),
Picture IMAGE,
);二:delphi界面上的控件:
Form1 ,Button1(找开图像),Button2(存入数据据),OpenDialog1,Edit1(图像名:PicName),Image1,DataSource1,DBGrid1,Table1三:数据控件设置:
1> object DataSource1: TDataSource
DataSet = Table1
end 2>object Table1: TTable
DatabaseName = 'LocalServer'
TableName = 'dbo.Picturetest'
end
3>object DBGrid1: TDBGrid
DataSource = DataSource1
end四.代码
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Execute ;
image1.Picture.LoadFromFile(opendialog1.FileName);
edit1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Open;
table1.Insert;
table1.FieldByName('PicName').AsString:=edit1.Text ;
table1.FieldByName('PicPath').AsString :=opendialog1.FileName ;
table1.FieldByName('Picture').Assign(image1.Picture);
table1.Post;
showmessage('存储成功');
edit1.Text:='';
end;
五:缺点
一次只能打开一幅图像,每次只能存一幅图像到数据库。六:希望改进后的效果
一次打开一个图像文件夹,能将其中的所以图像依次存入数据库。希望各位能帮忙。谢谢
//存取到数据库中
var
PicName, PicPath: string;
MS: TMemoryStream;
J1: Tbitmap;
begin
MS := TMemoryStream.Create;
J1 := Tbitmap.Create;
try {Finally}
PicName := ExtractFilename(FilePath);
//获取文件名
PicPath:= ExtractFileDir(FilePath);
//文件路径
if ADOTable1.Locate('PicName;PicPath', VarArrayOf([PicName,PicPath]), [])
then
ADOTable1.Edit
//开始进行插入操作
else
begin
ADOTable1.Append;
//插入到末尾
ADOTable1PicName.AsString :=Picname;
//插入到FileName字段
ADOTable1PicPath.AsString := PicPath;
//插入到Folder字段
end;
Image1.Picture.LoadFromFile(FilePath);
J1.Assign(Image1.Picture);
//加载jpg图片
J1.SaveToStream(MS);
//存取到流中
ADOTable1Picture.LoadFromStream(MS);
//存取到图片字段
ADOTable1.Post;
//提交
MS.Free; //释放资源
J1.Free;end;