关于ADOQuery的UpdateBatch的一个问题

toto_cat 2014-04-04 10:21:21
有一个项目在做,需要使用多台SQL Server。出现的问题可以简化如下:

1. 两台SQL Server A和B,其中,在A上通过Linked Server方式连接到B。

2. 在Server A上,通过SQL Server的Query Analyzer执行如下SQL语句,没有问题。
UPDATE B.TESTDB.dbo.TESTTB SET T2='Y' WHERE T1=1

3. 创建一个Delphi程序,添加如下控件:
ADOConnection1:创建连接到A Server
ADOQuery1: 写入SQL语句:SELECT * FROM B.TESTDB.dbo.TESTTB
属性设置:
CacheSize - 1
CursorLocation - clUseClient
CursorType - ctStatic
LockType - ltBatchOptimistic
Datasource1:连接ADOQuery1
DBGrid1: 连接Datasource
Button1:执行如下语句
ADOQuery1.DisableControls;
ADOQuery1.UpdateBatch;
ADOQuery1.Close;
ADOQuery1.Open;
ADOQuery1.EnableControls;

4. 运行程序,然后在DBGrid中修改任意一个数据,点击Button1保存修改时,程序报下面的错误:
Insufficient base table information for updating or refreshing.

请问,是否有人遇到过同样的问题,该如何解决呢?
...全文
232 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy-88 2014-04-07
  • 打赏
  • 举报
回复
很少用 UpdateBatch 一直用SQL 语句,调示下 看看哪个出错,
孤独de猫 2014-04-05
  • 打赏
  • 举报
回复
Ado并不知道,你表之间的关系。建议还是用ADO来执行SQL语句。

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧