当前位置: 代码迷 >> PB >> pb中retrieve argument 2 does not match expected type异常提示
  详细解决方案

pb中retrieve argument 2 does not match expected type异常提示

热度:44   发布时间:2016-04-29 07:00:26.0
pb中retrieve argument 2 does not match expected type错误提示
实现功能:输入开始日期和结束日期,选择类别后,查询出日期区间的数据
定义了两个数据窗口,一个dw_1和一个下拉数据窗口dw_2,两个EditMask控件:em_start_date和em_stop_date,设置mask为yyyy-mm-d ,两个检索参数设为datetime型:sd,ed,数据库中日期字段datetime为型。还有一个检索参数设为string型:class,
查询代码为:
int ll_dept
string ll_class
datetime st_date,end_date
st_date=datetime(date(em_start_date.text),time('00:00:00'))
end_date=datetime(date(em_stop_date.text),time('00:00:00'))

if st_date > end_date then
messagebox("错误!","日期区间错误!",stopsign!)
return
em_start_date.setfocus()
end if


if isnull(dw_2.getitemstring(1,'xh_class'))then
    messagebox("提示","请选择项目类别")
 return
end if

class= dw_2.getitemstring(1,'xh_class')

ll_dept=dw_1.retrieve(deem_start_date.text, em_stop_date.text, class)
执行时,总提示retrieve argument 2 does not match expected type错误

------解决方案--------------------
参数数据类型不正确
可以尝试:
messagebox('',isdate(deem_start_date.text)) //是否是日期
dw_1.retrieve(date(deem_start_date.text),date(em_stop_date.text), class)

------解决方案--------------------
1.确认数据窗口对象的两个检索参数设为 datetime 型
2.where 确认设置为 字段名 between :st and :et
3.ldt_start = dateTime(date(em_start_date.text), time('00:00:00'))
ldt_end = dateTime(date(em_stop_date.text), time('23:59:59'))
dw_1.retrieve(ldt_start, ldt_end, ls_class)
  相关解决方案