我们有一个旧版VB6应用程序,在其中我们已经调用了很长时间了,包括显示.net程序集中的WinForms。但是现在我还需要从.net程序集,从WinForm到VB6应用程序引发事件。
当使用显示表单时,此方法有效(触发VB6事件).Show。但是,当表单显示为时.ShowDialog,该事件不会在VB6应用中触发。而且,当然,我需要模态显示表单,这就是为什么.ShowDialog要使用它。
码:
创建一个.net类库,启用com互操作。当我在计算机上创建它时,它被命名为ClassLibrary2。
Option Strict On
Option Explicit On
<ComClass(Class1.ClassId, Class1.InterfaceId, Class1.EventsId)>
Public Class Class1
#Region "COM GUIDs"
' These GUIDs provide the COM identity for this class
' and its COM interfaces. If you change them, existing
' clients will no longer be able to access the class.
Public Const ClassId As String = "3E245773-5A31-4B09-A26B-19D2E593395E"
Public Const InterfaceId As String = "5A184A72-AE12-4564-83FB-15EEAC8C9A13"
Public Const EventsId As String = "75C80E42-6B66-4B43-A1FA-BD62C95D117E"
#End Region
Public …Run Code Online (Sandbox Code Playgroud) 我在数据库服务器上使用Oracle,从XP客户端使用VB6和ADO.在一个事务中,我将一个记录到父表,该表具有触发器和序列创造了独特的recordId,那么的recordId用于关系到子表插入到子表的可变数目.为了提高性能,这是从我的客户端应用程序发送的一个执行命令.例如(简化示例):
声明Recordid int;
开始
插入ParentTable(字段列表)值(数据列表);
从Dual中选择ParentTableSequence.currVal到Recordid;
插入到ChildTable(RecordID,字段列表)值(Recordid,数据列表);
插入到ChildTable(RecordID,字段列表)值(Recordid,数据列表);
...多个可变数量的附加ChildTable插入
提交;
结束;
这工作正常.我的问题是:我还需要向客户端返回为插入创建的Recordid.在SQL Server上,我可以在提交之后向Scope_Identity()添加类似于将记录集返回到具有唯一ID的客户端.
但是我如何为Oracle做类似的事情(不必是记录集,我只需要那个长整数值)?我根据搜索网络的结果尝试了很多东西,但未能找到解决方案.
谢谢!
MarkL