Timing of transaction rollback

If the SELECT statement is executed after the UPDATE statement (like below) and if the execution of UPDATE is successful while the execution of SELECT is not, PowerServer will immediately roll back the transaction (and roll back UPDATE), while PowerBuilder will not. This may cause that data to be retrieved later will be different between PowerServer and PowerBuilder.

update dbparm_fortest set name_char = :ls_tmp1,name_varch=:ls_tmp1 where id = :li_id using tran01; 
select "name_char",name_varch into :ls_char,:ls_varchar from dbparm_fortest where "id"= :li_id using tran01;
ls_return += "ls_char=" + ls_char+" "+string(len(ls_char)) + is_newline
ls_return += "ls_varchar=" + ls_varchar+" "+string(len(ls_varchar)) + is_newline
select count(1) into :ll_count from dbparm_fortest where name_char = :ls_name using tran01;