在Windows XP和Windows7操作系統上,Delphi 7中的TADOQuery
組件出現奇怪的行爲。以下問題在Windows7操作系統上運行良好,但在XP操作系統上出現錯誤。執行SQL第二次時出現TADOQuery錯誤
我來解釋一下這個場景,我有一個TADOConnection組件和兩個TADOQuery組件。該TADOConnection分具有用於ConnectionString
屬性的值如下:
ADOConnection1.ConnectionString := 'Provider = MSDASQL.1; Password = My Password; User ID = My User ID; Data Source = My Data Source';
我已經申請了角色/授予權限用戶ID /密碼對此我登錄到應用程序。
我已經使用Connection
屬性將TADOConnection組件連接到TADOQuery組件。
當我執行第一個sql時,它可以正常工作,沒有任何錯誤,但是當我執行第二個sql時,我在Windows XP操作系統上遇到了以下錯誤。
[微軟] [SQL Server本機客戶端10.0] [SQL Server]將SELECT 權限被拒絕的對象上 '我的表名' 數據庫 '我 數據庫名稱',架構 'DBO'
相同的代碼,如果我在Windows7操作系統上執行它工作正常,沒有任何錯誤。
有人能把重點放在什麼可能會失蹤或可能是什麼問題?
我添加了「Persist Security Info = False;」一個連接字符串如下:
ADOConnection1.ConnectionString := 'Provider = MSDASQL.1; Persist Security Info = False; Password = My Password; User ID = My User ID; Data Source = My Data Source';
現在,每當我用TADOQuery組件執行的SQL,我需要寫每一次下面的語句,即使我已經設置TADOQuery的「連接」屬性開頭,我仍然需要在執行sql時設置這個屬性。
ADOQuery1.Connection := ADOConnection1;
但正如我所說,在Windows7中,沒有必要改變TADOConnection成分的「的ConnectionString」屬性,無需設置任何TADOQuery組件的「連接」屬性。
有人可以告訴究竟要做什麼?
如果您的應用程序太大,需要編碼更改的地方很多,有人會同意嗎?那麼測試工作呢?在所有的地方都要進行測試,對嗎?
所以,我仍在尋找適當的解決方案。這個問題仍然沒有答案。
如果有人有任何線索或暗示或適當的解決方案,將不勝感激。
嗨大軟,我真的非常感謝您的回覆,這就是我猜測可能肯定缺少的是「ConnectionString」屬性,它似乎是問題所在。我可以在星期一測試這個解決方案,所以如果我得到解決方案,你將成爲第一個得到通知的人。感謝你並帶着最好的問候。 Vishal –
嗨da-soft,我試着用你建議的連接字符串,但它仍然給出了同樣的錯誤。任何其他線索?最好的祝福。維沙爾 –