ibase_query:动态SQL错误SQL错误代码= -104令牌未知

问题描述

我一直在尝试搜索过滤器,并且此错误继续出现,有人可以帮我吗?

com.atomikos.icatch.SysException: No Assembler Service found - please make sure that the right jars are in your class path

解决方法

问题是Firebird不知道关键字TOP。 Firebird 2.5和更早版本中的等效项是FIRST。从Firebird 3开始,您还可以使用SQL标准FETCH

使用FIRST

select first 10 * from cadcli ... 

使用FETCH

select * from cadcli ... fetch first 10 rows only

请注意,如果没有ORDER BY,则顺序是不确定的。

我还注意到您正在查询中进行字符串插值,这使其容易受到SQL注入的攻击。我建议您切换到使用带参数的预备语句(请参见ibase_prepareibase_execute)。