我的问题是这样的:
客户端有一ClientDataSet命名为qryPrint,它所对应的中间层的
DataSetProvider连的是ADOQuery1,ADOQuery1的SQL为
select f.*,case when sdegree='米' then 'M' else 'Y' end as sUnit ,p.sCustPattnname
from inspfabmain f,PlanArrangemainPlan p
where f.sppono=p.sppono and f.sproductno=p.spatternno and sinspfabid=:sinspfabid 在客户端执行我此语句我是这样写的:
qryPrint.Close ;
qryPrint.Params.ParamByName('sinspfabid').AsString := trim(yy);
qryPrint.Open ;
showmessage(qryprint.fieldbyname('sinspfabid').AsString);//此句是为了观察返回结果是否正确.
yy是一变量,每次都不一样的.
可是当客户端执行一段时间之后(时间不定),showmessage语句返回的结果就不变了.如果把客户端注销,重新启动程序又恢复正常,过一段时间又回出现这种情况!不知道为何?请各位指教!
客户端有一ClientDataSet命名为qryPrint,它所对应的中间层的
DataSetProvider连的是ADOQuery1,ADOQuery1的SQL为
select f.*,case when sdegree='米' then 'M' else 'Y' end as sUnit ,p.sCustPattnname
from inspfabmain f,PlanArrangemainPlan p
where f.sppono=p.sppono and f.sproductno=p.spatternno and sinspfabid=:sinspfabid 在客户端执行我此语句我是这样写的:
qryPrint.Close ;
qryPrint.Params.ParamByName('sinspfabid').AsString := trim(yy);
qryPrint.Open ;
showmessage(qryprint.fieldbyname('sinspfabid').AsString);//此句是为了观察返回结果是否正确.
yy是一变量,每次都不一样的.
可是当客户端执行一段时间之后(时间不定),showmessage语句返回的结果就不变了.如果把客户端注销,重新启动程序又恢复正常,过一段时间又回出现这种情况!不知道为何?请各位指教!
可以单步调试一下,或者在程序中添加一个showmessage(trim(yy));等语句,检查一下
执行的过程。
就是给车间用的时候,过一段时间会出现这种情况!
另外再问一下,客户端的ClientDataSet和中间层连接时还需什么配置?
写的详细点儿,谢谢!
qryPrint.XMLData := '' ;//否则只要上一句SQL出错,以后返回的结果都是一样的
qryPrint.Params.ParamByName('sinspfabid').AsString := trim(yy);
qryPrint.Open ;
showmessage(qryprint.fieldbyname('sinspfabid').AsString);//
你的意思是我的sql语句调用数据库中的数据可能会出错,一旦出错返回的结果就都是一样的了,对吗? 解决的办法就是在qryPrint.Close 语句之后, 把qryPrint.XMLData赋个空值!
这样一来就可以了是吗?
我去试试!