求助:表中两个字段关联外表同一个字段,如何取值?

mtu207 2006-01-05 10:14:00
tab1:
id,sfid1,sfid2......

tab2:
sfid,bh......

在datawindow的sql语句中:
select tab1.id,
tab2_a.bh,
tab2_b.bh,
tab1.sfid1,
tab2.sfid2,
...
from tab1
left outer join tab2 tab2_a on tab1.sfid1 = tab2_a.sfid
left outer join tab2 tab2_b on tab1.sfid2 = tab2_b.sfid

问题:
我在取tab2_a.bh,tab2_b.bh时遇到错误(Invalid Datawindow row/column),所用语句如下:

long ll_row
string ls_bh1,ls_bh2
ll_row = dw_1.getrow()
ls_bh1 = dw_1.getitemstring(ll_row,"tab2_a_bh")
ls_bh2 = dw_1.getitemstring(ll_row,"tab2_b_bh")

请各位朋友帮忙看看。先谢谢各位!

...全文
149 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mtu207 2006-01-05
  • 打赏
  • 举报
回复
揭帖
mtu207 2006-01-05
  • 打赏
  • 举报
回复
这个问题我自己解决了。不过还是要谢谢狗狗!狗狗的方法虽然对我这个问题没直接帮助,但狗狗提醒了我,我看了datawindow显示的字段名才发现了问题。

解决的方法:

SQL语句中显示的是tab2_a_bh,tab2_b_bh
datawindow字段显示的是tab2_bh,tab2_bh_1

重写:
ls_bh1 = dw_1.getitemstring(ll_row,"tab2_bh")
ls_bh2 = dw_1.getitemstring(ll_row,"tab2_bh_1")

问题解决!


hygougou 2006-01-05
  • 打赏
  • 举报
回复
检测行:Messagebox("",ll_row)
检测列:Describe("Columnname.Width") = "!" 说明不存在
mtu207 2006-01-05
  • 打赏
  • 举报
回复
标题说的很清楚啊
xiaoplx 2006-01-05
  • 打赏
  • 举报
回复
仔细看了一下,上面回复太快了

tab2_a, tab2_b是什么,有三个表吗
xiaoplx 2006-01-05
  • 打赏
  • 举报
回复
from tab1
left outer join tab2 tab2_a on tab1.sfid1 = tab2_a.sfid
left outer join tab2 tab2_b on tab1.sfid2 = tab2_b.sfid


这是什么写法,晕


from tab1
left outer join tab2 tab2_a on tab1.sfid1 = tab2_a.sfid AND tab1.sfid2 = tab2_b.sfid
mtu207 2006-01-05
  • 打赏
  • 举报
回复
对啊,我也怀疑是列名不对啊。但这两个字段(tab2_a_bh,tab2_b_bh)怎么取呢?
xyqiqi 2006-01-05
  • 打赏
  • 举报
回复
Invalid Datawindow row/column这个错误是因为行取的不对,或者列名有错误!

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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