gpt4 book ai didi

delphi - Firebird TIBQuery 插入并返回 ... INTO

转载 作者:行者123 更新时间:2023-12-03 15:39:31 26 4
gpt4 key购买 nike

我有一个带有生成器的 firebird 2.x 数据库和一个用于生成关键字段的触发器。我需要从下面的查询中获取返回值。

INSERT INTO XXXX (vdate,description) values ('"+ VDate +"','"+ Description +"') returning vno INTO :ParamVoucherNo

我尝试了以下代码的几个版本,但它不起作用,我得到了

Dynamic sql error sql error code = -104

delphi中是否真的可以使用TIBQuery获取返回值?

Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO XXXX (vodate,description) values ('"+ VDate +"','"+ Description +"') returning vno INTO :ParamVoucherNo");

Query1->Params->ParamByName("ParamVoucherno")->ParamType = ptResult;
Query1->Params->ParamByName("ParamVoucherno")->DataType = ftInteger;
Query1->Params->ParamByName("ParamVoucherno")->Value = "";
Query1->Prepare();
Query1->ExecSQL();

有什么建议吗?

最佳答案

来自 Firebird README.returning:

The INTO part (i.e. the variable list) is allowed in PSQL only (to assign local variables) and rejected in DSQL.

由于 IBX 使用 DSQL,您应该从查询中排除 INTO 部分。

DSQL 的

INSERT ... RETURNING 看起来与调用存储过程相同,它返回结果集。因此,您必须使用 Open 而不是 ExecSQL

关于delphi - Firebird TIBQuery 插入并返回 ... INTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7574730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com