Windows 10/IE 11 上的 Javascript HTA ADODB 连接

标签 javascript adodb hta

我有一个长期存在的 HTA,它在运行 IE 10 的 Windows 8 计算机上完美运行。

自从升级到 Windows 10/IE 11 以来,应用程序现在可以不再使用相同的代码库与 SQL 数据库通信。

以前这段代码运行得很好:

var connectionstring = "Driver={SQL Server Native Client 10.0};Server=xxxxx;Database=x;Uid=xxxxx;Pwd=xxxxxx";

this.getDataFromDB = function (SQLQuery, returnType)
{
    if (Logger) Logger.StartLogItem(Logger.newLoggerMessage("DB COMS - CONFIG DATABASE", "Getting data from config DB : SQL Command Sent -  " + SQLQuery, LogEntryType.Task));
    var conn = new ActiveXObject("ADODB.Connection");
    conn.ConnectionTimeout = 20;
    conn.CommandTimeout = 20;
    var rs = new ActiveXObject("ADODB.Recordset");

    try
    {
        conn.Open(connectionstring);
        rs.Open(SQLQuery, conn);
        var respObj = { data: [] };
        while (!rs.EOF)
        {
            switch (returnType)

但是现在它到达 conn.Open(connectionstring) 然后失败:

从数据库提取数据时出错: [Microsoft][SQL Server Native Client 10.0]命名管道提供程序:无法打开与 SQL Server [53] 的连接。

解决这个问题的唯一方法是在控制面板的 ODBC 数据源管理中手动创建 DSN,然后使用连接字符串:

var connectionstring = "DSN=FCMADMIN;Uid=xxxxx;Pwd=xxxxx;"

然后一切又恢复正常了!

那么为什么我不能使用旧的连接字符串。我不确定这是 Windows 10 问题还是 IE 11 问题。问题是 - 这个应用程序已推广到 1000 个工作站,因此并不想让他们在每台计算机上创建 ODBC 用户数据源。

最佳答案

抱歉 - 愚蠢的男生错误。 同时,服务器名称更改为包含实例,即变为 SQLServer\Instance1

当将其输入连接字符串时,我忘记转义斜杠!!!!!!

当我将其更改为 SQLServer\Instance1 时,一切都开始工作了!

关于Windows 10/IE 11 上的 Javascript HTA ADODB 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38243850/

相关文章:

excel - 使用 Excel,尝试从外部 HTA 中查找真正使用过的范围

vbscript - 读取和写入 INI 文件

javascript - JQuery - 单击时将背景图像替换为另一个背景图像

javascript - 为什么 jquery UI 可拖动不适用于 getElementById

javascript - 如何访问 vue.js 中 setInterval 函数外部的变量?

excel - .csv 的 ADODB 连接字符串

mysql - Null VBA Excel 的使用无效

javascript - CKEDITOR:文本未突出显示时禁用插件按钮

sql - ADODB SQL 语法 - 使用 Excel 工作表 Access 表内连接

VBScript 出现 HTA 和类型不匹配错误的奇怪问题