这段代码谁能帮忙看看哪里有问题?

lucylu0726 2005-07-14 04:23:33
string depart,year0,month1,month2
depart=ddlb_1.text
year0=sle_3.text
month1=ddlb_2.text
if sle_3.text<>"" then
if ddlb_1.text<>"" then
if ddlb_2.text<>"" and ddlb_3.text<>"" then
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,month1,month2)
end if
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,"%","%")
else
dw_1.settransobject(sqlca)
dw_1.retrieve("%",year0,"%","%")
end if
else
messagebox('提示','年份信息不能为空!')
return
end if
每次运行到功能的时候就提示不能将检索到的数据转换为numeric(30.0)类型,经过反复尝试我发现这个提示实际上是因为代码的问题,可是又找不到那里的问题,帮忙看看,谢谢!
...全文
155 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucylu0726 2005-07-19
  • 打赏
  • 举报
回复
感谢各位:我已经知道问题所在了,只要我在income的表中输入新数据就不能检索了,好像和我的

其他脚本没有关系,这会不会是pb8.0的bug呀?
nann32258 2005-07-19
  • 打赏
  • 举报
回复
还有,你把你的dw的要like的字段用convert转换一下。我记得在数据库里面的int型字段必须要转换成char类型才能够查询的。convert(varchar(20),你的字段) like '%'。试一下吧。
nann32258 2005-07-19
  • 打赏
  • 举报
回复
晕。dw中的4个缓冲区:Primary!,Delete!,Filter!,Modify!。好像是Modify!不是很准确,赫赫。你setfilter()条件然后filter(),当前dw中的数据显示的是filter!中的数据。
lucylu0726 2005-07-18
  • 打赏
  • 举报
回复
如果是数据窗口的问题那为什么前面一句检索语句就能实现,不报错检索出正确数据,就是后面这句不行呢?
nann32258 2005-07-18
  • 打赏
  • 举报
回复
应该是你的数据窗体的问题。看看你的dw的sql语句。
lucylu0726 2005-07-18
  • 打赏
  • 举报
回复
没有呀,我还特意看了顺序没错呀!
我改了一下脚本:
string depart,year0,month1,month2
depart=ddlb_1.text
year0=sle_3.text
month1=ddlb_2.text
if sle_3.text<>"" and ddlb_1.text<>"" then
if ddlb_2.text<>"" and ddlb_3.text<>"" then
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,month1,month2) //这一步能够正常显示结果;
else
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,"%","%") //这步提示出错!
end if
else
messagebox('提示','年份信息不能为空!')
return
end if

出错信息:[Sybase][ODBC Adaptive Server Anywhere]Retrieved data type attribute violation:Cannot convert to a numerica(30,6)

帮忙看看是什么原因造成的呢?先谢过各位了!

等待.............................
lucylu0726 2005-07-18
  • 打赏
  • 举报
回复
TTLOVEYOU3344(笨笨):我用的就是like,可是还是不行,很奇怪!还是提示

SetFilter也能在数据窗口里检索数据?不是过滤吗?
j9dai 2005-07-18
  • 打赏
  • 举报
回复
用SetFilter吧
雨中飞侠 2005-07-18
  • 打赏
  • 举报
回复
肯定是%的问题

dw_1.retrieve(depart,year0,"%","%")

你这样写好像是不对的啊
TTLOVEYOU3344 2005-07-18
  • 打赏
  • 举报
回复
string depart
double year0,month1,month2
depart=ddlb_1.text
year0=sle_3.text
month1=ddlb_2.text
if sle_3.text<>"" then
if ddlb_1.text<>"" then
if ddlb_2.text<>"" and ddlb_3.text<>"" then
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,month1,month2)
end if
dw_1.settransobject(sqlca)
dw_1.retrieve(depart,year0,"%","%")
else
dw_1.settransobject(sqlca)
dw_1.retrieve("%",year0,"%","%")
end if
else
messagebox('提示','年份信息不能为空!')
return
end if
注意dw里用like,而不是=号,否则达不到你要的效果!
handycyw 2005-07-14
  • 打赏
  • 举报
回复
可能的问题:
构造dw后,在edit source中修改了column的顺序,导致dw的字段和数据库字段对应错误。
lucylu0726 2005-07-14
  • 打赏
  • 举报
回复
不是呀,我设置的类型是string,参数类型和数据窗口里的时一致的呀!

也用调试看了,可以运行到那步就替是那个错误,可是我换了if语句里的部分顺序就好了,能正常运行

什么原因呀?看看我的脚本对吗?谢谢
grica 2005-07-14
  • 打赏
  • 举报
回复
跟踪一下看看就知道了
检查窗口retrieve参数设置数据类型是否为number?
青锋-SS 2005-07-14
  • 打赏
  • 举报
回复
或者做好数据窗口后更改了数据库中字段的类型?
青锋-SS 2005-07-14
  • 打赏
  • 举报
回复
会不会是参数类型和数据窗口中定义的类型不一致?

1,077

社区成员

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

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