[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 12/16 17:55 / Filesize : 176 KB / Number-of Response : 928
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

SQL文をハードコーディングするやつはとっとと氏ね



1 名前:仕様書無しさん [2007/02/07(水) 01:32:56 ]
って思う

660 名前:仕様書無しさん mailto:sage [2008/03/03(月) 22:41:36 ]
>>659
concat(concat(substr(B,1,2),'z'),substr(B,4,3))でupdateしたらどうか?

661 名前:仕様書無しさん [2008/03/03(月) 22:50:13 ]
>>660
本当にありがとうございます!!
さっそく明日実行してみます。!!
「現場で使えるSQL」って本読んでもうまくSQL文思いつかなくて。。。
本当にありがとうございます!!

662 名前:仕様書無しさん mailto:sage [2008/03/03(月) 23:05:55 ]
設計が悪いようにしか思えん。


663 名前:仕様書無しさん mailto:sage [2008/03/04(火) 00:38:36 ]
これ酷いな

664 名前:仕様書無しさん mailto:sage [2008/03/04(火) 13:13:52 ]
ハードコーディング最強

665 名前:仕様書無しさん mailto:sage [2008/03/04(火) 17:31:29 ]
S2DAOでいいや

666 名前:仕様書無しさん mailto:sage [2008/03/04(火) 22:17:23 ]
>>659 コボラーのにおいがする

667 名前:仕様書無しさん [2008/03/05(水) 00:34:15 ]
ストアドは使わないの?
コンパイル時間がかからないから初回がやたら遅いSQLにいいじゃん。

668 名前:仕様書無しさん mailto:sage [2008/03/05(水) 01:17:28 ]
DBにSQL文いれときゃいいじゃん



669 名前:仕様書無しさん mailto:sage [2008/03/06(木) 09:35:17 ]
>>668
それを取得するSQLはどうするんだ?

670 名前:仕様書無しさん mailto:sage [2008/03/07(金) 00:50:45 ]
Dim SQL As String
SQL=DLookup("SQL","M_SQL管理テーブル","id=xxx")


671 名前:仕様書無しさん mailto:sage [2008/03/07(金) 02:30:25 ]
Accessはポイだポイ。

672 名前:仕様書無しさん mailto:sage [2008/03/11(火) 06:32:38 ]
>>670
Aceess かどうかはともかく、SQL 文を id(多分 数値型のつもりでしょ) で管理するってのは、
関数やら手続きを連番で管理するのと同じにおいがする。
id='xxxマスタ取得' とか id='xxx一覧取得' とかなら、数値管理よりはましかな。



673 名前:仕様書無しさん [2008/03/14(金) 01:36:48 ]
>>672
これやった事ある。
SQLを修正するときは探すのも面倒なので新規にテーブルに
放り込んでたw
ソース側はid変えるだけ。
思ったよりも混乱は生じなかったよ。
DBに2回アクセスするのが欠点だけどw




674 名前:仕様書無しさん mailto:sage [2008/03/14(金) 02:29:54 ]
SQLを別の場所に置いたとして、SQL修正後のテストのために
どのプログラムから、そのSQLが使われてるかとか常に管理してんの?
それとも複数のプログラムからはSQLを共有しない?

675 名前:仕様書無しさん [2008/03/14(金) 02:44:42 ]
>>674
>それとも複数のプログラムからはSQLを共有しない?
その通りまったく同じSQLがたくさんはいっている。
ソース内で同じIDのSQLを呼び出さないルール
ソース側との整合性だけとれてればいいので管理しない。
テスト時に帰ってきたSQLが正しいかだけチェックしてる。
ぶっちゃけると中国人プログラマが勝手にこのルールに
してしまったので皆つきあわされたww


676 名前:仕様書無しさん mailto:sage [2008/03/14(金) 07:59:11 ]
SQLを動的に作る自作API使ってる。1500行。
メリットはどんなSQL DBにも対応可能。
汎用性/柔軟性が高い。開発効率が良い。

デメリットはストアドとかが使えない。

677 名前:仕様書無しさん mailto:sage [2008/03/14(金) 20:24:52 ]
それならS2JDBCでも使えよ。
まぁ、Javaじゃないかもしれんが

678 名前:仕様書無しさん [2008/03/14(金) 22:28:20 ]
SQLを外出しにして管理しても再利用できる汎用的なSQLは
せいぜい全体の2・3割程度で、ほとんどは1箇所でしか使われない。
単純で汎用的なSQLについてはOR-MAPした方が便利だが、
帳票出力、データ集計、条件が複雑に変化するな検索など
ビジネスロジックそのものと言えるSQLはオンコーディングか、
ストアドにしてしまった方がシンプルかと…




679 名前:仕様書無しさん [2008/03/14(金) 23:27:03 ]
おれもストアドだな

680 名前:仕様書無しさん mailto:sage [2008/03/15(土) 00:17:05 ]
ストアド使い出すと、増えすぎて見通しが悪くなるから好かん

681 名前:仕様書無しさん mailto:sage [2008/03/15(土) 00:40:08 ]
ストアドはうざいから俺も好かん

682 名前:仕様書無しさん mailto:sage [2008/03/15(土) 01:03:25 ]
異様に処理時間のかかるアホみたいなのを平気で組むヤツが居るんよな

683 名前:仕様書無しさん mailto:sage [2008/03/15(土) 01:08:04 ]
Oracleマニアみたいな人が作って残していった
バッチ処理で1万行のプロシージャと闘ったときは死ぬかと思った。
単純になるなら歓迎だけど、意地でもストアドみたいなポリシーはやめて欲しい。

684 名前:仕様書無しさん [2008/03/15(土) 12:26:23 ]
>>683
それはストアドにしたから複雑になったんじゃなくて、
SQL一発でできることを無駄にカーソルで処理するから複雑になってるのでは?

685 名前:仕様書無しさん mailto:sage [2008/03/15(土) 12:42:31 ]
>>683
1プロシージャに1万行なんて、そいつがキチガイなだけだろ


686 名前:仕様書無しさん mailto:sage [2008/03/15(土) 21:56:57 ]
「カーソル」が使われているストアドは、COBOLからの書き換え以外認めない。


687 名前:仕様書無しさん mailto:sage [2008/03/16(日) 23:46:20 ]
>686
それはまた極端なw

688 名前:仕様書無しさん [2008/03/22(土) 08:18:00 ]
人間中庸が肝心だ。



689 名前:仕様書無しさん mailto:sage [2008/03/22(土) 22:36:55 ]
PHPでSQLをハードコーディングしてあってびびった。
SQLは切り出せよ。
SQLインジェションされてサニタイズ漏れたら終わりだろがと。

言ったが今でも放置されたまま。

690 名前:仕様書無しさん mailto:sage [2008/03/22(土) 22:54:54 ]
>>689
ハードコードしてあっても
プレースホルダ使うだけでだいぶ変わるがな。

つか「インジェション」ってwww

691 名前:仕様書無しさん mailto:sage [2008/03/23(日) 01:07:26 ]
SQLをハードコーディングすることとSQLインジェクションの問題は直行しているから、>>689の指摘は的外れだったんじゃないかなぁ?

692 名前:仕様書無しさん mailto:sage [2008/03/23(日) 10:07:08 ]
>>691
直行?直交にしてもわからんしな。関係ないってコトじゃないのか。

693 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2008/03/23(日) 13:15:03 ]
ストアドにちておけば内部で文字列化ちてselectとかexecuteみたいなアホなことちないかぎり
問題ないちな (・∀・)

694 名前:仕様書無しさん [2008/03/23(日) 13:57:07 ]
ストアド簡単なのに作ろうとしない馬鹿が多すぎてこまる。
提案してもメンテできない・わからないで握りつぶされる。
結果ハードコーティングでバグおこしてデスマ。
あほSEは早く欝になって首つってくれ!!!!!

695 名前:仕様書無しさん mailto:sage [2008/03/23(日) 14:08:35 ]
>>694
> 提案してもメンテできない・わからないで握りつぶされる。

ありがちだが、その連中の言い分も分からなくはない。


696 名前:仕様書無しさん mailto:sage [2008/03/23(日) 14:45:01 ]
>>694
ストアドは扱いが難しい。

テーブル設計が完了した段階でデータベースの構造をフリーズして
後はデータの出し入れだけにしたいという方針が普通の感覚だと思うんだが、
プログラムと同じ感覚でストアドを作ると、この方針と衝突する。

データの意味づけが拡張されてストアドの修正が必要になっても、まかりならんって
ことになったりする。
そういう時はしかたないので、プログラム側でストアドに相当するSQLを新しく
発行するようにして、ストアドは呼ばなくなる。

設計段階でストアドの要件もしっかり決めておけってのが正論なんだろうが。
間に合わせ的に使ってしまったりするな。

697 名前:仕様書無しさん mailto:sage [2008/03/23(日) 15:00:25 ]
俺がストアド嫌いな理由は、デバッガが使いにくいから。と
単純なSELECTやINSERTだったら、
ORマッピングツールのほうが良くて
混在すると鬱陶しいから、極力ORマッピングツールを使う。

提案してもメンテできない・わからないっていう、
SEはしんだほうがいいなと俺も思う。

698 名前:愛ちゃん mailto:sage [2008/03/23(日) 17:20:48 ]
ORマッピングとかORマッパってどういうものなんでしょうか?



699 名前:仕様書無しさん mailto:sage [2008/03/23(日) 17:31:52 ]
SQL書かなくてもRDBが使える魔法の箱さ!

700 名前:仕様書無しさん mailto:sage [2008/03/23(日) 17:41:55 ]
ストアドは自動テストに組み込み難いんだよな
デバッグも面倒だし

701 名前:仕様書無しさん mailto:sage [2008/03/23(日) 17:43:21 ]
制約が多すぎで使えねー、
検索系で組み込んだら遅くて使えねー、
マスタメンテ以外につかえねーの三拍子

意地でも使ってやるって人の背中にはデスマオーラが漂ってる

702 名前:仕様書無しさん mailto:sage [2008/03/23(日) 18:16:54 ]
派生開発案件で元が腐ってたとかならともかく、
ストアドなど書かずに済むようにDB設計するのが基本だと思う。

あと、「性能」を理由にすぐにストアドを使いたがるプログラマって
単に手続き的にしか物事を考えられない(まともなSQLの書き方を知らない)
人が多いような。

703 名前:仕様書無しさん mailto:sage [2008/03/23(日) 19:42:09 ]
バージョン管理とかはメンドクサくないの?

704 名前:仕様書無しさん mailto:sage [2008/03/23(日) 21:54:50 ]
ストアドはバージョン管理めんどくさい。
ストアドは、データベースやSQL Serverの外から呼び出すプログラミング環境が
貧しかった時代の亡霊だと思う。昔はストアドで何でもかんでもやってた。

705 名前:仕様書無しさん mailto:sage [2008/03/23(日) 23:37:49 ]
ORマッパについて解説しているサイトをご存じないですか?


706 名前:仕様書無しさん mailto:sage [2008/03/24(月) 00:38:02 ]
今までの意見をまとめると、RDBSは糞ってことで良いか?

707 名前:仕様書無しさん mailto:sage [2008/03/24(月) 00:52:36 ]
ハードコーディングってなんだろう

708 名前:仕様書無しさん [2008/03/24(月) 01:25:17 ]
>707
>91



709 名前:仕様書無しさん [2008/03/26(水) 22:46:34 ]
ストアドの方がパフォーマンスが良いとかはもう昔の話?
あと権限についてですが、ハードコーディングだと実行権限付与がめんどくないですか?そんなことないかな。
自分の会社はWebの開発が多いのですが、例えばIISを使っている場合だと
IISの匿名ユーザーにストアドの実行権限を付与してるだけです。
テーブルの書き込み権限とかは一切与えてなく、ストアドの実行権限のみです。
その方が安全とか先輩が言ってました。

710 名前:仕様書無しさん mailto:sage [2008/03/26(水) 22:50:37 ]
そりゃそうだ
最近SQLを満足にかけない奴がORまっぱとかほざいてるだけのような気がする

休日は自宅にヒキコモリ。
仕事じゃひとつの言語にヒキコモリ。
ヒキコモリ人生万歳ですか?

711 名前:仕様書無しさん mailto:sage [2008/03/26(水) 22:55:45 ]
>709
別に昔の話ではない。今も通じる。

権限は……面倒くせえからDBAでアクセスしちまえウハハハってのばかり見かけるが

712 名前:仕様書無しさん mailto:sage [2008/03/26(水) 22:56:22 ]
>710
前半と後半の乖離ぐあいにワラタ

713 名前:仕様書無しさん mailto:sage [2008/03/26(水) 23:30:39 ]
>>709
ストアドの方がパフォーマンスがよいって言うのは今でも正しいけど、
テーブル設計とSQLの筋さえよければ今は十分なパフォーマンスが稼げる。
だからクエリをDB側ではなくアプリ側に持っていく事によって得られる
開発パフォーマンスの向上が今は重視されている感じだな。

714 名前:仕様書無しさん mailto:sage [2008/03/26(水) 23:32:59 ]
実行プランを認識してない馬鹿が組むSQLは見てらんない
死ねばいいのに

715 名前:仕様書無しさん mailto:sage [2008/03/26(水) 23:41:11 ]
>>704
OSI7層モデルから勉強しなおせ。

716 名前:仕様書無しさん mailto:sage [2008/03/27(木) 22:28:29 ]
>>715
OSI7層って実行速度より美しい理論モデル作りたがりの産物じゃん
当時の実装は各境界の通信でオーバーヘッド出まくりで
遅くて使い物にならないものが多かった
マシンの性能が上がった今なら実装のしようもあるだろうが
IPにとって代わられちゃったし

717 名前:仕様書無しさん mailto:sage [2008/03/28(金) 01:56:38 ]
>>716
OSIの考え方を用語するつもりはないが、
OSIは政治的に潰されたんだよ。これ豆知識ね。

718 名前:仕様書無しさん mailto:sage [2008/03/28(金) 07:28:36 ]
>>717
OSI モデルの第 8 層って奴だな。
あと、宗教層・経済層ってのを加えるときもある。




719 名前:仕様書無しさん mailto:sage [2008/03/28(金) 09:11:35 ]
>>718
それは、知らなかった。補足ありがとう。

720 名前:仕様書無しさん mailto:sage [2008/03/28(金) 21:34:09 ]
一時期 layer8.jp とか取ろうと思ったこともあったが、
やっぱり取られてたぜ。


721 名前:仕様書無しさん [2008/03/31(月) 07:33:52 ]
ハードコーディングとストアドを比べたらストアドの方がよい。
けれどハードコーディングには次のメリットがある。

たとえば、
WHERE
(col1 LIKE #para1# or #para1# = '')
AND
(col2 = #para2# or #para2# = 0)
AND
(col3 = #para3# or #para3# IS NULL)

この程度でIF文はいらん。
実行時にコンパイルされるから、ハードコーディングなら、col1〜col3 に
インデックスがあれば利用される。

ストアドならアクセスパスは固定されてしまって、col1〜col3 にインデックス
があっても利用されない。
こういうときはストアドでも、敢て動的SQLにするんだけど、そこまで気を
使っているコーディングを見ることがないな…。


722 名前:仕様書無しさん mailto:sage [2008/03/31(月) 08:56:59 ]
>>721
>この程度でIF文はいらん。
そんなこと言うから変なコードが増える。
IF文をけちってなにかいいことでもあるのか。

723 名前:仕様書無しさん [2008/03/31(月) 09:28:34 ]
>>722
ヘタクソやね〜。
母言語とSQLでスパゲッティ作っておいしいか?

724 名前:仕様書無しさん mailto:sage [2008/03/31(月) 10:03:52 ]
スパゲッティ?

725 名前:仕様書無しさん mailto:sage [2008/03/31(月) 20:01:02 ]
>>721ぐらいなら普通IFなんて使わんだろ。

726 名前:仕様書無しさん mailto:sage [2008/03/31(月) 21:21:00 ]
"commit"をハードコーディングする俺の会社orz

727 名前:仕様書無しさん mailto:sage [2008/03/31(月) 21:27:21 ]
>>726
それなんか問題あんの?
どーでもいいじゃん

728 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2008/03/31(月) 22:08:26 ]
正直、ストアドのwhere句に条件式入れるのと、exeのsql文のwhere句に入れる違いがわからん。



729 名前:仕様書無しさん mailto:sage [2008/04/01(火) 07:24:50 ]
>>728
プランナについて勉強しよう

730 名前:仕様書無しさん mailto:sage [2008/04/01(火) 12:07:32 ]
勉強できるほどの知能があれば、とっくにコテやめてるだろう。

731 名前:仕様書無しさん mailto:sage [2008/04/01(火) 18:24:21 ]
commit はハードコーディングじゃないの。
(一ヶ所にまとめるけどね)
少なくとも俺はストアドの中には書かせない。
ネストしたらえらいことだ。

732 名前:仕様書無しさん [2008/04/01(火) 19:02:34 ]
>>722
sWhere = " WHERE a.colx = '" + 画面.xx + "'";

if (画面.yy != 未入力){
sWhere += " AND a.coly = '" + 画面.yy + "'";
}

if (画面.zz != 未入力){
sWhere += " AND EXISTS (SELECT * FROM TABLE b ";
sWhere += " WHERE a.key = b.key";
sWhere += " AND b.colz = '" + 画面.zz + "')";
}

ってなコーディングは山ほど見たな… 吐きそう …オェ〜
もっとへたくそは " AND "がいるか判定してたり…orz

これはこうなるべ。

sWhere = " WHERE
sWhere += " a.colx = :parX";
sWhere += " AND (a.coly = :parY OR :parY IS NULL) ";
sWhere += " AND (EXISTS "
sWhere += " (SELECT * FROM TABLE b ";
sWhere += " WHERE a.key = b.key";
sWhere += " AND b.colz = :parZ)";
sWhere += " OR :parZ IS NULL";
sWhere += " )";

良く見ろよ。
固定のSQLじゃないか?(ストアドにした方がすっきりするべ)
動的SQL(コストベース)なら coly も、インデックスが
存在して効率的なら使われるんだな。

733 名前:仕様書無しさん mailto:sage [2008/04/01(火) 21:42:39 ]
>>727や731のコードが汚いことはよくわかった。

宣言的トランザクション使えよ。

734 名前:仕様書無しさん [2008/04/01(火) 21:58:27 ]
>>733はバカ


735 名前:仕様書無しさん mailto:sage [2008/04/01(火) 22:18:44 ]
ORまっぷっぷは、SQLも覚えられないボケが崇拝するお花畑のちょうちょに過ぎないし。
プロシージャはマニア魂を刺激しちゃって、ろくなことにならないときあるし。

やっぱハードコーディングが一番いいよ。
効率的だし、ブレないし、マニアックになり過ぎないし。

736 名前:仕様書無しさん mailto:sage [2008/04/01(火) 22:20:44 ]
でも最近はORマッパで済ませちゃうのがもてはやされる。
Railsとか。

737 名前:仕様書無しさん mailto:sage [2008/04/01(火) 22:25:08 ]
結論から言うと適材適所でしょ
ルールはきちんと作ってだけどね

738 名前:仕様書無しさん mailto:sage [2008/04/01(火) 22:31:39 ]
関係ないけどJOIN禁止のプロジェクトとかまだあんのかなぁ



739 名前:仕様書無しさん mailto:sage [2008/04/01(火) 23:02:24 ]
3年間オラクレばっかやってた。
今度SQL鯖やるんだけどJOINって何だよおしえれorz


740 名前:仕様書無しさん [2008/04/01(火) 23:05:51 ]
グイでグイグイやってたらSQLは勝手に出来る

741 名前:仕様書無しさん [2008/04/01(火) 23:18:16 ]
結局ハードコーディングの方があとで分かりやすいんだよな

742 名前:仕様書無しさん mailto:sage [2008/04/01(火) 23:19:39 ]
Set OraDynaset = Nothing

743 名前:仕様書無しさん mailto:sage [2008/04/01(火) 23:20:27 ]
うん。
別ファイルにしてあると、開くのにマウスこちこちしないといけないからめんどくさいしね。

744 名前:仕様書無しさん mailto:sage [2008/04/01(火) 23:21:49 ]
今日書いたSQLは3年後5年後も通用するが今日使ったO/R mapperは
3年後5年後には誰も使わないレガシーな技術になってると思う

745 名前:仕様書無しさん [2008/04/01(火) 23:43:57 ]
>>739
(+)

746 名前:仕様書無しさん mailto:sage [2008/04/02(水) 00:13:02 ]
unionしてsumしてクロス集計ってアリなの?

747 名前:仕様書無しさん mailto:sage [2008/04/02(水) 09:37:09 ]
ORマッパがいいのなら、素直にオブジェクト指向データベース使えよ。
なぜ、今まで使われなかったのか、考えてみ。

748 名前:仕様書無しさん mailto:sage [2008/04/02(水) 20:32:28 ]
>>745
それはオラクル特有のおまじないじゃん?



749 名前:仕様書無しさん mailto:sage [2008/04/02(水) 22:10:52 ]
今さら (+) なしの生活には戻れないわ・・・
もうすっかりOracleに毒されちゃってるのよ・・・

750 名前:仕様書無しさん mailto:sage [2008/04/02(水) 22:29:39 ]
最近のSQL Serverだと*=や、=*は使えないんだっけ?
つーか、Oracleでも9i以降ならOUTER JOINで書かないか?

751 名前:仕様書無しさん mailto:sage [2008/04/02(水) 22:48:57 ]
ora9iのOUTER JOINはバグが潜んでる

752 名前:仕様書無しさん mailto:sage [2008/04/02(水) 23:55:27 ]
バグは、9.1.4までじゃない?
(+)を書く奴は氏ねとは言わんけど、金取れるプロじゃないわな。

753 名前:仕様書無しさん mailto:sage [2008/04/03(木) 00:45:44 ]
www.google.co.jp/search?q=(%2B)

754 名前:仕様書無しさん mailto:sage [2008/04/03(木) 02:38:01 ]
>>752
何で死ね扱いなんだ?
俺は書きやすいし読みやすいから (+) の方がすきなんだが

755 名前:仕様書無しさん [2008/04/03(木) 07:58:45 ]
*=とかよりはJOINの方が見やすいという人が多い。
自分もそう思います。


756 名前:仕様書無しさん mailto:sage [2008/04/03(木) 09:20:53 ]
>>754
SQLの意味が分かってない。
SQL とは Structured Query Language(構造化問合せ言語)

省略語じゃないとかそんなことはどうでもよいけど、
構造化いうのは、句ごとに役割が決まっているわけ。

WHERE句に結合条件と抽出条件を混在させても違和感を
覚えない時点で、プロとしてのセンスはない。


757 名前:仕様書無しさん mailto:sage [2008/04/03(木) 09:37:48 ]
>>756
あの旧世代の腐れ構文が構造化されているように見えるとは恐れ入った。

758 名前:仕様書無しさん mailto:sage [2008/04/03(木) 09:46:18 ]
xxxx JOIN Table ON
という書き方が冗長というのは、同じ非英語圏の人間だから
わからんではないが、WHERE句に結合条件を書くのは痛い。



759 名前:仕様書無しさん [2008/04/03(木) 10:05:05 ]
>>757
まぁ、あれだ。
マシン語から新世代に近づくほど、
自然言語に近づくもんなんだ。
ループがある方が旧世代なんだな。


760 名前:仕様書無しさん mailto:sage [2008/04/03(木) 11:34:11 ]
>>757
腐っていようが…。
WHERE句に結合条件を書いたら、もっと腐る
ということが分からない時点で終わってる。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<176KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef