Delphi操作数据库时出错:Too long identifer(>255)
在Delphi中向数据中添加数据,直接使用Insert语句,执行时有时会出现错误 ERROR: [FireDAC][Phys]-323. Too long identifer(>255),有时候不会,说明肯定是数据出现了错误。
问了一下DeepSeek,DeepSeek分析的很有道理,但并没有解决我的问题,不过给了我一些启发,DeepSeek分析出一条:可能是sql语句中包含了参数,并且参数的名称长度超过了255个字符。
后来经过测试发现,如果字符串数据中包含叹号(!),并且叹号后面的字符串长度超过了255(这个255个字符中不能出现叹号,否则不会出这个错误),说明是将叹号后面的内容作为了标识符。
经过查询Delphi的帮助,发现叹号是FireDAC中的宏,并且给出了解决方法,将下面的属性设置为False,禁用到宏的解析即可
DBConnection.ResourceOptions.MacroCreate := False;
DBConnection.ResourceOptions.MacroExpand := False;
DBConnection.ResourceOptions.EscapeExpand := False;