top*_*p75 3 delphi firebird c++builder
我有一个带有Generator的firebird 2.x数据库和一个生成关键字段的触发器.我需要从下面的查询中获取返回的值.
INSERT INTO XXXX (vdate,description) values ('"+ VDate +"','"+ Description +"') returning vno INTO :ParamVoucherNo
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码的几个版本,但它不会破坏我得到
动态sql错误sql错误代码= -104
是否真的可以使用TIBQuery在delphi中获取返回值?
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();
Run Code Online (Sandbox Code Playgroud)
有什么建议?
来自Firebird README.returning:
INTO部分(即变量列表)仅在PSQL中允许(分配局部变量)并在DSQL中被拒绝.
由于IBX使用DSQL,您应该INTO从查询中排除部分.
INSERT ... RETURNINGfor DSQL看起来与调用存储过程相同,后者返回结果集.所以,你必须使用Open而不是ExecSQL.
| 归档时间: |
|
| 查看次数: |
10227 次 |
| 最近记录: |