Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

DB2へのデータ追加について

DB2について詳しい方、助けてください。
現在、javaでDBへのデータ追加を試みてますが、どうもエラーがでてうまくいきません。

まず、ソースとエラーを以下に示します

//ソース
class TestInsert2 {    
    static String name = "テスト";
    static String f1 = new String("./files/xml/2010130125018.xml");
    static String f2 = new String("./files/image/2010130125018.gif");
    static File file1 = new File(f1);
    static File file2 = new File(f2);    
    static Connection conn = null;
    static String query = "insert into signlanguage.datas(name,image,slxml) values(?, ?, ?)";
    static PreparedStatement insertStmt = null;    
    public static void main(String args[]){        
        try {
                Class.forName("com.ibm.db2.jcc.DB2Driver");
                conn = DriverManager.getConnection("jdbc:db2:SLDB");            
                insertStmt = conn.prepareStatement(query);
                insertStmt.setString(1, name);
                insertStmt.setBinaryStream(2, new FileInputStream(file1), (int)file1.length());
                insertStmt.setBinaryStream(3, new FileInputStream(file2), (int)file2.length());                
                insertStmt.execute();
                System.out.println(insertStmt.executeUpdate()); <<*エラー箇所
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }catch (ClassNotFoundException e) {
                e.printStackTrace();
            }catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    }        
}

//エラー

com.ibm.db2.jcc.b.SqlException: DB2 SQL Error: SQLCODE=-313, SQLSTATE=07001, SQLERRMC=null, DRIVER=3.50.152
    at com.ibm.db2.jcc.b.wc.a(wc.java:55)
    at com.ibm.db2.jcc.b.wc.a(wc.java:126)
    at com.ibm.db2.jcc.b.tk.b(tk.java:1593)
    at com.ibm.db2.jcc.b.tk.c(tk.java:1576)
    at com.ibm.db2.jcc.t4.db.k(db.java:353)
    at com.ibm.db2.jcc.t4.db.a(db.java:59)
    at com.ibm.db2.jcc.t4.t.a(t.java:50)
    at com.ibm.db2.jcc.t4.tb.b(tb.java:200)
    at com.ibm.db2.jcc.b.uk.Gb(uk.java:2355)
    at com.ibm.db2.jcc.b.uk.e(uk.java:3129)
    at com.ibm.db2.jcc.b.uk.zb(uk.java:568)
    at com.ibm.db2.jcc.b.uk.executeUpdate(uk.java:551)
    at TestInsert2.main(TestInsert2.java:43)


*エラーについて調べてみたところ
db2の更新が正常に行われてないのにもかかわらず、insertStmt.executeUpdate();を呼び出したことによりエラーになることはわかりました。

しかし、なぜ更新が行われないか解決できません。

どなたかご教授願えませんか?

よろしくお願いします。

3

回答

81456

閲覧

3件の回答

評価

0

insertを2回も実行してるけど、これはいいの?

評価

0

-313の意味がコチラにありました。
http://support.microsoft.com/kb/819528/

評価

0

ここのSQLSTATE:07001は違います?

http://publib.boulder.ibm.com/html/as400/v5r1/ic2962/index.htm?info/rzala/rzalastc.html

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。