数据库用SQL2000,和DELPHI用ADOConnection,ADOTable,DATASource相连
数据库里存放了一些JPEG图片文件,有5个image控件!image1,image2,image3......
数据库里的图片超过5张,每张图片有唯一的ID号
要求能把数据库里的图片按ID号分别读到image1,2,3,4,5里,
既ID1读到image1,ID2读到image2里。以此类推!
因为数据库里的图片超过5张,所以有一个下一页Button,按一下,自动读后面的图片!这应该能用循环来做,但小弟太差,一直写不出来!还请各位大哥帮帮忙!送上100分!!一解决马上给分!
如果分不够,可以通知我,我另外给分!
可以说的详细点吗?
select top 5 * from 表名
for i := 1 to 4 do
begin
(FindComponent('image'+inttostr(i)) as Timage).Canvas.TextOut(10,10,inttostr(i));
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : integer;
begin
table1.Open;
for i := 1 to 4 do
begin
(FindComponent('image'+inttostr(i)) as Timage).Picture := DBImage1.Picture ;
table1.Next;
end;
end;
能从数据库中直接将图片读入image中吗?我不会所以用一个DBImage中转
for i:=i1 to i1+4 do
begin
....
....
adoquery1.next
end;
table1.Next;
改成
if table1.Eof then
table1.First
else
table1.Next;
就可以真的循环了
TFileStream *AFileStream ;
AStream = DM->cdsUse1->CreateBlobStream(DM->cdsUse1->FieldByName("pic"), bmReadWrite);
Image1->Picture->SaveToFile("temp.bmp");
AFileStream = new TFileStream("temp.bmp", fmOpenRead);
AStream->CopyFrom(AFileStream,AFileStream->Size); AStream->Free();
AFileStream->Free();
DM->cdsUse1->ApplyUpdates(-1);
DeleteFile("temp.bmp");