- PR -

DBでMAX関数を使ってSELECTした場合

投稿者投稿内容
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2003-04-18 13:34
tabbyです。

>このコーディングはハマる可能性があるような気がします。たとえば、
>select * from hoge という SQL 文でクエリをおこない、
>getInt(fieldNo) で値を取得しているケースで、
>テーブル定義が変更になったとたん、あちこちで予期しない値を取得してしまう、

"*"指定でSQLを書かないので、プログラムに影響のないレベルの
テーブル構造変更(フィールド追加等)で問題になることはありません。

取得するのは必要なフィールドだけ&全指定でもフィールド名列挙
と思ってたんですけど、ローカルルールなのかも。


>select A, B, C from hoge という SQL 文でクエリをおこない、
>getINT(A) で値を取得しているケースで、
>フィールド名の変更にあわせて定数の名称だけ修正してしまい、
>SQL 文がエラーになる、

こういう場合って先にSQL文を変更しませんか?
結果の構造が同じであれば、SQL文が変わっても他の部分には影響はないはず。


なんて書いたけど、もともとはフィールド名指定で値が取れないJDBCドライバの
対応で序数指定を使い始めたのが始まり。
基本的には名前指定を使ってる事のほうが多いです。序数指定はCOUNT(*)等の
関数を使う場合や、取得するフィールドが少ない場合、パフォーマンス要求が
厳しい場合などに使っています。
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-07-17 15:07
こんにちは

便乗させてもらいます。

nabeママさんはJAVAのようですが、
ASP.NET(VB.NET)でも「executeQuery」を使えばいいですか?

そして、rsやstmtは何のオブジェクト(?)ですか?

で、DBでSUM関数を使う場合はどうすればいいのですか?

最近、SELECTやINSERT等ができるようになり喜んでいるので
DBに関して初心者でして、皆さんの会話について行けませんです。


まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-07-17 16:13
みのるさん、

ここはJava Solution会議室ですのでその手の質問はInsider.NET会議室で行ったほうがよいかと。
あと、質問の内容がかなり初歩的なので、@ITの記事をざっと眺めるなりしてもうちょっと独学してみてはいかがでしょう。

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