2011-01-26 8 views
0

アプリケーションでSqlite関数を登録し、別のアプリケーションからトリガすることは可能ですか?C#アプリケーション間のSqlite関数

例:

  • IはMyFunctionをを(呼び出しトリガーを作成)更新後
  • アプリケーションAはMyFunctionを
  • アプリケーションBが発射更新を行うと呼ばれる関数を登録するSQLiteFunction.Registerを使用トリガー

アプリケーションBが更新を行うと、「関数MyFunctionが定義されていません」というエラーが表示されます。 関数を "グローバル"スコープで登録する方法はありますか?

PS:最終的な目的は、トリガー

を使用してアプリケーション間でイベントをシミュレートするあなただけの複数のアプリケーション間でイベント通知を渡すためにしようとしている場合は、SQLiteのをあなた

答えて

1

ありがとうということである - そのことについてや、任意のデータベーステーブル - そのジョブの間違ったツールです。

操作が多少非同期の場合は、名前を付けたEventWaitHandleを使用して、関心のあることをしたことを他のプロセスに通知したり、関連するデータがある場合は通知とそのデータをMessageQueue他のアプリケーションがピックアップする。

そうでない場合、あなたは@fra

+0

など、ソケット、名前付きパイプ、リモーティング、WCFのような本当のプロセス間通信メカニズムを使用する必要があります: 'MessageQueue'は、その後、あなたが必要な正確に何です。彼らは永続的にすることができますので、たとえアプリケーションがダウンしても何も失われません。それが関連している場合は、取引に参加することもできます。 –

+0

ありがとうございます。 すでに「メッセージディスパッチャ」のようなものがありますが、ディスパッチャアプリケーションがクラッシュしてすべてのイベントが失われる可能性があります。 これは、sqliteを使用してアプリケーションを「ステートレス」にし、データベースにイベントを保存したいという理由です。定期的にデータベースに問い合わせて、イベントがなくなったかどうかを確認することができます。 問題は、これらのアプリケーションがリモートシステム上で動作するため、多くの制御メカニズムが必要なことです。 Sqliteトリガソリューションは、Sqliteの可能性を理解するための「学術的」なソリューションですが、実際には最終システムで使用する予定はありません。 – fra

関連する問題