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 企业版上通过。 希望能对你有所帮助。谢谢!。