求SQL语句~~ ( 积分: 20 )

  • 主题发起人 主题发起人 skyroom007
  • 开始时间 开始时间
S

skyroom007

Unregistered / Unconfirmed
GUEST, unregistred user!
if&nbsp;&nbsp;(qry_demo.FieldByName('LimitCount').asinteger&gt;=qry_sx.fieldbyname('TotalCount').asfloat)&nbsp;or<br>&nbsp;&nbsp;&nbsp;&nbsp;(qry_GX.FieldByName('EmplCode').asstring=mainform.unm&nbsp;and&nbsp;(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30)&nbsp;then<br>begin<br>...<br>end;<br>&nbsp;语句报错&nbsp;[Error]&nbsp;unitKHCK.pas(85):&nbsp;Operator&nbsp;not&nbsp;applicable&nbsp;to&nbsp;this&nbsp;operand&nbsp;type&nbsp;&nbsp;求解!!
 
(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30&nbsp;<br>这段有点怪..没这么用过..你用什么数据库的.
 
我用的MSSQL语句啊~~这样写不对嘛?&nbsp;&nbsp;就是用当天日期跟数据库里面的一个日期字段进行比较&nbsp;如果超过了三十天就触发一个事件!
 
不好意思,偶比较菜.不过要是我来写我会先在sql&nbsp;语句中加上<br>datediff(day,dropdate,getdate())&nbsp;&lt;&nbsp;30
 
qry_GX.FieldByName('EmplCode').asstring=mainform.unm&nbsp;and&nbsp;<br><br>and&nbsp;前面那个表达式,加上括号先.
 
恩&nbsp;我也知道啊&nbsp;这个要加在SQL中的,但是我这个是动态判断的啊!!<br>而且(qry_GX.FieldByName('EmplCode').asstring=mainform.unm&nbsp;and&nbsp;datediff(day,dropdate,getdate())&nbsp;&lt;&nbsp;30)&nbsp;&nbsp;这样写也不对&nbsp;&nbsp;好像在DELPHI中不能直接用这个&nbsp;查DELPHI的帮助也找不到这个函数
 
我是说<br>qry_GX.FieldByName('EmplCode').asstring=mainform.unm&nbsp;and&nbsp;<br>改成<br>(qry_GX.FieldByName('EmplCode').asstring=mainform.unm)&nbsp;and<br>再测测试试.
 
不是加不加括号的问题!!<br>是条件的并列问题&nbsp;<br>条件一:(qry_demo.FieldByName('LimitCount').asinteger&gt;=qry_sx.fieldbyname('TotalCount').asfloat)&nbsp;<br>条件二:(qry_GX.FieldByName('EmplCode').asstring=mainform.unm&nbsp;and&nbsp;(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30)&nbsp;<br>满足条件一或者条件二的情况下触发&nbsp;结果<br>条件二&nbsp;要满足它里面包含的两个比较<br>所以条件二里面的语句当然要用一个括号包括在里面了<br>我改成((qry_GX.FieldByName('EmplCode').asstring=mainform.unm)&nbsp;and&nbsp;(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30)&nbsp;也是报一样的错&nbsp;是类型的问题&nbsp;但是我搞不清楚到底要怎么样进行比较
 
怎么乱七八糟的啊...LZ不会用变量吗?看的都累...<br>类型好像也没转换...<br>FLOAT要四舍五入吧<br>Round&nbsp;四舍五入<br>Trunc&nbsp;截尾取整
 
定义局部变量,把数据库取出来的数据赋值给变量,然后再判断;<br>这个单步跟踪,方便检错
 
很有可能是括号的问题,修改如下(不知道你条件的判断关系如何所以写了两种):<br>(1)<br>if&nbsp;&nbsp;(qry_demo.FieldByName('LimitCount').asinteger&gt;=qry_sx.fieldbyname('TotalCount').asfloat)&nbsp;or<br>&nbsp;&nbsp;&nbsp;&nbsp;(qry_GX.FieldByName('EmplCode').asstring=mainform.unm)&nbsp;and&nbsp;(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30)&nbsp;then<br>begin<br>...<br>end;<br><br>(2)<br>if&nbsp;&nbsp;(qry_demo.FieldByName('LimitCount').asinteger&gt;=qry_sx.fieldbyname('TotalCount').asfloat)&nbsp;or<br>&nbsp;&nbsp;&nbsp;&nbsp;((qry_GX.FieldByName('EmplCode').asstring=mainform.unm)&nbsp;and&nbsp;(Trunc(date)-Trunc(qry_sx.fieldbyname('dropdate').Asdatetime))&lt;&nbsp;30)&nbsp;then<br>begin<br>...<br>end;
 
呵呵&nbsp;是括号的问题&nbsp;我已经改好了<br>不过又有新问题了&nbsp;为什么我的ADOQuery的afterscroll事件失效?~在这个事件里面写事件都不触发&nbsp;&nbsp;我靠
 
多人接受答案了。
 
后退
顶部