0

我正在移植非常旧的代码以使用 UniDAC 组件。我遇到了一个特定的 UPDATE sql,它更改了一个名为“returning”的字段。简单地将字段用引号括起来并不能解决问题,因为数据库中的 SQL 方言是 1,它不支持双引号字段分隔符。有没有办法在不改变领域的情况下解决这个问题?我在 delphi 7 上,正在远离 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';
4

2 回答 2

1

我不得不和开发商谈谈。它已解决到某个点,但我需要在执行之前删除查询中的所有参数。很奇怪,但它是一种解决方法:/

于 2011-05-24T21:35:26.983 回答
0

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

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

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

于 2010-08-11T19:10:13.743 回答