SQLCA.SQLNRows 有何用?

laotong 2002-01-17 11:50:38
long ll_rv
ll_rv = dw_1.Update(true,true)

IF ll_rv = 1 and SQLCA.SQLNRows > 0 THEN
COMMIT;
ELSE
ROLLBACK;
MessageBox("ABC Error","Can't write to DB! " + string(ll_rv) + " "+ string(sqlca.sqlnrows))
END IF

这段代码是SAVE按钮的CLICKED!事件,但结果呢,是在修改dw_1的某字段后按SAVE却显示:
Can't write to DB! 1 0
如果去掉and SQLCA.SQLNRows > 0 ,结果正确。

问题是:为什么要加这个导致错误的条件?这是PB的HELP中的Example里面的例句。
...全文
890 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
laotong 2002-01-18
  • 打赏
  • 举报
回复
SQL Anywhere does NOT support sqlnrows, we know this from the definition of SQLCA :

typedef struct sqlca {

unsigned char sqlcaid[8];

long sqlcabc;

an_sql_code sqlcode;

short sqlerrml;

unsigned char sqlerrmc[70];

unsigned char sqlerrp[8];

long sqlerrd[6];

struct sqlwarn sqlwarn;

an_sql_state sqlstate;

} SQLCA;

Copy from:
SQL Anywhere User's Guide -->PART 5. The SQL Anywhere Programming Interfaces -->CHAPTER 34. The Embedded SQL Interface --> The SQL communication area (SQLCA)
ldk 2002-01-17
  • 打赏
  • 举报
回复
你可以用sqlca.sqlcode 是否等于0来判断对数据库的操作是否正确
ldk 2002-01-17
  • 打赏
  • 举报
回复
The number of rows affected (the database vendor supplies this number, so the meaning may not be the same in every DBMS).
Methodor 2002-01-17
  • 打赏
  • 举报
回复
1、与DBMS有关~~
2、一般只需要判断sqlcode,特殊情况下如updateblob等不支持sqlcode,只能通过sqlnrows判断~~
linda_gao 2002-01-17
  • 打赏
  • 举报
回复
yes
laotong 2002-01-17
  • 打赏
  • 举报
回复
SQL Anywhere supports sqlNrows, Yes OR No?
nixinyi 2002-01-17
  • 打赏
  • 举报
回复
如果你用Sql语句直接修改数据库,如udpate table ……,此时Sqlca.sqlnrows才有效;
如Datawindow.update,则无需校验该参数。
laotong 2002-01-17
  • 打赏
  • 举报
回复
I am using SQL Anywhere...which does NOT support sqlNrows ??
linda_gao 2002-01-17
  • 打赏
  • 举报
回复
如果使用updateblob/selectblob,you must use sqlca.sqlnrows 判断结果,而不能使用sqlca.sqlcode.
wzyun 2002-01-17
  • 打赏
  • 举报
回复
SQLCA.SQLNRows记录最后一条sql语句的执行结果状态,不推荐使用
laotong 2002-01-17
  • 打赏
  • 举报
回复
为什么要加这个导致错误的条件?这是PB的HELP中的Example里面的例句。

HELP!
ldk 2002-01-17
  • 打赏
  • 举报
回复
对,update和sqlca没有关系!
laotong 2002-01-17
  • 打赏
  • 举报
回复
dw_1.Update 与sqlca有关吗?这时sqlerrtext是空的。
ylg007 2002-01-17
  • 打赏
  • 举报
回复
agree.

401

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧