小编Mar*_*rkL的帖子

从ShowDialog表单引发的事件是否不会一直通过com interop引发到调用vb6应用程序?

我们有一个旧版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)

vb.net vb6 com-interop

5
推荐指数
1
解决办法
75
查看次数

在Oracle db上获取插入的记录ID

我在数据库服务器上使用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

vb6 oracle ado

2
推荐指数
1
解决办法
1300
查看次数

标签 统计

vb6 ×2

ado ×1

com-interop ×1

oracle ×1

vb.net ×1