sql >> データベース >  >> RDS >> Sqlserver

Windows フォームからストアド プロシージャを非同期的に実行してから切断しますか?

    これは、実際には非常に一般的なシナリオです。クライアントが離れて切断される可能性があり、これまでに達成した作業が失われる可能性があるため、クライアントベースでは何もできません。解決策は、Service Broker Activation を使用することです。 :データベースにサービスを作成し、アクティブ化されたプロシージャをアタッチします。アプリケーション (または ASP ページ) で、サービスにメッセージを送信し、手順に必要なパラメーターを埋め込みます。アプリケーションがコミットされると、メッセージによってサービス プロシージャがアクティブになります。サービス プロシージャはメッセージからパラメータを読み取り、プロシージャを呼び出します。アクティブ化は元の接続とは無関係のサーバー スレッドで行われるため、これは信頼できます。実際、サーバーは その間 シャットダウンして再起動することさえできます 手順が実行され、作業がロールバックされてから再開されます。これは、起動メッセージが再起動後にサービス手順を再度トリガーするためです。

    更新

    これを行う方法の詳細とサンプル コードをブログに公開しました:非同期プロシージャ実行 .



    1. SQLServerで数値を含まない値を取得する方法

    2. MySQLはNULL値にインデックスを付けますか?

    3. where句なしで更新

    4. ajaxフォームを送信し、同じページにとどまり、機能しない