win2000server+sqlserver2000查詢分析器select@@version是以下信息MicrosoftSQLServer2000-8.00.818(IntelX86)May :08:15Copyright©1988-2003MicrosoftCorporationStandardEditiononWindowsNT5.0(Build2195:ServicePack4)有時查詢不了,表現是:在查詢分析器里按下運行查詢后就沒反應了,在企業管理器中返行所有行可以,但是查詢時會出現ODBCSQLSERVERDRIVER超時已過期重啟一下又可以了,請問這是什么問題呀,怎么解決?
熱心網友
共有三種類似情況,這三種錯誤信息都是發生在 SQL Server 自帶的客戶端工具中,在應用程序中我們也會遇到類似的錯誤信息,例如: Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Connect())。]Specified SQL server not found。 Microsoft OLE DB Provider for SQL Server (0x80004005) 用戶 ’sa’ 登錄失敗。原因: 未與信任 SQL Server 連接相關聯。 Microsoft OLE DB Provider for ODBC Drivers 錯誤 ’80004005’。 [Microsoft][ODBC SQL Server Driver]超時已過期。 首先,讓我們來了解一下使用 ODBC 和使用 OLE DB 連接 SQL Server 有什么不同之處。 在實際使用中,應用程序創建和使用各種 ADO 對象,ADO 對象框架調用享用的 OLE DB 提供者。為了訪問 SQL Server 數據庫,OLE DB 提供了兩種不同的方法:用于 SQL Server 的 OLE DB 提供者以及用于 ODBC 的 OLE DB 提供者。這兩種不同的方法對應于兩種不同的連接字符串,標準的連接字符串寫法如下所示: 1、使用用于 SQL Server 的 OLE DB 提供者: 使用 SQL Server 身份驗證: oConn。Open "Provider=sqloledb;" & _ "Data Source=myServerName;" & _ "Initial Catalog=myDatabaseName;" & _ "User Id=myUsername;" & _ "Password=myPassword" 使用 Windows 身份驗證(信任連接): oConn。Open "Provider=sqloledb;" & _ "Data Source=myServerName;" & _ "Initial Catalog=myDatabaseName;" & _ "Integrated Security=SSPI" 2、使用用于 ODBC 的 OLE DB 提供者(不使用 ODBC 數據源): 使用 SQL Server 身份驗證: oConn。Open "Driver={SQL Server};" & _ "Server=MyServerName;" & _ "Database=myDatabaseName;" & _ "Uid=myUsername;" & _ "Pwd=myPassword" 使用 Windows 身份驗證(信任連接): oConn。Open "Driver={SQL Server};" & _ "Server=MyServerName;" & _ "Database=myDatabaseName;" & _ "Trusted_Connection=yes" 3、使用用于 ODBC 的 OLE DB 提供者(使用 ODBC 數據源): oConn。Open "DSN=mySystemDSN;" & _ "Uid=myUsername;" & _ "Pwd=myPassword" 如果遇到連接失敗的情況,我們只要按照一中所示的方法,結合程序中的連接字符串進行檢查,基本都能得到解決。另外,還有以下幾個要注意的地方: 1、配置 ODBC 數據源時,點擊"客戶端"配置選項可以讓我們指定連接使用的網絡庫、端口號等屬性; 2、如果遇到連接超時的錯誤,我們可以在程序中修改 Connection 對象的超時設置,再打開該連接。例如: <% Set Conn = Server。CreateObject("ADODB。Connection") DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase" Conn。 Properties("Connect Timeout") = 15 ’以秒為單位 Conn。open DSNtest %> 3、如果遇到查詢超時的錯誤,我們可以在程序中修改 Recordset 對象的超時設置,再打開結果集。例如: Dim cn As New ADODB。Connection Dim rs As ADODB。Recordset 。 。 。 cmd1 = txtQuery。Text Set rs = New ADODB。Recordset rs。Properties("Command Time Out") = 300 ’同樣以秒為單位,如果設置為 0 表示無限制 rs。Open cmd1, cn rs。MoveFirst 。 。 。 上面所有的測試在 Windows 2000 Advanced Server + SQL Server 2000 企業版上通過。 希望能對你有所幫助。謝謝!。