0

Informix用のJDBCドライバーを使用しています。ホストに問題なく接続できますが、クエリが実行されると、selectで指定されたフィールドの1つにnull値が返されます。その値を取得するだけでなく、SQLExceptionがスローされます。

クエリのどのテーブルにも列(列名)が見つかりません(またはSLVが定義されていません)。

私はこのようにドライバーを使用しています:

    try{
    PreparedStatement pstmtDist = conn.prepareStatement(query2);

    ResultSet rsDist = pstmtDist.executeQuery();

    while(rsDist.next()){
            int distCaseId = 0;
            String distCaseIdStr = new String();

            int distCaseDefNum = 0;
            String distCaseDefNumStr = new String();

            distCaseIdStr = rsDist.getObject("colname").toString();
            distCaseId = Integer.parseInt(distCaseIdStr.trim());

            distCaseDefNumStr = rsDist.getObject("colname2").toString();
            distCaseDefNum = Integer.parseInt(distCaseDefNumStr.trim());

            //System.out.println(String.format("distCaseId == %d  distCaseDefNum == %d\n",distCaseId,distCaseDefNum));

    }// end while district cases

    rsDist.close();
    pstmtDist.close();
    connDist.close();

    }
    catch (SQLException e){
            System.out.println("EXCEPTION: "+e.getMessage());


    }

ヒントは大歓迎です!

-TU

4

1 に答える 1

0

私は問題が並んでいると思います:

 distCaseDefNumStr = rsDist.getObject("colname2").toString();

getObject()を返すことができる同様の行でnull

colname2がある場合は戻り、Javaはオブジェクトに対してメソッドを実行しようとします。nullgetObject()nulltoString()null

はい、結果に列が見つからないというメッセージは奇妙ですが、実際にはnullポインタ例外が発生していると思います。の使用getString()またはgetInt()方法ResultSet

于 2013-02-25T11:07:04.830 に答える