有没有一种方法使用DBMS_ALERT通知数据库更改的WinForm应用程序 [英] Is there a way to use DBMS_Alert to notify a Winform application of a database change

查看:246
本文介绍了有没有一种方法使用DBMS_ALERT通知数据库更改的WinForm应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获得一个winform应用程序,刷新使用Oracle 10g数据库更改的嵌入式浏览器。唯一的问题是,我不能使用数据库更改通知。我很好奇,如果任何人有使用内置的包装DBMS_ALERT的一种方式,并已经取得了一些行动发生在一个winform应用程序对数据库的变化。

I am trying to get a winform app to refresh an embedded browser on a database change using Oracle 10g. The only problem is that I am not allowed to use Database Change Notification. I am curious if anyone has a way of using the built-in package of DBMS_Alert and have had some action happen to a winform app on a database change.

谢谢,安德鲁

推荐答案

我不得不做这样为它工作。它拥有的窗口锁,直到发生的事件,我知道,但至少它的工作原理与DBMS_ALERT。我设置code定时器里:

I had to do it like this for it to work. It holds the window in lock until an event occurs i know, but at least it works with DBMS_Alert. I set this code inside a timer:

为OracleConnection康恩=新的OracleConnection(的ConnectionString);
conn.Open();
的OracleCommand CMD =:新的OracleCommand(声明\ N+
                                      消息VARCHAR2(1800):= NULL; \ N+
                                                    状态整数; \ N+
                                                  BEGIN \ N+
                                                    DBMS_ALERT.REGISTER(ALERT); \ N+
                                                    DBMS_ALERT.WAITONE(ALERT,消息状态); \ N+
                                                    DBMS_ALERT.REMOVE(ALERT); \ N+
                                                  END;,conn);在
            cmd.ExecuteNonQuery();
            wbMain.Refresh();
            conn.Dispose();

OracleConnection conn = new OracleConnection(ConnectionString);
conn.Open();
OracleCommand cmd =
new OracleCommand("DECLARE\n" +
"MESSAGE VARCHAR2(1800) := null;\n" +
"STATUS INTEGER;\n" +
"BEGIN\n" +
"DBMS_ALERT.REGISTER('ALERT');\n" +
"DBMS_ALERT.WAITONE('ALERT', MESSAGE, STATUS);\n" +
"DBMS_ALERT.REMOVE('ALERT');\n" +
"END;", conn);
cmd.ExecuteNonQuery();
wbMain.Refresh();
conn.Dispose();

这给了我我需要什么。我不知道是否有更好的方式来做到这一点,但是这是我能想出的唯一解决方案。

This gives me what I need. I don't know if there is a better way to do it, but this is the only solution I could come up with.

这篇关于有没有一种方法使用DBMS_ALERT通知数据库更改的WinForm应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆