【问题标题】:ADODB.Connection (0x800A0E78)ADODB.Connection (0x800A0E78)
【发布时间】:2011-05-13 07:48:57
【问题描述】:

在 MSSQL 2000 上工作的原始连接字符串:

提供者=SQLOLEDB.1;持久安全信息=真;用户 ID=XXXXXXXX;初始目录=IntranetApps;数据源=MS; Prepare=1的使用程序;自动翻译=真;数据包大小=4096;工作站 ID=数据写入器;密码=XXXXXXXX';

在 MSSQL 2008 上不起作用的新连接字符串:

Provider=SQLNCLI10;Server=PR-NB-CIS011\SQLEXPRESS;Database=IntranetApps;Uid=XXXXXXXX;Pwd=XXXXXXXX;

我尝试将提供程序更改为 SQLNCLI10.1,没有提供程序,...

过去我曾经解决过同样的问题,但见鬼,我现在不记得了。我觉得需要安装一些提供程序,但我现在什么也找不到。

有代码女巫抛出异常:

this.connection = new ActiveXObject("ADODB.Connection");
    this.connection.ConnectionString = this.conString;
    try {
        this.connection.Open;
    }
    catch(e){
        Response.write("Chyba pri pripojeni na db.");
        return false; // pokud dojde k chybe pri pripojovani k databazi, pak fce vraci false, jinak true
    }

【问题讨论】:

  • 您暗示查询错误“对象关闭时不允许操作”但您已添加连接字符串信息...
  • ADODB.Connection (0x800A0E78) 对象关闭时不允许操作。
  • 那么,连接字符串没问题,但有不同的问题吗?
  • 是的。从错误消息看来,您正在尝试访问记录集中的数据,而无需先调用其'.Open() 方法。您能否将您的完整代码和错误消息与错误所在的行号一起发布。
  • 调用 Open 后出现异常:“[DBNETLIB][ConnectionOpen (Connect()).]SQL Server neexistuje nebo byl odepřen přístup.” (我没有找到确切的本地化,它的意思是:“服务器不存在或访问被拒绝。”)编号:-2147467259

标签: sql-server-2008 asp-classic connection-string


【解决方案1】:

如果这确实是连接字符串问题,您应该:

  1. 学习basics
  2. 创建一个长度为零的“whatever.udl”文件并从命令行启动它;然后您可以旋转参数,测试连接,并从剪贴板粘贴连接字符串
  3. 尝试";Data Source=PR-NB-CIS011\SQLEXPRESS;" 而不是";Server=PR-NB-CIS011\SQLEXPRESS;"

【讨论】:

  • 看来它们是同义词。它抛出相同的异常。在 connectionstrings.com 上有时使用服务器,有时使用数据源。
  • @Zdenek:对不起。我包括(3),因为我成功地测试了它并认为它值得一试。您是否尝试过(2)?我发现在 gui 中以交互方式测试假设的可能性很有帮助。您可以尝试其他提供商来测试您的服务器/数据库的可访问性,以确定罪魁祸首。
  • 我使用了whatever.udl连接字符串。谢谢。问题是我不知道如何使用它,但现在可以了。谢谢。
【解决方案2】:

调用 Open 后,出现异常:“[DBNETLIB][ConnectionOpen (Connect()).]SQL Server neexistuje nebo byl odepřen přístup.” (我没有找到确切的本地化,它的意思是:“服务器不存在或访问被拒绝。”)编号:-2147467259

在这种情况下,您的连接字符串中指定的服务器似乎不存在、未运行或您提供的用户帐户没有足够的权限。

要尝试的事情:

1) SQL Express 2008 的连接字符串格式不正确,试试这个:

Server=PR-NB-CIS011\SQLEXPRESS;Database=IntranetApps;User Id=XXXXXXXX;Password=XXXXXXXX;

2) 打开 Management Studio 时,尝试使用连接字符串的用户名和密码进行连接。这有时可以让查找和跟踪权限问题变得更快、更容易。

3) 如果您使用 SQL Server 用户帐户登录,请确保您已启用 SQL Server 和 Windows 身份验证。为此,在 SQL Management Studio 中,右键单击服务器、属性,然后在“安全”选项卡上,选中“SQL Server 和 Windows 身份验证模式”

【讨论】:

  • 我试过了,但我无法与该用户联系。我从我的管理员帐户创建了他,之后我为 IntrenetApps 数据库设置了密码和读/写。如果我尝试浏览服务器以选择 IntranetApps db 并连接,则会出现错误 Login failed for user 'XXXXXXXX' (Microsoft SQL Server, Error: 18456)
  • 查看服务器的事件日志以找出 18456 错误的状态 - 它会为您提供确切的问题。更多信息:blogs.msdn.com/b/sql_protocols/archive/2006/02/21/536201.aspx
猜你喜欢
  • 2010-12-18
  • 2014-01-15
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
相关资源
最近更新 更多