Ubuntu下部署ScriptCase应用问题一例

ScriptCase安装在Windows平台下,部署的时候需要部署在Ubuntu环境下,在进行测试的时候发现有个功能无论如何都不能生效,代码如下:

 

[php] 

  1. // Check for record
  2. $check_sql = “SELECT islocked”
  3.    . ” FROM tt”
  4.    . ” WHERE ID = ‘{ID}'”;
  5. sc_lookup(rs, $check_sql);
  6. if ({rs} == false){
  7. }else{
  8.     if ({rs[0][0]} == 1){
  9.         sc_field_readonly({Title}, ‘on’);
  10.         sc_field_readonly({filename}, ‘on’);
  11.         sc_field_readonly({Comment}, ‘on’);
  12.         sc_field_display({description}, ‘off’);
  13.         sc_btn_display(‘new’, ‘off’);
  14.         sc_btn_display(‘delete’, ‘off’);
  15.         sc_btn_display(‘update’, ‘off’);
  16.      }

其实这是个很简单的功能,是希望如果已经锁定的话,不允许用户新建、删除、更新,在Windows环境下正常,但在Ubuntu下无法运行成功。查阅资料发现,在定义数据表字段的时候,将islocked定义为bit类型,Windows和Linux对bit的存储是不同的,因此导致故障。如果需要对bit进行判断,正确的写法应该是这样:

 

 

[php] 

  1. if ((ord({rs[0][0]}) == 1) || ({rs[0][0]} == 1)){

用这种方式判断,就可以同时解决Windows和Linux对bit字段进行判断的问题。

标签