三层结构,客户端怎么向远程数据库插入图片? (300分)

  • 主题发起人 主题发起人 dreamliu2001
  • 开始时间 开始时间
D

dreamliu2001

Unregistered / Unconfirmed
GUEST, unregistred user!
如题!UP有分!
 
很C/S一样啊,利用TMemoryStream传啊
比如
Stream:TMemoryStream;
Stream:=TMemoryStream.Create;
Image.Picture.SaveToStream(Stream);
Stream.Position:=0;
TBlobField(MyField).LoadFormStream(Stream);
Stream.Free
然后ApplyUpdates就OK啦!
 
我用的是COM+,我客户端ClientDataSet是不直接对数据操作的!
通过COM+提供的接口来做!
 
救命啊!怎么没人呢!顶
 
应该是用流吧,我没搞过这样的问题
 
非常简单啊,比如说你定义一个COM接口函数供客服端调用,带一个形参,类型为OleVariant类型,利用函数把TMemoryStream转换成OleVariant,服务器应用程序接受到以后把OleVariant转换成TMemoryStream,然后提交就OK了。
procedure VariantToStream (const v : olevariant;
Stream : TMemoryStream);
var
p : pointer;
begin

Stream.Position := 0;
Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound (v, 1) + 1;
p := VarArrayLock (v);
Stream.Write (p^, Stream.Size);
VarArrayUnlock (v);
Stream.Position := 0;
end;

procedure StreamToVariant (Stream : TMemoryStream;
var v : OleVariant);
var
p : pointer;
begin

v := VarArrayCreate ([0, Stream.Size - 1], varByte);
p := VarArrayLock (v);
Stream.Position := 0;
Stream.Read (p^, Stream.Size);
VarArrayUnlock (v);
end;

我看没有什么问题了吧!
 
试试,如果行立刻加分!先谢了!
 
多谢啦,可以!高手可否留个联系方式以便向你请教!多谢!
 
别这么说,我也不是什么高手,关于三层结构我好久没有接触了,都快忘了,
现在写什么仪器控制软件。
如果你有什么问题,就发Email给我,如果我会的话一定帮你解决!
NeutronBoy@sohu.com
 
后退
顶部