- PR -

同じ結果を返すResultsetなのに変更可否が分かれるのは何故?

投稿者投稿内容
夕飯のおかず
会議室デビュー日: 2006/01/25
投稿数: 8
投稿日時: 2006-01-30 09:03
どうも返事が遅れました。皆さん、症状のご確認ありがとうございます。
当方はJavaにつきましてはbuild 1.4.2_10-b03を利用しています。
ただPostgreSQLについても、8.1.1ですからそんなに古いワケじゃないですし、流石に2年前のパグは吸収されているはずだと思うのですが...

で、「PSQLException: No primary key found for table t_user,.」のエラーですが、実はこのテーブルにはちゃんとPrimary Keyを設定しています。なのに、このエラーなのです。処理としてはユーザ情報を元に権限名を拾ってくるだけ(一方はユーザ情報、一方は権限コードを収めたマスターテーブルです。)なのですが、読み込んだと同時にユーザ情報テーブルに書き込みたい内容があったので

Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);

としています。

データそのものが取れないわけではなく、データは取れるが方や更新できず、方や更新できる違いは何故なのか?と思ったからです。正直申しまして、今まで前者のような記述を主にしており未だANSI標準な書き方に慣れておらず、できれば今まで通りの記述方法で通したいと思っています。




今川 美保(夏椰)
ぬし
会議室デビュー日: 2004/06/10
投稿数: 363
お住まい・勤務地: 神奈川県茅ヶ崎市
投稿日時: 2006-01-31 11:28
もしかして、ですが・・・

Selectができないのではなく、
Selectによって取得したResultSetのupdateXXX( updateString,やupdateDate )メソッドで
エラーになりません?

ResultSetのupdateStringメソッドでなら、再現できたんですが。
夕飯のおかず
会議室デビュー日: 2006/01/25
投稿数: 8
投稿日時: 2006-01-31 14:00
はい、正しくその通りです。どうも不明瞭な質問の仕方で申し訳ありませんが、夏椰|。σ)o様の仰るように、updateRow()の時点でcatch()されます。

夏椰|。σ)o様には何か心当たりがございますでしょうか?

スキルアップ/キャリアアップ(JOB@IT)