如何在嵌入式Firebird数据库连接上使用事件?

3
如果我连接到一个嵌入式的Firebird数据库,并创建一个远程事件,我会在构造函数上得到 System.NotSupportedException: Specified method is not supported. 的错误提示。
_fbRemoteEvent = new FbRemoteEvent(_fbConnection);  //_fbConnection is valid and Opened

查看调用堆栈的源代码,它会引导到FesDatabase.cs。

RemoteEvent IDatabase.CreateEvent()
{
    throw new NotSupportedException();
}

我使用嵌入式版本进行自动化测试...是否有办法在测试上下文中从嵌入式数据库获取事件?

2个回答

1

Firebird Embedded支持事件,但是使用Firebird Embedded时,Firebird ado.net提供程序(FirebirdSql.Data.FirebirdClient)不实现对事件的支持。


-1

遗憾的是,在 Firebird 的嵌入模式中不支持事件,它们只能在网络上运行。这是因为设置事件处理程序的整个协议涉及建立第二个与 FB 服务器的网络连接 -- 在嵌入模式下根本不使用网络连接,因此这种方法行不通。


谢谢Gab。知道这个限制的原因很好。我将使用一个普通服务器进行自动化测试,需要稍微更多的干扰设置。 - Luc Jeanniard
1
事件在Firebird Embedded上可以工作,但是可能在Firebird .NET提供程序中没有实现(或者在发布此帖子时尚未实现)。 - Mark Rotteveel
@MarkRotteveel 有没有在Firebird Embedded上使用事件的可行实现?据我回忆,事件处理握手需要网络连接,而嵌入式模式下(我认为)定义上是不可用的。 - Gabriel Reid
@gab 我刚刚修复了Jaybird(JDBC驱动程序)中的一个错误,这个错误导致它无法工作;现在已经没有问题了。另请参阅http://sourceforge.net/mailarchive/forum.php?thread_name=4F82CF73.5070803%40lawinegevaar.nl&forum_name=firebird-devel - Mark Rotteveel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接