ADODB.Recordset错误'800a0bb9'

时间:2015-06-12 01:26:28

标签: web-applications asp-classic

我正在学习经典的ASP,似乎无法使我的第一个文件正常工作。我正在尝试将html表单链接到.accdb。有什么建议吗?

'Declare variables
dim formdate, jsia, jsga, yvcia, yvgia, query, errorFlag

'Collect data from form
formdate = Request.Form("date")
jsia = Request.Form("jsia")
jsga = Request.Form("jsga")
yvcia = Request.Form("yvcia")
yvcga = Request.Form("yvcga")

'SQL for Query
query = "INSERT INTO ATTENDANCE VALUES (formdate, jsia, jsga, yvcia, yvcga);"

'Create and open connection to database
'On Error Resume Next
set Connect = Server.CreateObject("ADODB.Connection")
Connect.Provider = "Microsoft.ACE.OLEDB.12.0"
Connect.Open(Server.Mappath("database.accdb"))

'Create recordset
set rs = Server.CreateObject("ADODB.recordset")

'Open recordset run query in database 
rs.Open query, Connect, adOpenStatic, adOpenOptimistic

'Display message
Response.Write("<h1>Your form has been received. Thank you.</h1>")

'Close recordset and database connection
rs.close
Connect.close

3 个答案:

答案 0 :(得分:0)

您的LockTypeEnum值似乎有误。

更改此行...

rs.Open query, Connect, adOpenStatic, adOpenOptimistic

...到...

rs.Open query, Connect, adOpenStatic, adLockOptimistic

这可能会解决问题。

答案 1 :(得分:0)

除了我在其他答案中的同名建议外,您还需要将查询更改为

query = "INSERT INTO ATTENDANCE VALUES ('"&formdate&"', '"&jsia&"', '"&jsga&"', '"&yvcia&"', '"&yvcga&"');"

单引号是因为你需要在SQL查询中将字符串和日期时间值放在单引号中,而且&符号和双引号都在那里,因为你需要做什么才能将变量连接到插入中查询。

一旦你开始工作,我强烈建议你研究如何保护你的插件免受SQL注入攻击。

我还建议您按照此页面中的步骤启用友好的错误消息 - 它们可以帮助您确定脚本中的内容无效。

http://www.chestysoft.com/asp-error-messages.asp

答案 2 :(得分:0)

感谢您的回复,我实际上遇到了很多错误。

我没有为我的对象声明变量(rs和Connect)。

另外,我没有将我的页面链接到我的.inc文件所在的公共文件夹。

再次感谢!