请问delphi ADOquery组件查询的数据为什么和在SQLSERVER 2005 上查的不一至

请教delphi ADOquery组件查询的数据为什么和在SQLSERVER 2005 上查的不一至
请教delphi ADOquery组件查询的数据为什么和在SQLSERVER 2005 上查的结果不一至

[Window Title]
shipping mark printer

[Content]
select mf_tz.tz_dd,mf_tz.so_no,mf_tz.mrp_no,mf_tz.zc_no,tf_tz.tz_no,tf_tz.itm,tf_tz.prd_no,prdt.name as prd_name,tf_tz.wh,tf_tz.qty,tf_tz.qty_rtn,prdt1.qty as prd_qty,prdt1.qty_on_way,prdt1.qty_on_rsv 
from tf_tz 
 inner join mf_tz on mf_tz.tz_no=tf_tz.tz_no
 inner join prdt on tf_tz.prd_no=prdt.prd_no
 inner join prdt as prdt0 on mf_tz.mrp_no=prdt0.prd_no
 inner join prdt1 on tf_tz.prd_no=prdt1.prd_no and tf_tz.wh=prdt1.wh 
where mf_tz.so_no='UP-GOM-029' 
order by tf_tz.tz_no,tf_tz.itm



[OK]

其中tf_tz.qty_rtn DELPHI中全部为0,而在SQLSERVER 2005中正常
问题出在哪里呢?
------解决思路----------------------
tf_tz.qty_rtn字段类型?
------解决思路----------------------
在数据库中是不是nText类型,我以前遇到过组件中不显示的情况,就是类型的问题
------解决思路----------------------
能把在SQL2005中显示的结果贴上来?
------解决思路----------------------
应领和未领的值一样,相减的结果是0没有错啊

看你划的,眼花啊
就把错误的划出来就好了
------解决思路----------------------
有点眼花。。。。。
------解决思路----------------------
明白了你的问题。
1、SME显示的数据,是原始数据,它是按照字段类型定义的准确格式;
2、ADOquery获取的数据,与原始数据一致的,不存在数值的变异;
3、你的问题是DBGrid显示的格式不一样。我们可以通过格式化DBGrid显示的格式,来解决你的问题。

比方numeric(22, 8)字段,如果保存4.4,在MSSQL中保存的值应该是4.40000000;
在DBGrid中,(简略)显示4.4。
------解决思路----------------------
 虽然显示不同,但值的精度都是一样的。
------解决思路----------------------
字段精度的问题,可以格式化DBGrid的字段来准确显示的,论坛上也有这方面的资料,可以搜索一下。