我是菜鸟我怕谁?诚意请教高手!PB6!

yunrong 2002-06-05 09:27:54
有这样的简单查询语句:
int v2
v2=integer(sle_1.text)
if sle_1.text="" then
if sle_2.text="" then
dw_1.setfilter("item_id='"+string(v2)+"'")
end if
end if
运行是有这样的错误:表达式类型不匹配!
其中sle_1,sle_2,sle_3为查询条件的文本框
dw_1是显示查询结果的文本框
item_id在数据库中的类型是varchar
...全文
36 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
programbcb 2002-06-05
  • 打赏
  • 举报
回复
int v2
v2=integer(sle_1.text)
if sle_3.text="" then
if sle_2.text="" then
dw_1.setfilter("item_id="+string(v2))
end if
end if
如是v2是null值的话,不会出这个对话框,它会跳出
PB默认的filter对话框。
sxy2000 2002-06-05
  • 打赏
  • 举报
回复
item_id类型不是字符型?
sxy2000 2002-06-05
  • 打赏
  • 举报
回复
sle_1.text中的文本为空了或者不能转换为INTEGER!
总之是string(v2)得到的值是空值
jackygan 2002-06-05
  • 打赏
  • 举报
回复
int v2
v2=integer(sle_1.text)
if sle_3.text="" then
if sle_2.text="" then
dw_1.setfilter("item_id='"+string(v2)+"'")
dw_1.filter()
end if
end if
//这样没有错.
yunrong 2002-06-05
  • 打赏
  • 举报
回复
啊!不好意思!我写错了!
int v2
v2=integer(sle_1.text)
if sle_3.text="" then
if sle_2.text="" then
dw_1.setfilter("item_id='"+string(v2)+"'")
end if
end if
运行是有这样的错误:表达式类型不匹配!
其中sle_1,sle_2,sle_3为查询条件的文本框
dw_1是显示查询结果的文本框
item_id在数据库中的类型是varchar
ouyi2002 2002-06-05
  • 打赏
  • 举报
回复
我改:

int v2
v2=integer(sle_1.text)
if sle_1.text="" then
if sle_2.text="" then
dw_1.setfilter("")
end if
end if


“dw_1.setfilter("item_id='"+string(v2)+"'")”这句的意思是不是想显示所有的记录?如果是的话,“dw_1.setfilter("")”就行了,你的错误在于V2在你的IF条件下得不到值,也就是说是空值(NULL)。

解决给分。谢谢。


li_d_s 2002-06-05
  • 打赏
  • 举报
回复
对阿,为空的时候才会执行到这里阿
zhanwei 2002-06-05
  • 打赏
  • 举报
回复
按照你程序的逻辑,在执行到:
dw_1.setfilter("item_id='"+string(v2)+"'")
时:v2的值应该是NULL。
aqua_w 2002-06-05
  • 打赏
  • 举报
回复
dw_1.setfilter("item_id='"+string(v2)+"'")
改成
DW_1.setfilter("trim(item_id)='"+string(v2)+"'")

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧