三层结构的奇怪问题,请高手帮忙(在线等待)!!

yutaocool 2003-12-23 09:12:40
我的问题是这样的:
客户端有一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语句返回的结果就不变了.如果把客户端注销,重新启动程序又恢复正常,过一段时间又回出现这种情况!不知道为何?请各位指教!
...全文
10 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutaocool 2003-12-26
赫赫,问题解决了,谢谢各位的支持,尤其是 little_five_gqw(小五)
回复
yutaocool 2003-12-25
差不多了
回复
hhhrrrttt 2003-12-24
帮你up了!
回复
Dlwxn 2003-12-24
还没有解决?
回复
yutaocool 2003-12-24
up
回复
yutaocool 2003-12-23
yy也是正确的!我已经show过了
回复
nth 2003-12-23
sql语句看上去时没有问题的。同意 zhangheaaa(竹) 的看法, 在执行语句前看一下yy 是否正确
回复
yutaocool 2003-12-23
我这个是用来打印的,就这么一句话!直接从数据库调数据!而且在我本地执行的时候,不会出错!
就是给车间用的时候,过一段时间会出现这种情况!
另外再问一下,客户端的ClientDataSet和中间层连接时还需什么配置?
写的详细点儿,谢谢!
回复
zhangheaaa 2003-12-23
这一段程序好象正确,可能是其它地方出了问题,检查一下其它的程序代码,配置等。
可以单步调试一下,或者在程序中添加一个showmessage(trim(yy));等语句,检查一下
执行的过程。
回复
babyboy 2003-12-23
回复
yutaocool 2003-12-23
To little_five_gqw(小五)
你的意思是我的sql语句调用数据库中的数据可能会出错,一旦出错返回的结果就都是一样的了,对吗?

解决的办法就是在qryPrint.Close 语句之后, 把qryPrint.XMLData赋个空值!
这样一来就可以了是吗?
我去试试!
回复
little_five_gqw 2003-12-23
qryPrint.Close ;
qryPrint.XMLData := '' ;//否则只要上一句SQL出错,以后返回的结果都是一样的
qryPrint.Params.ParamByName('sinspfabid').AsString := trim(yy);
qryPrint.Open ;
showmessage(qryprint.fieldbyname('sinspfabid').AsString);//
回复
Dlwxn 2003-12-23
不会,帮你顶!
回复
yutaocool 2003-12-23
我自己顶!
回复
yutaocool 2003-12-23
你怎么只说了个ip啊?什么意思?详细点
回复
missj 2003-12-23
ip
回复
发动态
发帖子
网络通信/分布式开发
创建于2007-08-02

1565

社区成员

Delphi 网络通信/分布式开发
申请成为版主
社区公告
暂无公告