【发布时间】:2020-10-16 13:13:09
【问题描述】:
我正在尝试将一个 Insert into 语句从我的 Access DB 推送到 sql 服务器。这一直有效,但我需要更改我编写列“j”的方式,因为我现在需要区分 true 和 NULL。我不断收到错误“无效使用 null”。我应该如何投射 J 列的部分以避免此错误?
If trow = 0 Then
Sql = "INSERT ALL "
Sql = Sql + Chr(10) + "INTO " + username + "." + dbtable + " VALUES (" + _
"q'[" + Format(rstIn("a"), "dd-mmm-yy") + "]'," + _
"q'[" + Nz(rstIn("b"), "UNKNOWN") + "]'," + _
"" + CStr(Nz(rstIn("c"), "0")) + "," + _
"q'[" + CStr(Nz(rstIn("d"), "UNKNOWN")) + "]'," + _
"" + CStr(Nz(rstIn("f"), "0")) + "," + _
"" + CStr(Nz(rstIn("e"), "0")) + "," + _
"" + CStr(Nz(rstIn("g"), "0")) + "," + _
"" + CStr(Nz(rstIn("h"), "0")) + "," + _
"q'[" + Nz(rstIn("i"), "UNKNOWN") + "]'," + _
"q'[" + Format(rstIn("z"), "dd-mmm-yy") + "]'," + _
"" + (rstIn("j").Value) + "," + _
"" + CStr(Nz(rstIn("k"), "0")) + "," + _
"" + CStr(Nz(rstIn("l"), "0")) + "," + _
"" + CStr(Nz(rstIn("m"), "0")) + _
")"
【问题讨论】:
-
试试
Nz(rstIn("j").Value, vbNullString)。 -
这可能是朝着正确方向迈出的一步。错误从无效 null 移动到类型不匹配。此列是数字,但它确实允许空值
-
对于具有空值的记录,请尝试打印 SQL,以便我们查看生成的确切内容。
-
为什么要在代码中使用混乱的连接和标点符号构建 SQL 查询? SQL Server表是Access数据库中的链接表吗?
q'前缀是什么?