一条奇怪的SQL语句:在VB和DatabaseTour执行结果不一样(急用)
AJNS 2004-11-24 01:17:53 我在开发的程序中用到这条SQL语句: select BGQX,MJ,ND,QWH,TM,WJBH,WZ,ZRZ,ZTC,DH,DOC_STATE from D_DA2004,SYSTEM.DOCUMENT_TABLE where DH=DOC_INSTANCE_ID(+)
其中:DH 属于 D_DA2004 ;DOC_INSTANCE_ID 属于DOCUMENT_TABLE
问题:
1.当 DOCUMENT_TABLE 里没有记录的时候,用Database Tour中执行返回正确的记录项,用VB的ADODB打开 数据库执行该语句却返回0条记录
2.当 DOCUMENT_TABLE 里有一条匹配记录的时候,用Database Tour中执行仍然正确,而用VB执行,则返回记录项的数量是无穷多,切只有一条正确记录
D_DA2004内容:
MJ WZ WJBH DZWJH QWH WB SJ ZTDW FLH FZ ND JH ZH XHBJ JYBJ FH QZH BGQX ZTC ZTGG ZTSL ZRZ TM DH SWH GH ZTLX
绝密 命令 1文件1文件编号 <null> 1文件1全识标 正本 1文件1时间 页 1文件1分类号 1文件1附注 2004 1.00 0.00 <null> 1 1.00 00001 永久 1文件1主题词 <null> 1.00 1文件1责任者 1文件1题名 00001-Y-WS.W-2004-001-001 <null> 管代号 纸张
机密 决定 1文件2文件编号 <null> 1文件2全识标 副本 1文件2时间 页 1文件2分类号 1文件2附注 2004 1.00 0.00 <null> 1 2.00 00001 永久 1文件2主题词 <null> 0.00 1文件2责任者 1文件2题名 00001-Y-WS.W-2004-001-002 <null> 管代号 纸张
国内 通令 2文件1文件编号 <null> <null> 副本 2文件1时间 页 <null> <null> 2004 2.00 0.00 <null> 1 1.00 00001 永久 2文件1主题词 <null> 0.00 责任者 2文件1题名 00001-Y-WS.W-2004-002-001 <null> 案号 纸张
DOCUMENT_TABLE,有记录时的内容:
DOC_ID DOC_TYPE DOC_STATE DOC_INSTANCE_ID
0+00001-Y-WS.W-2004-001-001 0.00 1.00 00001-Y-WS.W-2004-001-001
此时执行的结果为
BGQX MJ ND QWH TM WJBH WZ ZRZ ZTC DH DOC_STATE
永久 绝密 2004 1文件1全识标 1文件1题名 1文件1文件编号 命令 1文件1责任者 1文件1主题词 00001-Y-WS.W-2004-001-001 1.00
永久 机密 2004 1文件2全识标 1文件2题名 1文件2文件编号 决定 1文件2责任者 1文件2主题词 00001-Y-WS.W-2004-001-002 <null>
永久 国内 2004 <null> 2文件1题名 2文件1文件编号 通令 责任者 2文件1主题词 00001-Y-WS.W-2004-002-001 <null>