有一個專案在做,需要使用多臺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.
請問,是否有人遇到過同樣的問題,該如何解決呢?
uj5u.com熱心網友回復:
Ado并不知道,你表之間的關系。建議還是用ADO來執行SQL陳述句。uj5u.com熱心網友回復:
很少用 UpdateBatch 一直用SQL 陳述句,調示下 看看哪個出錯,轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/111618.html
標籤:數據庫相關
下一篇:delphi服務求助
