[Seasar-user:8628] Re: [S2DAO]ResultSetMetaData が取得できない

豊田 友幸 [E-MAIL ADDRESS DELETED]
2007年 6月 25日 (月) 11:30:38 JST


たびたび申し訳ございません。
また早々のご返答まことにありがとうございます。

> 上記二つの違いは何なのかをまずは、確認させてください。
> もしかして接続文字列など前回と違っていないでしょうか。
> よろしくお願いします。
接続文字列はやはり同様です。
j2ee.diconで指定しているか、プロパティファイルで指定しているかの
違いはあります。
また先日動作確認用のコードをメールにて
頂きましたが下記のようにS2DAO使用画面アプリに
追加いたしました。
下記のプログラムと先ほどの添付のプログラムでは
違いがないように思えるのですが、
下記プログラムではrsmd.getColumnNameの値を取得することができません。

/******************************************************************************
Connection conn = null;
PreparedStatement selstmt = null;

Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@XXX.XX.XXX.X:1521:XXXXXX"; 
conn = DriverManager.getConnection(url, "XXX", "XXXXX");

DatabaseMetaData dmd = conn.getMetaData();
System.out.println("productName : " + DatabaseMetaDataUtil.getDatabaseProductName(dmd));

String[] primaryKeys = DatabaseMetaDataUtil.getPrimaryKeys(dmd, "XXX0010M");
for (int i = 0; i < primaryKeys.length; ++i) {
  System.out.println("primaryKey : " + primaryKeys[i]);
}

String[] columnNames = DatabaseMetaDataUtil.getColumns(dmd, "XXX0010M");
for (int i = 0; i < columnNames.length; ++i) {
  System.out.println("columnName : " + columnNames[i]);
}

PreparedStatement st = conn.prepareStatement("SELECT * FROM XXX0010M WHERE UNAMEK=?");
st.setString(1, "TEST      ");
ResultSet rs = st.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 0; i < rsmd.getColumnCount(); ++i) {
	System.out.println("resultSetColumnName : " + rsmd.getColumnName(i + 1));
	System.out.println("resultSetColumnLabel : " + rsmd.getColumnLabel(i + 1));
}
/******************************************************************************
上記XXXは前回と同様のテーブルではありますが念のため。。。

何卒よろしくお願い致します。

-- 
豊田 友幸 <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内