我正在 Access 数据库中构建一个批处理表,以保存用户单击提交按钮(在表单上)后要处理的表单中的操作。
我唯一担心的是 SQL 语句本身将包含文本限定符。当我提交要存储在数据库中的 sql 语句时,我必须将 sql 字符串包装在文本限定符中,并且我想确保在批处理表中执行插入语句时语句限定符不会被转义。
示例:SQL 语句(操作语句)
INSERT INTO tblGrpLoc (gid, txt) VALUES (2, 'Select * From tblInformation')
SQL 语句(批量存储)
INSERT INTO tblBatch(act, sql) VALUES (0, 'INSERT INTO tblGrpLoc (gid, txt) VALUES (2, 'Select * From tblInformation')')
最终,我将遍历 Batch 表并仅执行该字段sql
并更新另一个字段以表示其执行,但我想确保该sql
字段本身与要执行的 sql 语句同质,而不会丢失字符串限定符。
已编辑(2012-08-13 @ 13:42pm CST)
为了让您了解如何在此处合并此嵌套,方法如下:
Public Sub BatchAdd(ByRef db As Database, action As BatchAction, sql As String)
Dim bsql As String
Dim bact As Integer: bact = CInt(action)
bsql = SQLInsert("tblBatchTransaction", _
"action, txt", _
(CStr(bact) & ",'" & sql & "'"))
db.Execute bsql
End Sub
SLQInsert 只是构建一个 SQL 插入语句。不,您可以看到我可能会出现字符串限定符问题。