当在PRO C中执行PREPARE查询失败时



什么时候在PRO C中PREPARE QUERY失败?

EXEC SQL AT :db_id PREPARE QUERY FROM :sql_query;
bool sql_status = (sqlca.sqlcode == OERR_ORACLE_SUCCESS);
if (sql_status)
{
}
else
{
}

我没有这个问题,直到最近,代码工作得很好,准备查询工作得很好(进入if循环_,但突然它失败了,之后不工作(进入else循环)。

没有改变,还是原来的二进制文件。

过去有人遇到过类似的问题吗?

我过去写过很多pro*c,随着时间的推移,我意识到你不想检查PREPARE语句的返回代码,因为它永远不会返回任何值。我的意思是:

PREPARE sqlca. sqlsqlcode值是紧接在PREPARE语句之前运行的语句的返回码。换句话说,如果检查PREPARE语句的输出和在PREPARE语句失败之前执行的语句,则PREPARE的返回代码失败。如果前面的语句成功,那么PREPARE似乎已经成功。

换句话说,准备sqlca。Sqlcode值基本上没有什么(它自己不会失败)。因此,如果PREPARE现在失败了,请检查在PREPARE语句之前执行的语句,并确保正在检查sqlca。Sqlcode值。我敢打赌,前面的语句失败了,返回的错误与该语句有关。有意义吗?

吉姆

相关内容

  • 没有找到相关文章

最新更新