当前位置: 代码迷 >> PB >> PB SQL话语where不起作用
  详细解决方案

PB SQL话语where不起作用

热度:68   发布时间:2016-04-29 07:30:42.0
PB SQL语句where不起作用?
String czy,sle
Datetime intime
long curnum

sle = ddlb_czy.text;


  SELECT "czrzb"."czydm",   //返回操作员代码
         "czrzb"."in_time",   //返回登录系统时间
         "czrzb"."cur_num"  //返回序号
    INTO :czy,   
         :intime,   
         :curnum  

    FROM "czrzb"           //日志表
  WHERE "czrzb"."czydm" = :sle; //限制条件

  dw_1.settransobject(sqlca)  //
  dw_1.retrieve( )//检索数据


我想把日志表的上面三列显示在数据窗口上,条件是下拉框的操作员代码。

在执行这段代码后,数据窗口显示是日志全部的内容,例如,我本只想显示操作代码为“5555”的数据,上面代码执行的不只操作员代码为“5555”,还包括“8888”等的数据都显示出来。限制条件不起作用,WHY?谢谢!




------解决方案--------------------
这样写法根本没有给retrieve传参数,而且dw_1的datawindow也没有设置参数
解决办法有两个:
1、在dw_1的datawindow里加上那3个检索参数,然后
dw_1.retrieve(czy,intime,curnum )//检索数据
2、datawindow不用改,动态设置语法,你可以把这段替换你原来的试试


string sle
sle = ddlb_czy.text;

string ls_sql
ls_sql=dw_1.getsqlselect()
ls_sql=ls_sql+" where czydm='"+sle+"'"
dw_1.setsqlselect(ls_sql)

  dw_1.settransobject(sqlca) //
  dw_1.retrieve( )//检索数据

然后你弄懂了,再用3个条件的
  相关解决方案