目前正在与甲骨文合作,但也需要针对MS SQL的解决方案.

我有一个允许用户生成将在数据库上执行的SQL的GUI.这可能需要很长时间,具体取决于它们生成的搜索.我希望GUI/应用程序在此搜索期间响应,并且我希望用户能够取消搜索.

我正在使用后台工作线程.

我的问题是,当用户取消搜索时,我无法中断对数据库的调用.它一直等到完成,然后就可以轮询"CancelationPending"属性.这不仅浪费了数据库上的资源,还给我的代码带来了问题.

如果用户在一个很长的查询上点击"搜索",然后点击"取消",然后再次点击"搜索"-第一次搜索仍在数据库中进行.当后台工作人员再次点击搜索时,他们仍然很忙.我解决这个问题的唯一办法就是做一个新的后台工作人员.

这似乎是一种非常丑陋的做事方式.数据库继续工作,我正在创建后台工作进程的新实例……当我真的想停止数据库调用并重用同一个工作进程时.

我怎么才能做到这一点呢?

推荐答案

我认为这是不可能的.以下是Oracle网站上关于此主题的讨论链接:

Database相关问答推荐

找不到复制副本集

是否可以同时从 RocksDB 读取?

如何让 Google Drive Electron 表格像 MySQL 数据库一样工作吗?

如何打印出 sequelize 实例的表名?

即使使用列入白名单的 IP,也无法连接到 Azure SQL 数据库

多少个外键才算太多?

操作错误:FATAL: database "django" does not exist

设计用于存储多人游戏的各种要求和统计数据的表格

关系数据库如何在幕后工作?

为什么String or Binary data would be truncated不是更具描述性的错误?

用于获取存储在单个表中的 n 级父子关系的 Postgresql 查询

数据库表中的索引有什么缺点?

在 SQL Server 中,如何以类似于 Oracle 的SELECT FOR UPDATE WAIT的方式锁定单行?

如何在实体-属性-值设计中处理不同的数据类型(例如,具有多列的单个表或每种数据类型的多个表)?

游戏中使用什么样的数据库?

ORM 还是Vietnam of Computer Science吗?

为什么用 varbinary 而不是 varchar

单元测试数据库

C# IEnumerator/yield struct 可能不好?

列的 SQL Server 2008 千位分隔符