这种现象很有可能就是没有使用手工事务导致的结果。
对于这种情况就需要手工来判断操作是否成功,通过web_reg_find()检查点函数来检查页面是否返回正确,然后通过rowcount的参数值来进行事务状态判断,做到智能判断事务结果。
例如:检查点函数的rowcount保存在参数loginst中,那么事务的状态就应该这样判断:
lr_start_transaction("login");
web_reg_find("Search=Body",
"SaveCount=loginst",
"Text=登录失败", LAST);
//登录请求
If(atoi(lr_eval_string("{loginst}"))>=1))
lr_end_transaction("login", LR_FAIL);
else
lr_end_transaction("login",LR_PASS);
通过检查点来检查登录后页面是不是存在"登录失败"这样的内容,如果存在那么loginst的值就大于等于1,然后把loginst的值取出来和1做比较,如果大于1那么就是登录失败,否则就是登录成功。
参数不能和值做比较,所以要先通过lr_eval_string()函数将其转化成字符串,然后再通过atoi()函数转化成整数,这样才能和1作比较。
在绝大多数情况下对于事务都需要采用手工事务的方式来确保事务的正确性和事务时间的有效性。
文章出处:http://hi.baidu.com/yjun612/blog/item/ed6f732f8024cc2f1f308932.html