为什么不在 Oracle Pro*C 中声明 Cursor return sqlca.sqlcode?
Why doesn't Declare Cursor return sqlca.sqlcode in Oracle Pro*C?
最近,我对另一个问题中所述的程序错误感到困惑:
在大量使用 printf
等之后,我发现:
EXEC SQL Declare abc Cursor for select..
没有 change/return sqlca.sqlcode
EXEC SQL Open abc;..
returns sqlca.sqlcode
EXEC SQL Fetch abc into .. ; ..
returns sqlca.sqlcode
EXEC SQL Close abc; ..
returns sqlca.sqlcode
EXEC SQL Commit; ..
returns sqlca.sqlcode
我想了解为什么 declare 没有 return 任何代码,因为我们正在使用 EXEC SQL
declare & 我认为 EXEC SQL
总是 returns sqlca.sqlcode
。
此外,Oracle Pro*C 是否有解释所有这些的文档?
提前致谢。
根据 Oracle's documentation on DEF_SQLCODE,所描述的行为似乎是一个错误;如果您在代码中设置了 #include <sqlqca.h>
或 EXEC SQL INCLUDE SQLCA;
并设置了 DEF_SQLCODE=YES
,那么它应该会返回一个代码。
他们的 documentation on handling runtime errors 可能会有用。
最近,我对另一个问题中所述的程序错误感到困惑:
在大量使用 printf
等之后,我发现:
EXEC SQL Declare abc Cursor for select..
没有 change/return sqlca.sqlcode
EXEC SQL Open abc;..
returns sqlca.sqlcode
EXEC SQL Fetch abc into .. ; ..
returns sqlca.sqlcode
EXEC SQL Close abc; ..
returns sqlca.sqlcode
EXEC SQL Commit; ..
returns sqlca.sqlcode
我想了解为什么 declare 没有 return 任何代码,因为我们正在使用 EXEC SQL
declare & 我认为 EXEC SQL
总是 returns sqlca.sqlcode
。
此外,Oracle Pro*C 是否有解释所有这些的文档?
提前致谢。
根据 Oracle's documentation on DEF_SQLCODE,所描述的行为似乎是一个错误;如果您在代码中设置了 #include <sqlqca.h>
或 EXEC SQL INCLUDE SQLCA;
并设置了 DEF_SQLCODE=YES
,那么它应该会返回一个代码。
他们的 documentation on handling runtime errors 可能会有用。