关于ado的事件(100分)

  • 主题发起人 sunmuhua
  • 开始时间
S

sunmuhua

Unregistered / Unconfirmed
GUEST, unregistred user!
我用原生的ado做了一个项目。
就是createobject('adodb.connection')。。。这种方式。
整个项目全是这样实现的,但有个问题总是困扰了我很久很久,那就是ado的事件怎么实现。
以前在项目进行时,我在这里提出过这个问题,但一直没有答案。现在项目完成了,我执着
希望能够解决心中的疑问。
问题一:com有事件吗?
问题二:TADODataSet的AfterRefresh事件用原生的ado如何实现?
 
你可以去看看 VB 文档,其中有这一类对象事件的处理。
 
1:com当然有事件机制了
2:原生ado必须实现一个接收类用来接服务端的事件(其实是然服务端调用)
该接受类必须实现IDispatch接口,,服务端主要是调用该接口的Invoke方法,
而你客户端的对象的事件就可以写在Invoke方法中如:
function TEventSink.Invoke(DispID: Integer; const IID: TGUID;
LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
ArgErr: Pointer): HResult;
var
V: OleVariant;
begin
Result := S_OK;
case DispID of
1:
begin
V := OleVariant(TDispParams(Params).rgvarg^[0]);
Form1.onbeforeInsert;
end;
2: Form1.onAfterRefresh;
end;
end;
 
顶部