【问题标题】:Connecting to SQL Server from javascript properly, quickly正确、快速地从 javascript 连接到 SQL Server
【发布时间】:2015-11-05 17:11:55
【问题描述】:

我有一个需要对 MS SQL Server 数据库进行两次查询的 Javascript 应用程序。我需要尽可能简单轻松地完成此操作,因为这是一个高速应用程序,数据不断刷新。我已经读到只有一种(不正确的)方法可以直接并且只能通过 IE 来执行(使用 ActiveX),我宁愿使用服务器端语言正确执行它并让它在 Chrome 中工作。我是一名 Java 程序员,但如果可能的话,我宁愿避免从连接到 Java 开始。是否有任何其他框架/服务器端语言可以快速、轻松、轻松地连接到我的数据库?我不希望我的用户需要下载任何软件或调整他们的浏览器,所以我可以添加到包含网页的文件夹中的内容是最佳的。如果您知道一个好的系统,您能否包含一个指向需要下载的任何内容的链接、如何使用它的基本解释——将其限制为我需要进行基本选择查询,以及为什么您认为该系统是最简单的,最快的选择? 谢谢!

【问题讨论】:

  • 简短的回答:你不能在 js 中做到这一点。试试 PHP。
  • 您应该使用带有代码示例的 stackoverflow,了解您目前所尝试的内容,以及错误发生的位置。
  • Alex Tartan,我从未使用过 php,我需要做什么才能将其添加到我的项目中?
  • 我没有代码示例。我的项目是一个工作系统,需要来自数据库的额外数据,我还没有弄清楚如何连接。

标签: javascript sql-server database google-chrome connect


【解决方案1】:

您可能需要用 Python、NodeJs、C# 或 Java 编写一些后端代码来创建 Web API。 Web API 是您的 MS SQL 的包装器,因此您可以应用访问控制和错误处理逻辑。

C# 有用于快速创建Web API 的脚手架项目,但它将使用存在已知性能问题的实体框架。

NodeJs 有一个package for connecting with MS SQL,但您需要编写自定义代码来将它与 Express JS 等 HTTP 服务器包连接起来。

【讨论】:

    【解决方案2】:

    您不能使用 JavaScript 直接查询数据库。即使您找到了 ActiveX 解决方法,也不应该这样做。如果 Web 客户端能够在本地或服务器上直接访问文件系统,那将是一场安全噩梦。

    如果您希望将基于 Web 的客户端连接到后端数据库,则必须使用某种服务器端脚本。如果您已经熟悉 Java,那么为什么不使用用 Java 编写的 CGI 脚本呢?

    【讨论】:

      【解决方案3】:

      忽略所有告诉你这是不可能的答案。你可以用 javascript 来做(但是,因为安全问题,真的不推荐)你不应该直接从客户端浏览器连接到数据库,但是如果你需要/想要这样做,你可以使用ActiveXObject

      var conn = new ActiveXObject("ADODB.Connection"),
          cString="Data Source=yourServer;Initial Catalog=yourCatalog;User ID=yourUserId;Password=yourPass>;Provider=SQLOLEDB";
      
      conn.Open(cString);
      var rs = new ActiveXObject("ADODB.Recordset");
      
      rs.Open("SELECT * FROM table WHERE id = 1", conn);
      rs.MoveFirst
      while(!rs.eof)
      {
         document.write(rs.fields(1));
         rs.movenext;
      }
      
      rs.close;
      conn.close;
      

      在连接字符串中,将所有以your 开头的单词替换为您的实际值。

      【讨论】:

        【解决方案4】:

        无法在 Web 浏览器中通过 JavaScript 连接到 MS SQL 数据库。您需要服务器上的后端代码来为您执行此操作。

        【讨论】:

        • 嗯,节点是 javascript :D
        • @Kritner “通过网页浏览器中的 JavaScript”(强调我的)。
        • 这提供了问题的答案
        • 这是不正确的。尽管如此,不建议做问题想要做的事情。 Internet Explorer 可以使用 ActiveX 通过 BROWSER 访问 SQL。这不是跨浏览器,如果您不使用非常复杂的凭据设置,那么它也是一个巨大的安全噩梦。
        猜你喜欢
        • 2011-08-30
        • 1970-01-01
        • 2016-01-13
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 2016-07-01
        • 2021-02-08
        • 2014-12-25
        相关资源
        最近更新 更多