以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  内部表update问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174910)

--  作者:z769036165
--  发布时间:2022/2/11 8:29:00
--  内部表update问题
U PDATE {内部值} SET value = 11 where [name] = \'12\'

{内部值}为内部表,使用S ELECT * from {内部值}显示没问题,但是用update就报错,提示:
System.Data.OleDb.OleDbException (0x80040E14): U PDATE 语句的语法错误。
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 Foxtable.SQLCommand.ExecuteNonQuery()

把value也加上[]后,就不报错了,u pdate {内部值} se t [value] = 11 where [name] = \'12\'
但是这之前没加[]用了好久,都没问题,近期才出现错误,这是啥情况?版本没更新过。

[此贴子已经被作者于2022/2/11 8:34:00编辑过]

--  作者:有点蓝
--  发布时间:2022/2/11 8:40:00
--  
value属于Sql的关键字,作为列名应该括起来,以前不出错只能说是运气好,不代表这个做法是正确的。