Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 具有多个TADOCONNECTION的Bug_Sql Server_Delphi_Ado - Fatal编程技术网

Sql server 具有多个TADOCONNECTION的Bug

Sql server 具有多个TADOCONNECTION的Bug,sql-server,delphi,ado,Sql Server,Delphi,Ado,我已经使用ADO和SQL Server以及到一个数据库的不同连接解决了一个显示表错误。(详情请参阅) 另一个问题出现在尝试删除记录时 代码是这样的 function resettable (tablename, databasename, servername) : Boolean; var aADOQuery : TADOQuery; aADOConnection : TAdoConnection, begin /// Create ADO stuff aADOQuery

我已经使用ADO和SQL Server以及到一个数据库的不同连接解决了一个显示表错误。(详情请参阅)

另一个问题出现在尝试删除记录时

代码是这样的

function resettable (tablename, databasename, servername) : Boolean;
var
  aADOQuery : TADOQuery;
  aADOConnection : TAdoConnection,
begin
  ///  Create ADO stuff 
  aADOQuery := TADOQuery.Create;
  aADOConnection := TAdoConnection.Create;

  ///  connect to DB & Table 
  ....
  ///

  aADOQuery.sql.add('delete * from ' + Tablename;
  aADOQuery.execsql;

  ///   free objects after use  
  ....
end;
当数据库上只有
ADOConnection
时,此代码工作正常。如果任何其他ADO连接进行了某些活动并进行了某些修改,则代码将在“数据库未更新”错误消息出现时失败


如何创建一个在删除记录语句之前进行更新的解决方案???

正如我在前面的问题中所说的。省去所有麻烦,只使用一个连接。是的,这就是全部要点,共享连接以便它了解所有更改。只需创建一个TDatamodule并在表单之间共享它?是的,这正是您需要做的。e、 g.
空表(conn:TADOConnection;aTableName:string)
。或者使用您的DM中心
TADOConnection
将其作为DM方法。在任何情况下,您都需要遵循
重新查询
(或关闭并打开)您的
TDataSet
,以反映对数据库的任何更改。您的第二个TADOConnection实例是否通过第一个实例所做的更改得到通知?。有趣的。。。如果是,告诉我怎么做,我会为你开一个赏金,给你500个代表@用户:看来您的应用程序设计有问题。如果这是一个多用户环境,并且您需要查看来自其他用户的更新(无需重新查询),那么您需要一个多层体系结构,其中一层处理所有数据库更改,它可以将这些更改通知其他客户端……这不是一个bug。正如我们中的一些人在其他问题中告诉您的那样,在您的应用程序中,这是一个糟糕的设计。与其一次又一次地解决这个问题(这本身就是设计拙劣的一个明显标志),不如先花点时间妥善解决它。