- - PR -
SQLへの命令
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-06-28 19:29
mysqlに命令をif、elseを使って送りたいのですが、うまくいきません。
ifに関しては問題ないのですが、ifに一致しない場合、何もしないという命令を送る(送るというか何もさせたくない)のですがどうすればよいのでしょうか? いろいろ試したのですがエラーが出てしまします。 int iを返したいのです。 よろしくお願いします。 if (rs.next()) { sql="SELECT * FROM TABLE WHERE ID='" + id + "'"; } else{ 何もしない。 (この部分がわからないです・・・) } int i = stmt.executeUpdate(sql); return i; [ メッセージ編集済み 編集者: hiro 編集日時 2004-06-28 19:40 ] | ||||
|
投稿日時: 2004-06-28 19:50
何もしなかった場合、iに何をセットして返したいのですか?
| ||||
|
投稿日時: 2004-06-28 19:57
何もさせないようにしたいのです。
if文以外なら何もしないようにしたいのです。例えばelseにsql=" ";やsql=nullなどを入れると、何もしないとなるかと思ったのですが、エラーが起きてしまうのです。 ifに一致したら、sqlを操作。不一致なら何もしないというものを作りたいのです。 説明が悪くてすみません。。 | ||||
|
投稿日時: 2004-06-28 20:08
何もしたくないのは分かるんですが、
メソッドの定義上(多分、public int xxxxx() とか宣言してるでしょう?)、 メソッドの呼び出し元にint型の値を返さなくてはいけませんので、 「何を返したいのか?」と聞いたのですが。 仮に、「elseの場合には 0 を返す」という仕様なら、こうなります。
※ 元のコードだと、if文の外でstmt.executeUpdateを実行しようとしてるのに無理があります。 | ||||
|
投稿日時: 2004-06-28 20:46
単純にプログラムの作り方が悪いだけでは、
| ||||
|
投稿日時: 2004-06-28 21:06
身も蓋も無いことを・・・ | ||||
|
投稿日時: 2004-06-29 09:33
int i = 0; if (rs.next()) { sql="SELECT * FROM TABLE WHERE ID='" + id + "'"; i = stmt.executeUpdate(sql); } else{ i = 0; } return i; ちょっと気になるのはSELECT文も executeUpdateを使えますか? SELECTの結果はResultSetだと思っていますが 何がしたいロジッグかが全然判りませんね。 私も早く知りたくて質問する時こんな感じが多いですが 逆に時間がかかってしまったりしますね。 | ||||
|
投稿日時: 2004-06-29 09:52
***************サンのAPIより抜粋****************** executeUpdate public int executeUpdate(String sql) throws SQLException指定された SQL 文を実行します。 SQL 文は、INSERT 文、UPDATE 文、DELETE 文、 または SQL DDL 文のような何も返さない SQL 文の場合があります。 パラメータ: sql - SQL INSERT 文、UPDATE 文、または DELETE 文、あるいは何も返さない SQL 文 戻り値: INSERT 文、UPDATE 文、DELETE 文の場合は行数。何も返さない SQL 文の場合は 0 例外: SQLException - データベースアクセスエラーが発生した場合、 または指定された SQL 文が ResultSet オブジェクトを生成する場合 ******************************************* APIを見るか、実行してみれば解る気が・・・。 [ メッセージ編集済み 編集者: taku 編集日時 2004-06-29 09:53 ] | ||||
