首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC-ODBC问题-有值时返回空的Resultset.getString()

JDBC-ODBC问题-有值时返回空的Resultset.getString()
EN

Stack Overflow用户
提问于 2011-02-04 19:53:51
回答 1查看 5K关注 0票数 0

首先,这是我在Windows、Windows 7和Windows 2008上遇到的问题,而不是XP和Server 2003上的问题。

我知道,在Windows 2003和Windows之间,微软将MDAC (我们的版本为2.8)更改为WDAC 6.0,而且我认为,我的问题就在那堆热气腾腾的库中。

我有一条SQL语句:“从TermStates.ActualCoeff TermStates选择TermStates.AnalID = '000X‘ORDER BY TermStates.indx ASC”,它返回一列数据,假定没有值可以是TermStates.indx。这些数值精度很高,而且大多数都很小。接近于零),也可以是负的。

第一组数据值如下所示:

-1.31182339008657

4.53959374804032

8.9828426279767

-0.07429423578308

1.90497874662919

-0.966443915857118

0.169642057606282

-0.825467091179711

-0.206287563886913

-1.00269723837058

-1.30688278976707

0.236262277634983

0

0

0

0.108773852550276

0

0

0 -0.0922931225677525

0

0.217813798294512

第二组是这样的:

-1.63590653334839

-0.959565335083171

9.91635261365054

-0.135820145149139

-3.2385711942924

-1.1562654250619

0.174470946581009

0

0

-1.13424407912293

0

1.0795237314308

0

0

0

0.132662710394659

0

0

0

-0.0899603109525667

0

0

还有更多的数据列,它们都显示出相同的问题。如果返回的数字以"-0.0X“开头,则results.getString()函数将返回null。

基本代码如下所示:

代码语言:javascript
复制
results = statement.executeQuery(sql);
if(results != null)
{
    ResultSetMetaData metaData = results.getMetaData();
    ArrayList rowList = new ArrayList();

    String colType = metaData.getColumnTypeName(1);
    Object obj = null;
    if(colType.equals("DOUBLE"))
    {
        obj = null;
        String fValue = results.getString(1);
        if(fValue != null && fValue.length() > 0)
        {
            obj = new Double(fValue);
        }
        else
        {
            obj = new Double(0.0);
        }
    }
    else
    {
        obj = results.getString(1);
    }
    rowList.add(obj);
}

有人见过JDBC桥的这种行为吗?多年来,我一直在这个环境中工作,没有任何问题,但这件事让我很困惑。是否有任何关于"-0.0X“的位对齐方式可能表示64位和32位库之间的问题,或者?如果你们能提供任何帮助,我们将不胜感激。

克里斯

EN

回答 1

Stack Overflow用户

发布于 2011-02-04 20:12:21

就用results.getDouble(1)吧!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4902307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档