Javascript 行var connection=newActiveXObject(“ADODB.connection”)是什么意思;我的意思是为什么它不起作用?

Javascript 行var connection=newActiveXObject(“ADODB.connection”)是什么意思;我的意思是为什么它不起作用?,javascript,sql,visual-studio-2010,Javascript,Sql,Visual Studio 2010,我在网上找到了一个代码,那个里有一行代码,我不理解它的意思和作用。而且,这条线也不行。有人能帮忙吗 代码- var connection = new ActiveXObject("ADODB.Connection"); /*the line*/ var connectionstring = "Data Source=srvp7rnd-herm;Initial Catalog=hermes;User ID=hermes;Password=hermes;Provider=SQLOLEDB";

我在网上找到了一个代码,那个里有一行代码,我不理解它的意思和作用。而且,这条线也不行。有人能帮忙吗

代码-

    var connection = new ActiveXObject("ADODB.Connection"); /*the line*/
var connectionstring = "Data Source=srvp7rnd-herm;Initial Catalog=hermes;User ID=hermes;Password=hermes;Provider=SQLOLEDB";
connection.Open(connectionstring);

/* JavaScript obect to access a SQL query's results */
var rs = new ActiveXObject("ADODB.Recordset");

/* Getting the current MAX(id) from the database */
rs.Open("SELECT MAX(id) FROM Screen_Template", connection);
rs.MoveFirst;
var maxID = rs.Fields.Item(0);
maxID = maxID + 1;

/* TODO: Get the last UID */
var sql = "INSERT INTO Screen_Template(template_name, OpCo, env, template_xml, language, id, title, role, UID) VALUES (" + templateName + "," + opco + "," + env + "," + "<hello>hello</hello>" + ",eng," + maxID + ",Hermes SMS message composer," + "manag, 10)";
alert(sql);
rs.Open(sql, connection);

/* Closing the connections */
rs.close;
connection.close;

您正在查看的代码要么是javascript,要么是Microsoft风格的。代码可以是Jscript中的任意一个服务器端,这在这里是一个选项,尽管很不寻常——VB脚本中编码最多的服务器端,但是,考虑到页面中间有一个警报,它很可能是针对浏览器上的客户端的

台词

var connection = new ActiveXObject("ADODB.Connection");

尝试创建一个活动的X组件,即组件对象模型,或分别创建ADODB.Connection和ADODB.Recordset的COM,然后使用它们将数据插入数据库。您可以获得对的引用,尽管大多数引用不是在VB中:

下面列出了一些可能的问题:

该代码将只在IE浏览器中运行 您可能需要下载并安装COM组件-ADO通过MDAC安装- 你可能需要把IE作为 您可能需要打开各种IE ActiveX控件,可以安全地编写脚本等 如果在浏览器上启用脚本调试,您将获得有关实际问题的更多信息

我想我需要指出另外几个主要问题:

连接的sql字符串很容易受到sql注入攻击,尽管显然任何查看页面源代码的人都可以对数据库执行任何他们喜欢的操作—这里的解决方案是参数化。 选择MaxID、递增和插入不是并发安全的-这里的解决方案是使用标识或GUID
然而,所有这些都表明,这是过时的技术,是一场安全噩梦,在架构上完全是错误的IMO-你是否可以说服你的学校使用更现代的技术堆栈重新设计代码?很抱歉带来了坏消息

您正在查看的代码要么是javascript,要么是Microsoft风格的。代码可以是Jscript中的任意一个服务器端,这在这里是一个选项,尽管很不寻常——VB脚本中编码最多的服务器端,但是,考虑到页面中间有一个警报,它很可能是针对浏览器上的客户端的

台词

var connection = new ActiveXObject("ADODB.Connection");

尝试创建一个活动的X组件,即组件对象模型,或分别创建ADODB.Connection和ADODB.Recordset的COM,然后使用它们将数据插入数据库。您可以获得对的引用,尽管大多数引用不是在VB中:

下面列出了一些可能的问题:

该代码将只在IE浏览器中运行 您可能需要下载并安装COM组件-ADO通过MDAC安装- 你可能需要把IE作为 您可能需要打开各种IE ActiveX控件,可以安全地编写脚本等 如果在浏览器上启用脚本调试,您将获得有关实际问题的更多信息

我想我需要指出另外几个主要问题:

连接的sql字符串很容易受到sql注入攻击,尽管显然任何查看页面源代码的人都可以对数据库执行任何他们喜欢的操作—这里的解决方案是参数化。 选择MaxID、递增和插入不是并发安全的-这里的解决方案是使用标识或GUID
然而,所有这些都表明,这是过时的技术,是一场安全噩梦,在架构上完全是错误的IMO-你是否可以说服你的学校使用更现代的技术堆栈重新设计代码?抱歉成为坏消息的传播者

为什么要更新客户端中的SQL…yikes.那么我该怎么办?我需要在javascript函数中使用sql。。。你知道怎么做吗?想想看,如果你在浏览器中使用SQL,你就给了任何人更改数据库的自由!放下桌子!SQL应该在服务器上完成,而不是客户端。这是scholl的工作!!!为什么要更新客户端中的SQL…yikes.那么我该怎么做?我需要在javascript函数中使用sql。。。你知道怎么做吗?想想看,如果你在浏览器中使用SQL,你就给了任何人更改数据库的自由!放下桌子!SQL应该在服务器上完成,而不是客户端。这是scholl的工作!!!