Sql IBDAC/UniDAC&x2B;数据库间6或7+;名为“的表字段”;“返回”;

Sql IBDAC/UniDAC&x2B;数据库间6或7+;名为“的表字段”;“返回”;,sql,delphi,interbase,unidac,Sql,Delphi,Interbase,Unidac,我正在移植非常旧的代码以使用UniDAC组件。我遇到了一个特定的更新sql,它更改了一个名为“returning”的字段。简单地用引号将字段括起来并不能解决问题,因为数据库中的sql方言是1,它不支持双引号字段分隔符。有没有办法在不改变场地的情况下解决这个问题?我在Delphi7上,正在远离interbase db组件 编辑:SQL如下所示: update logger set returning = :RETURNING where locator = :LOCATOR 尝试准备时返回以下错

我正在移植非常旧的代码以使用UniDAC组件。我遇到了一个特定的更新sql,它更改了一个名为“returning”的字段。简单地用引号将字段括起来并不能解决问题,因为数据库中的sql方言是1,它不支持双引号字段分隔符。有没有办法在不改变场地的情况下解决这个问题?我在Delphi7上,正在远离interbase db组件

编辑:SQL如下所示:

update logger set
returning = :RETURNING
where locator = :LOCATOR
尝试准备时返回以下错误:

---------------------------
Ww
---------------------------

Dynamic SQL Error
SQL error code = -104
Token unknown - line 3, char -1
where.
---------------------------
OK   
---------------------------
即使在代码中将客户端SQL方言设置为1时,也会发生这种情况:

query1.Connection.SpecificOptions.Values['SQLDialect'] := '1';

您是否可以创建一个视图,除了此字段之外,其他内容都保持不变,并在应用程序中使用该视图

是否可以使用Firebird<2.1(例如1.5)的客户端dll和具有相同版本的服务器运行此应用程序


我认为这是由于新的语法,返回是一个保留字

我必须和开发者谈谈。它已被寻址到某一点,但我需要在执行它之前删除查询中的所有参数。非常奇怪,但这是一种解决方法://

我不太了解Interbase,但我知道在SQL Server中,在这种情况下,您可以在字段名周围加上[方括号]。这在IB中也起作用吗?这个错误来自哪里?它是来自数据库还是来自您正在使用的组件?我猜它来自UniDAC查询组件,因为查询在任何其他工具(Interbase query、SQL Explorer、IBExpert)中都可以正常工作。在这种情况下,我会尝试与UniDAC开发人员联系(但只有在仔细搜索文档之后)我已经通过电子邮件和论坛联系了开发者。一旦找到解决方案,我将更新此线程!