• 全部
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

我是菜鸟我怕谁?诚意请教高手!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
...全文
5 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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)+"'")
回复
发帖
PowerBuilder
创建于2007-09-28

852

社区成员

PowerBuilder 相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-06-05 09:27
社区公告
暂无公告