【问题标题】:CLASSIC ASP INSERT statement with parameters带参数的 CLASSIC ASP INSERT 语句
【发布时间】:2012-11-23 21:56:01
【问题描述】:

我必须维护一个 ASP 3.0 网站...

我想保护 sql 语句。

我可以用这段代码保护的选择语句:

set cmd = Server.createObject("adodb.command")

cmd.commandText = "select from Foo where id=?"

set cmd.activeConnection = someConnection

set rs = cmd.execute(rows_affected, Array(42))

但是当我用更新或插入语句替换选择时,我无法使其工作。

谁能帮帮我?

我正在尝试的代码是:

sqlS1 = "INSERT into users (nome2) values (?)"

arParams = 1

set cmd = createobject("ADODB.Command") 

cmd.CommandText = sqlS1 

cmd.ActiveConnection = session("bdc")

cmd.Execute(,arParams,adExecuteNoRecords)

【问题讨论】:

  • 您不能将记录集(set rs)设置为“动作”查询,只需执行插入和更新。

标签: asp-classic ado


【解决方案1】:

如果你去掉括号,它应该会运行:

cmd.Execute , arParams, adExecuteNoRecords

或者

cmd.Execute recs, arParams, adExecuteNoRecords
Response.write recs & " updated"

【讨论】:

  • 非常感谢!!!!我快疯了......过去四个小时只是因为括号!
【解决方案2】:

只是为了添加到 Remou 的答案,请注意,如果您愿意(例如,如果您习惯于 C/Java 类型语言),可以使用括号,方法是在子调用前面加上 Call 关键字:

cmd.Execute recs, arParams, adExecuteNoRecords

或者

Call cmd.Execute(recs, arParams, adExecuteNoRecords)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多