首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >var connection = new ActiveXObject("ADODB.Connection");这行是什么意思?为什么它不能工作?

var connection = new ActiveXObject("ADODB.Connection");这行是什么意思?为什么它不能工作?
EN

Stack Overflow用户
提问于 2014-04-03 00:15:42
回答 1查看 11.9K关注 0票数 1

我在net上找到了一个代码,那里有一行代码,我不明白它的含义和它是做什么的。此外,线路不起作用。有人能帮上忙吗?

代码-

代码语言:javascript
复制
    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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 16:08:56

你看到的代码要么是javascript,要么是微软风格的jscript。代码可以是ASP-Classic中的任何一个服务器端(Jscript在这里是一个选项,尽管在VB Script中是编码最多的服务器端),但是,考虑到页面中途有一个alert,它很可能是针对浏览器上的客户端的。

台词

代码语言:javascript
复制
var connection = new ActiveXObject("ADODB.Connection");

代码语言:javascript
复制
var rs = new ActiveXObject("ADODB.Recordset");

尝试分别创建ADODB.ConnectionADODB.RecordsetActive X组件(也称为组件对象模型或COM),然后使用它们将数据插入数据库。您可以获得对these here的引用,尽管不是大多数引用都是在VB中:(

下面是一些可能出现的问题的列表:

  • 代码只能在IE浏览器中运行
  • 您可能需要下载并安装COM组件- ADO通过MDAC安装- Download here
  • You可能需要运行IE,因为Administrator
  • You可能需要在IE中打开各种类型的

(ActiveX控件,可安全编写脚本等)

如果您在浏览器上启用脚本调试,您将获得有关实际问题的更多信息。

我想我需要指出其他几个主要问题:

sql

  • 连接的sql字符串很容易受到sql注入攻击(尽管显然任何查看页面源代码的人都可以对数据库做任何他们喜欢的事情)-参数化是增量的解决方案,而插入不是并发安全的-这里的解决方案是使用IDENTITYGUID

然而,话虽如此,这是过时的技术,安全噩梦,并且在架构上完全错误的IMO -也许你可以说服你的学校使用更现代的技术堆栈重新设计代码?(很抱歉成为坏消息的传播者)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22817295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档