com 中怎样传递一个TADODAteset参数? ( 积分: 30 )

  • 主题发起人 主题发起人 jxauyhj
  • 开始时间 开始时间
J

jxauyhj

Unregistered / Unconfirmed
GUEST, unregistred user!
在com中的接口下增加方法,该方法的输入参数是TADODATESET,TStringList ,可是在type libary 编辑器中没有这些类型,该怎么办呢
 
在com中的接口下增加方法,该方法的输入参数是TADODATESET,TStringList ,可是在type libary 编辑器中没有这些类型,该怎么办呢
 
将_Recordset传给一个TAdoDataset的RecordSet属性即可。
var
ds:_Recordset;
ads:TAdoDataSet; {可以是放在窗体上的控件}
begin
ds := ExecuteQuery( str )
ads := TAdoDataSet.Create;
adsData.Recordset = dr;
....
这个试试看?
 
不懂,可我在COM的type libary 编辑器中也没有_recordset类型啊,里面都是基本数据类型
 
com里应该不可以传这种具体的类型的吧?一般都是通过OleVariant交换数据包。
 
当成OleVariant;
就是将RecordSet赋值给它!
 
我这个com里有好多的类型,TMap,TAdodateset,TADOConnection,TStringList..那些怎么弄呢?都当成OleVariant吗?
 
Type
TMapObj = Class(TControl)
Private
AMap : TMap;
MesCon : TControl;
ADataSet : TADODataSet;
LocalList : TStringList;
OriStyle : CMapXStyle;
MouseFlag,DataFlag : integer;
Procedure DeleteMapinfoFiles(SysPath : String);
Procedure MouseMoveEvent(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
Public
Constructor Create(AOwner : TMap);Reintroduce;
Destructor Destroy ; override;
Function ListMaps : TStringList;
Procedure InitMap(Flag : integer ;SysPath : String;AStyle : CMapXStyle ;ADataSet : TADODataset);
Procedure InitDataSet(Var ADOConn : TADOConnection);
Procedure SetMouseListening(Flag : integer);
Procedure GetCSLayerData(Proc_str : string);
Procedure Initlayers(SysPath : String );
Procedure SetCSLyrVisible(ISvisible : Boolean);
Procedure SetCSLyrStyle;
procedure SetCSLabelVisibleForCCH(isvisible : boolean);
Procedure SetDTLyrVisible(ISVisible : Boolean);
Procedure SetDTLyrStyle;
Procedure ZoomToLyr(LyrName : String);
Procedure LocateAtPoint(Longitude , Latitude : Real);
Procedure RegMes(Sender : TControl);
Procedure ListeningMouseLocation(List : TStringList);
procedure importbaseMap(FileDir: string);//导入地图
end;
就是把这个TMapObj 封装成com,不知道怎么处理那些com中没有的数据类型
 
TMap用什么类型代替呢 ? OleVariant不行
 
后退
顶部