好奇怪的问题,这条SQL查询语句到底该怎么写?怎么查询结果不准确呢? ( 积分: 75 )

  • 主题发起人 主题发起人 abcls
  • 开始时间 开始时间
A

abcls

Unregistered / Unconfirmed
GUEST, unregistred user!
问题一:<br>With&nbsp;Aq_Temp&nbsp;do<br>begin<br>&nbsp;&nbsp;&nbsp;Connection:=DllDBCnn;<br>&nbsp;&nbsp;&nbsp;Close;<br>&nbsp;&nbsp;&nbsp;Sql.Clear;<br>&nbsp;&nbsp;&nbsp;Sql.Add('Select&nbsp;*&nbsp;from&nbsp;DeviceClass&nbsp;Where&nbsp;Dev_kq&lt;&gt;1');<br>&nbsp;&nbsp;&nbsp;Open;<br>end;<br><br>其中&nbsp;Dev_kq为bit类型字段,我在SQL&nbsp;SERVER的查询分析器执行结果为记录数有4个,但在DELPHI中就为0,为什么?<br><br>问题二:<br>&nbsp;&nbsp;如果把语句改为:<br>Sql.Add('Select&nbsp;*&nbsp;from&nbsp;DeviceClass&nbsp;Where&nbsp;(Dev_kq=1)&nbsp;Or&nbsp;(Dev_Xf=1)');所得结果一样为0,但在SQL&nbsp;SERVER的查询分析器中所得结果为4,为什么?
 
dephi&nbsp;如何判断记录数?
 
我用Showmessage(inttostr(recordcount))就可以啊?
 
对于第二个问题,如果我只用一个条件就没问题,如:<br>Sql.Add('Select&nbsp;*&nbsp;from&nbsp;DeviceClass&nbsp;Where&nbsp;(Dev_kq=1),这样查询出来的结果就是正确的.
 
Select&nbsp;*&nbsp;from&nbsp;DeviceClass&nbsp;Where&nbsp;Dev_kq&lt;&gt;1<br>不建议对bit类型用&lt;&gt;操作,逻辑操作里没有&nbsp;&lt;&gt;&nbsp;&gt;&nbsp;&lt;&nbsp;操作符,<br>改用&nbsp;&nbsp;Dev_kq&nbsp;=0&nbsp;or&nbsp;dev_kq&nbsp;is&nbsp;null<br><br>如果你用MS&nbsp;SQL的话,其实比较一下事件探测器里截获的语句,就可以看到到底经ADO转换后,语句变成了什么样子,就可以找到解决方法了。
 
用true代替1试试
 
是SQLServer2000的数据库吗?如果是的话,执行正常,不会出现你说的那种情况,我试验过的.
 
建议有'true','false',,,注意&nbsp;NULL
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
757
import
I
后退
顶部