好的,根据错误消息,您会认为这很简单(并且可能是......)。
我在 FoxPro 9.2 数据库中使用 IIF(立即 if)来评估表达式,然后根据表达式的评估方式执行两个操作之一(基本上,如果记录存在,则更新它;如果不存在,则插入它)。
IIF(
((SELECT COUNT(*) FROM tblName
WHERE tblName.Fldname = 'FLDMy' AND tblName.rCode = '000004') > 0),
(UPDATE tblName SET tblName.Desc = 'Me'
WHERE tblName.Fldname = 'FLDMy' AND tblName.rCode = '000004'),
(INSERT INTO tblName(Fldname, rCode, Desc)
VALUES ('FLDMy','000004','Me'))
)
这总是返回错误:“缺少函数名)。” 请注意,所有括号都是匹配的,因此它不会在任何地方丢失“)”。单独运行时,单独的 UPDATE 和 INSERT 片段工作正常,所以我怀疑是表达式(IIF 中的第一条语句)是问题所在。
我正在从 C# 服务执行 SQL,因此我希望能够在对 FoxPro 数据库的一次调用中执行检查和操作。