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] <JDBC> クエリーで関数を使うには? 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]