6

関連:SQLServerの実行プロセスをプログラムでキャンセルするにはどうすればよいですか

基本的にデータベース(SQL Server)内のデータのビューアーであるアプリケーション(Windows、WPF)を作成しました。アプリケーションには編集機能はありません。

このアプリケーションは、ユーザーからの入力に基づいてレコードを検索する機能を提供します。ほとんどの場合、行はキー列によって検索され、かなり高速に実行されます。ただし、テーブルの1つの列は大きなテキストフィールドであり、このフィールドの内容に基づいて行を検索する機能を提供したいと思います。このため、結果のSQLクエリが完了するまでに時間がかかる場合があります。必要に応じて、ユーザーが検索を中止できるように、停止ボタンを提供したいと思います。上に配置したリンクは、Killコマンドを使用してSQLサーバーのspidを強制終了しますが、Entity Framework(4.1)を使用しているため、これが私の状況でどのように機能するかわかりません。

たとえば、次のようなクエリがあるとします。

var docs = from document in context.Documents
           join header in context.Headers
           on document.DocumentID equals header.HeaderID into headerGroup
           from subdoc in headerGroup.DefaultIfEmpty()
           where document.LargeTextColumn.Contains("search term")
           select (...)

foreach (var item in docs)
{
    //Do something with item here
}

foreachステートメントでクエリを繰り返すまでクエリは実際には発生しないので、ユーザーに[クエリの停止]ボタンを提供するにはどうすればよいですか?これは、SQL ServerManagementStudioの停止ボタンに似ています。

これは可能ですか?

4

0 に答える 0