F
fyxr
Unregistered / Unconfirmed
GUEST, unregistred user!
//====================================
//图片的保存,已知
//数据表"a"的字段ID(Char),A(Image)
//ms:TMemoryStream;
ms:=TMemoryStream.Create ;
ms.LoadFromFile(edit1.Text) ;
ms.Position := 0;
ADOcom1.CommandText:='INSERT INTO a VALUES ('''+inttostr(1)+''','+':a)';
ADOcom1.Parameters[0].LoadFromStream(ms,ftblob);
ADOcom1.Execute;
//====================================
//图片的读取
//请教:从数据库取出的记录是多条,如何把各个图片显示在多个TImage中?
ADOcom1.CommandText:='select a from a';
ADOdat1.Recordset:=ADOcom1.Execute;
while not dat.Recordset.EOF do
begin
//此处该怎么写
//TBlobField(dat.FieldByName('a')).SaveToStream(ms);
//上一句可以显示,但只能显示第一条记录,
//不知道怎样定位到下一条记录
ms.Position := 0;
MyBitMap:=TBitmap.Create;
MyBitMap.LoadFromStream(ms);
Image[n].Picture.Assign(MyBitMap);//“Image[n]”我随便写的,这不重要
//您只要知道这是一个TImage就行了
ADOdat.Recordset.MoveNext;
end;
//********************************************************
俺只用“TADOConnection”、“TADOCommand”、“TADODataSet”
三个ADO对象是不是不能实现俺的要求?
俺不打算用“TADOTable”对象!感谢赐教!
//图片的保存,已知
//数据表"a"的字段ID(Char),A(Image)
//ms:TMemoryStream;
ms:=TMemoryStream.Create ;
ms.LoadFromFile(edit1.Text) ;
ms.Position := 0;
ADOcom1.CommandText:='INSERT INTO a VALUES ('''+inttostr(1)+''','+':a)';
ADOcom1.Parameters[0].LoadFromStream(ms,ftblob);
ADOcom1.Execute;
//====================================
//图片的读取
//请教:从数据库取出的记录是多条,如何把各个图片显示在多个TImage中?
ADOcom1.CommandText:='select a from a';
ADOdat1.Recordset:=ADOcom1.Execute;
while not dat.Recordset.EOF do
begin
//此处该怎么写
//TBlobField(dat.FieldByName('a')).SaveToStream(ms);
//上一句可以显示,但只能显示第一条记录,
//不知道怎样定位到下一条记录
ms.Position := 0;
MyBitMap:=TBitmap.Create;
MyBitMap.LoadFromStream(ms);
Image[n].Picture.Assign(MyBitMap);//“Image[n]”我随便写的,这不重要
//您只要知道这是一个TImage就行了
ADOdat.Recordset.MoveNext;
end;
//********************************************************
俺只用“TADOConnection”、“TADOCommand”、“TADODataSet”
三个ADO对象是不是不能实现俺的要求?
俺不打算用“TADOTable”对象!感谢赐教!