起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1302|回复: 33

FMTBcd Scale no match错误**

[复制链接]
发表于 2007-1-15 10:42:14 | 显示全部楼层 |阅读模式
在打开原来在2.0上运行的运转记录表的时候出现如下错误提示,
不知道如何找错误。
TSQLDataset(dsbYZJL.DataSet).SqlFilter := 'TBNF='+''''+IntToStr(FTBNF)+''''
      +' and LSH='+''''+IntToStr(FTBYF)+''''
      +' AND (SBGUID IN (SELECT GUID FROM TABLE_SBJBXX WHERE '
      + lFilter+lDateFilter + '))';
      //End Edit
    TSQLDataset(dsbYZJL.DataSet).SqlFiltered := True;
    dsbYZJL.Dataset.Open;
dsbYZJL.Dataset.Open;//运行到该语句时出错

bcd.jpg

14.17 KB, 下载次数: 186

回复

使用道具 举报

发表于 2007-1-15 13:24:15 | 显示全部楼层
搂住,你跟踪一下,你实际传进去的 SqlFilter 这个串的内容是你需要的吗》这应该是你的条件传的不对
回复 支持 反对

使用道具 举报

发表于 2007-1-15 13:57:49 | 显示全部楼层
好象是小数位不对,请确认在平台上定义的小数位数跟物理表中的小数位数是一致的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-15 16:10:05 | 显示全部楼层
实在不知道如何查问题。因为有的单位运行该功能不出问题,有的单位运行该功能有问题。
有问题的单位,并不是每个月有问题,而是有的月份有问题,核对了一下字典,只有两个字段不一样,实际开动小时,在物理数据库里有定义的是(number),在字典里无论如何定义,都出现问题,因为number型,实际数据有整数也有一位小数。
sql语句如下图

sql.jpg

16.84 KB, 下载次数: 168

回复 支持 反对

使用道具 举报

发表于 2007-1-16 14:32:52 | 显示全部楼层
搂住,“只有两个字段不一样,实际开动小时,在物理数据库里有定义的是(number),在字典里无论如何定义,都出现问题,因为number型,实际数据有整数也有一位小数。”

怎么会这样呢,你手工修改一下行吗?这应该就是这个问题,至于你说的有的月对,有的不对,这是跟里面的数据有关系,你还是把它们两边的定义修改为一样,然后再看吧。如果还是不行,请把这两个定义分别截取图片贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-17 08:33:37 | 显示全部楼层
number字段在oracle修改为number(位数,小数位)非常麻烦,需要该字段为空时才能修改,因为原来该表有数据,而且数据量很大。我查了一些数据,数据的小数是.5的时候没有问题,小数是.1、.2、.3、.4或(.6、.7、.8、.9)的时候有问题,应该是平台的问题。
回复 支持 反对

使用道具 举报

发表于 2007-1-17 09:35:56 | 显示全部楼层
不用啊,你修改平台上的逻辑表定义,让它跟物理表对应上也是可以的啊
回复 支持 反对

使用道具 举报

发表于 2007-1-19 11:33:57 | 显示全部楼层
搂住,怎么样了,无论结果如何,都请跟贴反馈一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-23 11:24:54 | 显示全部楼层
对不起,最近因为忙于其它问题,所以没跟贴。
修改平台上的逻辑表定义也出问题,6楼的说法有误,实在不知如何查找错误。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-1-25 15:55:22 | 显示全部楼层
可能是浮点数的原因。85.40000000000001、89.59999999999999
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-25 21:39 , Processed in 0.044844 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表