谁试过用midas传递大量的文本数据,高分求教 通常情况下,传递较大型的数据,需要自己添加服务器端方法,传递数据封包(例如将大数据编码后以VarArray of Byte传递到服务器) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function FileToVariant(FileName: string): OleVariant;var AStream: TFileStream; MyBuffer: Pointer;begin AStream := TFileStream.Create(FileName, fmOpenRead); try AStream.Seek(0, soFromBeginning); Result := VarArrayCreate([0, AStream.Size - 1], VarByte); MyBuffer := VarArrayLock(Result); AStream.ReadBuffer(MyBuffer^, AStream.Size); VarArrayUnlock(Result); finally AStream.Free; end;end;procedure VariantToFile(FileName: string; var AVariant: OleVariant);var AStream: TFileStream; MyBuffer: Pointer; Size: Integer;begin AStream := TFileStream.Create(FileName, fmCreate); try AStream.Seek(0, soFromBeginning); Size := VarArrayHighBound(AVariant, 1) - VarArrayLowBound(AVariant, 1) + 1; MyBuffer := VarArrayLock(AVariant); AStream.WriteBuffer(MyBuffer^, Size); VarArrayUnlock(AVariant); finally AStream.Free; end;end; 上述代码,是将文件转化为OleVariant,然后又将Olevariant还原为文件。传递到服务器,只要在服务器端定义一个方法,那么就可以了,参数可以使用OleVariant。 呵呵,你认为COM可以传递流吗? 好象可以。不知是否对。我的一个MTS程序没有调试去来,不知你是否有空? chechy:我在MTS/COM+环境中是可以传递流,为什么你说不? 那么流对应到COM的什么类型呢? 1.用variant (*)来可以2.HResult (*) Tense(何必):COM不能传递流。如果你能传递,那么……你太厉害了,你超越了COM 问一个序号排序的问题 delphi不能调试通过请求帮忙,马上给分 继续散分! 如何在fastreport中应用自定义函数? 一个表的查询问题? 这个错误你们遇到过没有? 关于pagecontrol控件的一点问题?高分,高分!!! 各位大侠快帮帮我。help!!!!!!!!!!!!!!!!! 怎样得到Image里加载的picture 的名字啊? Daysbetween用法 Delphi 6单元文件找不到的问题 显示窗口,请大家帮忙! don't use showwindow函数,急.
var
AStream: TFileStream;
MyBuffer: Pointer;
begin
AStream := TFileStream.Create(FileName, fmOpenRead);
try
AStream.Seek(0, soFromBeginning);
Result := VarArrayCreate([0, AStream.Size - 1], VarByte);
MyBuffer := VarArrayLock(Result);
AStream.ReadBuffer(MyBuffer^, AStream.Size);
VarArrayUnlock(Result);
finally
AStream.Free;
end;
end;procedure VariantToFile(FileName: string; var AVariant: OleVariant);
var
AStream: TFileStream;
MyBuffer: Pointer;
Size: Integer;
begin
AStream := TFileStream.Create(FileName, fmCreate);
try
AStream.Seek(0, soFromBeginning);
Size := VarArrayHighBound(AVariant, 1) - VarArrayLowBound(AVariant, 1) + 1;
MyBuffer := VarArrayLock(AVariant);
AStream.WriteBuffer(MyBuffer^, Size);
VarArrayUnlock(AVariant);
finally
AStream.Free;
end;
end;
传递到服务器,只要在服务器端定义一个方法,那么就可以了,参数可以使用OleVariant。
我的一个MTS程序没有调试去来,不知你是否有空?
我在MTS/COM+环境中是可以传递流,为什么你说不?
2.HResult (*)
COM不能传递流。如果你能传递,那么……你太厉害了,你超越了COM