我有通過ActiveX服務器將MS Access表格中的數據讀取到MATLAB,通過ActiveX服務器讀取數據的代碼(以下)。現在我想使用相同的代碼從連接到SQL服務器的訪問鏈接的表中讀取數據,但我得到一個錯誤:如何通過MS Access前端從MATLAB中的SQL Server打開記錄集
Invoke Error, Dispatch Exception: Source: DAO.Database Description: You must use the dbSeeChanges option with OpenRecordset when accessing a SQL Server table that has an IDENTITY column. Help File: jeterr40.chm Help Context ID: 4c5966
所以,問題的表有標識列,我需要用OpenRecordset指定'dbSeeChanges'選項。我的問題是,我該如何指定這個選項?我可以在網上看到很多關於如何在VBA中實現的例子,但沒有一個會與MATLAB兼容。這裏是我的代碼:
% Setup environment
app = 'Access.Application';
DBAddress = 'O:\testData.accdb';
% Load an Activex server for Access
try
svr = actxGetRunningServer(app);
catch err
svr = actxserver(app);
end
% Load the required database file
accessDB = svr.DBEngine.OpenDatabase(DBAddress);
% Query the database for the required records
sql_querry = 'SELECT * FROM dbo_PatientMeasurementResults;';
rs = accessDB.OpenRecordset(sql_querry);
我已經嘗試了很明顯,但是這並不工作:
rs = accessDB.OpenRecordset(sql_querry,'dbSeeChanges');
'dbSeeChanges'是一個數字('CONST dbSeeChanges = 512(H200)')。你有沒有嘗試過'rs = accessDB.OpenRecordset(sql_querry,dbSeeChanges);'? (或使用常量512) – Andre
謝謝@Andre。 'dbSeeChanges = 512'給了我一個'Invoke Error(Description:Invalid argument。)'錯誤,但有趣的是''dbSeeChanges = 4'解決了這個問題。然而,還沒有達到爲什麼那個工作的底部呢! – 4Oh4