[前][次][番号順一覧][スレッド一覧]

mysql:7665

From: UNO Shintaro <UNO Shintaro <uno@xxxxxxxxxx>>
Date: Wed, 07 May 2003 13:16:44 +0900
Subject: [mysql 07665] Re: <JDBC> クエリーで関数を使うには?

>くろたろうです。宇野さん、軽部さん、ご返答ありがとうござ
>います。説明不足な内容で申し訳ありませんでした。今回は、
>関数を使うとSQLのシンタックスエラーが出るということが問
>題でした。以下に詳細を記します。どうか、よろしくお願いし
>ます。(実際のソースは最後に記載しています。)
(以下略)

多分、createStatementのときにresultSetConcurrencyに渡す値を間違えてる
と思います。ResultSet.CONCUR_UPDATABLEを指定してませんか?
ResultSet.CONCUR_READ_ONLYを指定してください。

select * from master; が返す結果は実テーブルなので更新可能です。
なのでResultSet.CONCUR_UPDATABLEでcreateStatementしてもOKです。
一方、select sum(tan_odds) from master;が返す結果は実テーブルではない
ので更新不可能です。なのでこの場合はResultSet.CONCUR_READ_ONLYを指定
してcreateStatementしなければなりません。

この指定が間違っていると、アップデート操作に備えて、実テーブル名がない
のにgweMysql内部で結果セットのプライマリキーを取得するために内部クエリ
ー(SHOW KEYS FROM文)を発行し、そのクエリーがsyntax errorを起こします。


余談ですが、createStatementの呼び出しが省略されていたので、gweMysqlの
ソースを追いかけてやっと上記の推論に辿りつきました。なるべく省略しない
でくださいね。(^^;

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno@xxxxxxxxxx
http://www.venus.dti.ne.jp/~uno/

[前][次][番号順一覧][スレッド一覧]

      7657 2003-05-07 08:38 [くろ たろう <kuro_ta] &lt;JDBC&gt; クエリーで関数を使うには? 
      7663 2003-05-07 13:06 ┣[ken <t_takahashi@xxx]                                       
      7664 2003-05-07 13:11 ┣[ken <t_takahashi@xxx]                                       
->    7665 2003-05-07 13:16 ┗[UNO Shintaro <uno@xx]