这是一个工作项目,但我无法使用"插入"对于MS Access DB。
我已经尝试了以下3个脚本并且都返回了不同的错误,当然我希望我的初始问题得到解决,但我也很想知道为什么他们都失败了,以及有什么不同/最佳实践。这些脚本都是我在搜索时找到的经过修改的脚本:
Const adOpenStatic = 3
Const adLockOptimistic = 3
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
objConnection.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source = C:\Users\itsupport\Documents\test.mdb"
objRecordSet.Open _
"INSERT INTO Users" & _
"(Id, Name, " & _
"CertificateName, Password) " & _
"VALUES ('michaelr', 'Michael Raymond', " & _
"'NULL', '888')", _
objConnection, adOpenStatic, _
adLockOptimistic
INSERT INTO语句中的语法错误
Set objConn = CreateObject("ADODB.Connection")
Dim rsData
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\Users\itsupport\Documents\test.mdb'"
objConn.Open strConnection
strInsertSQL = "INSERT INTO Users (iD,Name,CertificateName,Password) VALUES('" & _
michaelr & "','" & Michael Jenkins & "','" & - & "','" & 888 & "', objConnection, adOpenStatic, adLockOptimistic);"
Set rsData = objConn.Execute(strInsertSQL)
预期声明结束
sql1="INSERT INTO Users VALUES ('michaelr','Michael Jenkins',NULL,'888')"
constring="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\Users\itsupport\Documents\test.mdb;
User Id=admin;Password=;"
set con=createobject("adodb.connection")
con.open constring
con.execute sql1
con.close
未终止的字符串常量
答案 0 :(得分:2)
<强> SCRIPT1:强>
INSERT INTO Users(Id, Name, CertificateName, Password) VALUES ('michaelr', 'Michael Raymond', 'NULL', '888')
引用NULL并使用保留字&#34;密码&#34; (见here)脚本2:
连接&#39;工作&#39;如果你加倍引用michaelr,迈克尔詹金斯和 - (无论那意味着什么)
VBScript中的字符串连接很乱;应该避免不必要的连接(如脚本3)
脚本3:
一般情况下:
如果使用参数化查询,很多构建(并安全使用)SQL语句的问题就会消失
VBScript中的字符串连接很乱;使用数组和连接,专用的引用函数和占位符的替换(这里没有变量插值/扩展)将产生更好的代码