- 1 名前:仕様書無しさん [2007/02/07(水) 01:32:56 ]
- って思う
- 561 名前:仕様書無しさん mailto:sage [2007/11/16(金) 23:19:41 ]
- htmlをロジックと分離するのは、それがデザインであるという以外に
定数として埋め込む手間とかいろいろあるんだよな。 SQLだと後者のメリットしかないんだけど、俺は外出しがいい。 >>559 Where句だけ変わる事って結構あると思うけど。 特に集計するときとか。 自動生成はまた別の問題を抱えていて、条件によって構文すら異なる。 レアケースでだけ構文エラーを起こしたり、解釈が変わってしまうのがいやになったよ。 まるで、Cのマクロで意図しない式に展開されてるときと同じ感覚。 >>560 それはリファクタリングがなってないだけだよな。 変更前後のSQLを差し引きしたら、どこが違うかなんて一発でわかるのに。
- 562 名前:仕様書無しさん mailto:sage [2007/12/07(金) 22:17:12 ]
- >>561
何が言いたいのか全くわからん
- 563 名前:仕様書無しさん mailto:sage [2007/12/18(火) 22:31:47 ]
- 半端な気持ちで外出しするとメンテではまる。
どのプログラムから どのタイミングでどのテーブルのどのフィールドを どのSQLを使って参照・更新するのかが、チームで共有されていて ちゃんと管理されていて、調べやすければメリットがあるけど、 ずさんな場合は依存関係を調べるのに結局ソースにあたるハメに陥り その上、間接的に読まれるせいでソースをGREPしづらいし、数倍面倒になる。
- 564 名前:仕様書無しさん mailto:sage [2007/12/19(水) 01:49:10 ]
- せっかく分けたのにちょっとした修正時に結局両方直さなければならないのは悲しい事だ
- 565 名前:仕様書無しさん [2007/12/19(水) 06:52:44 ]
- 563とか564のスレを読む限り、外出しの推進派と反対派では外出しの方法が違うのでは?と勘ぐってしまう。
564の意見とか的外れもいいとこ。
- 566 名前:仕様書無しさん [2007/12/19(水) 07:11:14 ]
- 重複、ここでやれ。
pc11.2ch.net/test/read.cgi/prog/1180118552/l50
- 567 名前:仕様書無しさん [2007/12/19(水) 09:46:47 ]
- >>565
そう勘ぐったのなら、具体的にどう違うと思ったのか指摘すればいいのに。
- 568 名前:仕様書無しさん mailto:sage [2007/12/19(水) 19:46:57 ]
- スレとレスも間違えてるしな
- 569 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2007/12/20(木) 21:54:00 ]
- 1000行レベルのストアドをソースに埋め込む気にはならんな ('A`)マンドクセー
- 570 名前:仕様書無しさん mailto:sage [2007/12/20(木) 22:31:40 ]
- 何言ってんだオメー
さっさと氏ねよ
- 571 名前:仕様書無しさん [2007/12/22(土) 03:15:40 ]
- 結局、ソースファイルと外出しsqlの両方とも修正しなくといけなくなるだけ。
- 572 名前:仕様書無しさん [2007/12/22(土) 03:17:33 ]
- マ板のスキル低下は著しいなwwwwwww
- 573 名前:仕様書無しさん [2007/12/22(土) 13:17:03 ]
- java向けのスレなのにC++とかのプログラマが来て些細なテクニック論に
なってるなこのスレ
- 574 名前:仕様書無しさん mailto:sage [2007/12/22(土) 13:43:16 ]
- そんな前提>1に書いてないので認めないクマー
- 575 名前:仕様書無しさん mailto:sage [2007/12/22(土) 16:00:08 ]
- >>283
ちょwwそれうちの病院www クエリはないけど、リンクテーブルだらけのmdbファイルあったわ。 でも処理はVBじゃないっぽい。 独自にデータ集計したりするときに俺もそこからインポートしてるけど。
- 576 名前:仕様書無しさん [2007/12/22(土) 19:05:06 ]
- >>573
++マが全部こんなのだって訳じゃないんだぞといっておく
- 577 名前:仕様書無しさん mailto:sage [2007/12/22(土) 19:49:43 ]
- スレの最初のほうを読んで、それ以降はチラ見してただけだから、Javaスレになってたなんて気ずかなかったよ。
- 578 名前:仕様書無しさん mailto:sage [2007/12/22(土) 20:07:09 ]
- づ
- 579 名前:仕様書無しさん [2007/12/22(土) 22:09:20 ]
- SELECT文とかを変数につっこんでExecuteとかマジやめて欲しいんだけど。
特にWebアプリの場合ね。 ストアドを作ってそれを呼ぶだけにするのば一般的だと思ってたんだけど そうでもないの? そういえばカカクコムとか昔攻撃されてたね。
- 580 名前:仕様書無しさん mailto:sage [2007/12/22(土) 22:15:40 ]
- >>579
DB側に処理をおくのは・・・って考え方もあるよ インジェクション対応して無いなんてのはどうやっても問題外
- 581 名前:仕様書無しさん mailto:sage [2007/12/22(土) 23:07:37 ]
- hibernateってヒントつけられないから馬鹿だよね。
使い物にならん。
- 582 名前:仕様書無しさん mailto:sage [2007/12/22(土) 23:11:39 ]
- > するのば
↑ あまり一般的じゃないと思う
- 583 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:21:49 ]
- Webの開発だったら普通はストアドプロシージャを実行するよ。
LINQなんて論外。
- 584 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:26:17 ]
- >>583
ストアドはないだろ・・・
- 585 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:35:25 ]
- >>584
PROCEDUREというやつの事です。 Accessだとクエリだっけ?
- 586 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:37:30 ]
- SQLをハードコーディングする人って多いのね。
- 587 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:49:31 ]
- インジェクション対策ならプリペアードクエリでいいだろ
- 588 名前:仕様書無しさん [2007/12/23(日) 00:55:00 ]
- DBへの処理はDB側で行うのかプログラムに書いちゃうかはプロジェクトによって分かれるね。
今のプロジェクトはDBへの処理は必ずストアドを使うように言われてる。 そもそもプログラムを実行するユーザーにはストアドのGRANT権限しか付与してくんない。 まあどっちでも良いや。
- 589 名前:仕様書無しさん mailto:sage [2007/12/23(日) 00:58:24 ]
- DB側に処理もって行ったら不可分散しにくいじゃん
- 590 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2007/12/23(日) 09:48:57 ]
- 一時テーブルを使えないとスピードが遅くなるからDB側でちょ (`・ω・´) シャキーン
- 591 名前:仕様書無しさん mailto:sage [2007/12/23(日) 11:10:09 ]
- お前マジキメェ
さっさと失せろ
- 592 名前:仕様書無しさん mailto:sage [2007/12/23(日) 17:58:23 ]
- どう書くのが推奨なの?
SQL生成用の関数作ってパラメータ放り込むぐらいしか考えつかん
- 593 名前:仕様書無しさん mailto:sage [2007/12/23(日) 18:07:02 ]
- ORマッパ
- 594 名前:仕様書無しさん mailto:sage [2007/12/23(日) 22:04:21 ]
- 今時一次テーブルとかスキル無いコテってなんなの?
- 595 名前:仕様書無しさん mailto:sage [2007/12/23(日) 22:49:36 ]
- 以前も自らのアホっぷりを晒したレスを論破されて逃走
挙句の果てに火病って糞スレ立てるほどのアホの子ですから
- 596 名前:仕様書無しさん [2007/12/25(火) 00:23:35 ]
- なんでも*つければ
良いってもんじゃねーぞ。
- 597 名前:仕様書無しさん mailto:sage [2007/12/25(火) 02:00:35 ]
- SQLは全部外だししてたなぁ
↓こんな風にして値を置換してたわ <sql> <command> SELECT * FROM TBL WHERE id = <val1> AND name = <val2> </command> <parameters> <parameter name="val1" value="ID" comment="ID用" /> <parameter name="val2" value="NAME" comment="名前" /> </parameters> </sql> parameterタグのnameはcommandタグのSQL先で、valueはプログラムにある変数コードだったな。 SQLはハードコーディングはコンパイルして再起動してその画面行くのが面倒だし普通にやらんかったわ
- 598 名前:仕様書無しさん mailto:sage [2007/12/25(火) 02:20:05 ]
- GRANT権限ってなんだ
- 599 名前:仕様書無しさん mailto:sage [2007/12/25(火) 06:22:04 ]
- >>598
GRANT文を実行できる権限じゃね?
- 600 名前:仕様書無しさん mailto:sage [2007/12/25(火) 11:01:49 ]
- >>597
名前で検索って、それじゃIDの意味ねーよw ↑どうでもいいことを言ってみる。
- 601 名前:仕様書無しさん mailto:sage [2007/12/25(火) 23:06:57 ]
- >>597
WHEREを画面の入力によって組み立てたりすると 途端に破綻するんだろ?
- 602 名前:仕様書無しさん mailto:sage [2007/12/26(水) 00:48:48 ]
- >>599
中間管理職か...
- 603 名前:仕様書無しさん mailto:sage [2007/12/26(水) 00:58:39 ]
- >>601
<sql> <command> SELECT * FROM TBL WHERE (id = <val1> or <val1> = '') AND (name = <val2> or <val2> = '') </command> <parameters> <parameter name="val1" value="ID" comment="ID用" /> <parameter name="val2" value="NAME" comment="名前" /> </parameters> </sql> みたいな涙ぐましい工夫するんじゃないかな 三値論理的には空欄の場合はnullにして SELECT * FROM TBL WHERE (id = <val1> AND name = <val2>) IS NOT FALSE のほーがスマートかも知れんがOracleが対応してなかった希瓦斯
- 604 名前:仕様書無しさん mailto:sage [2007/12/26(水) 07:04:29 ]
- インジェクションされまくるじゃないか、とかは別にして、
結局ハードコーディングした方がいいじゃん、つ流れになりそうな話だなぁ
- 605 名前:仕様書無しさん mailto:sage [2007/12/26(水) 07:21:19 ]
- バカどもがどうしようと構わんが、マ板の質落ちたねぇ・・・
- 606 名前:仕様書無しさん [2007/12/26(水) 21:49:21 ]
- >>605
どうしたら上質だんだよ。
- 607 名前:仕様書無しさん mailto:sage [2007/12/26(水) 23:16:54 ]
- んだんだ
- 608 名前:仕様書無しさん mailto:sage [2007/12/26(水) 23:35:51 ]
- >>606
やっぱブラック、いろんな意味で。
- 609 名前:仕様書無しさん mailto:sage [2007/12/27(木) 00:15:23 ]
- >>603
SQL実行する前に値チェックをプログラムでやればいいだろ
- 610 名前:仕様書無しさん [2007/12/27(木) 18:18:24 ]
- INSERTする前には必ずSELECTして重複チェックしてください。
- 611 名前:仕様書無しさん mailto:sage [2007/12/27(木) 18:22:31 ]
- >>610
それはあまりに間抜けな仕様。 論理的な重複排除はPKかUNIQUE INDEXの一意制約違反で INSERT時のSQL実行エラーを戻してもらえればいい。 あとはアプリケーションでエラー処理をきちんと実装する。
- 612 名前:仕様書無しさん mailto:sage [2007/12/27(木) 19:18:27 ]
- >>610
SELECTとINSERTの間に他のセッションからINSERTされちゃうことってないの?
- 613 名前:仕様書無しさん mailto:sage [2007/12/27(木) 19:40:31 ]
- >>611
俺らがSELECTされない間に、あいつはINSERTされてるんだよ、畜生。
- 614 名前:仕様書無しさん mailto:sage [2007/12/27(木) 21:00:42 ]
- >>613
俺なんかSELECTされる事が無いまま、そっけなくDELETEされるんだぜ。
- 615 名前:仕様書無しさん mailto:sage [2007/12/28(金) 00:36:29 ]
- >>614
お前は一度でもINSERTしたのか!
- 616 名前:仕様書無しさん mailto:sage [2007/12/28(金) 10:25:30 ]
- ハードコーディングってなんぞ?
JDBCは組込みSQLはハードコーディングに入ってんのか?
- 617 名前:仕様書無しさん mailto:sage [2007/12/28(金) 12:01:41 ]
- SQLを外に出してる奴は、他の言語内言語である正規表現とかも外に出してるのか?
- 618 名前:仕様書無しさん [2007/12/28(金) 12:03:43 ]
- spring framework位使いこなしなよ。おじいさん^^
- 619 名前:仕様書無しさん mailto:sage [2007/12/28(金) 12:07:49 ]
- 中出しはらめぇ
- 620 名前:仕様書無しさん mailto:sage [2007/12/29(土) 06:26:03 ]
- springとSQLのハードコーディングは、何の関係も無いと思うが・・・
- 621 名前:仕様書無しさん [2007/12/29(土) 17:04:29 ]
- ハードコーディング自体は悪くないが、
複数のメソッドで部分部分SQL文字列組み立てるのは勘弁してくれ。
- 622 名前:仕様書無しさん [2007/12/30(日) 12:55:40 ]
- 昔バカスイーツSE女がいて
ソースが汚いとすぐハードコーディングハードコーディング言ってうるさかった
- 623 名前:仕様書無しさん mailto:sage [2007/12/30(日) 13:39:39 ]
- >>617
SQLと正規表現だと別もんだと思うんだが・・・ 正規表現エンジン変えられるようにしてたりしたら外に出すなぁ
- 624 名前:仕様書無しさん mailto:sage [2007/12/30(日) 20:34:26 ]
- ハードコーディング肯定してる奴らってIDE使ってないんじゃないかって気はする
- 625 名前:仕様書無しさん mailto:sage [2007/12/30(日) 21:55:06 ]
- 何言ってんだ?
- 626 名前:仕様書無しさん [2007/12/31(月) 06:18:06 ]
- >>610くらいからの流れにクソワロタ
- 627 名前:仕様書無しさん mailto:sage [2007/12/31(月) 11:01:55 ]
- >>623
RDBMS変わりうること前提にした外出しなの? 変わることなんかそうそう無いと思うんだが
- 628 名前:仕様書無しさん mailto:sage [2007/12/31(月) 12:25:29 ]
- ハードコーディング=静的SQL
それ以外=動的SQL ってこと? なら静的に書いたほうがオーバーヘッドがない分性能はいいよ
- 629 名前:仕様書無しさん mailto:sage [2007/12/31(月) 12:26:48 ]
- >>628
静的・動的ってどういう意味で使ってる? 俺はORMを使うかどうかという意味だと思っていたのだが。
- 630 名前:仕様書無しさん mailto:sage [2007/12/31(月) 12:31:14 ]
- どういう意味???
静的=コンパイラにSQLのロジックを展開させてLMでは最終的なDBアクセスのロジックは固定 動的=SQLが内部的に変わるのでSQL翻訳後にDBアクセスするのでの余計なオーバーヘッドがかかる こんな感じ?
- 631 名前:仕様書無しさん mailto:sage [2007/12/31(月) 12:36:48 ]
- あ
ここマ板か 失礼、DB板と勘違いした
- 632 名前:仕様書無しさん mailto:sage [2007/12/31(月) 13:20:31 ]
- O/Rマッパは汎用的なのは良いが
オプティマイザの実行計画が 実は大変なことになってることが多いのが悲しいな。
- 633 名前:仕様書無しさん mailto:sage [2007/12/31(月) 13:33:38 ]
- >>627
正規表現の場合の話がしたいの?SQLの場合の話がしたいの? SQLと正規表現は別もんって書いてあるよね?
- 634 名前:仕様書無しさん mailto:sage [2007/12/31(月) 13:35:45 ]
- >>632
裏で色々あったんだろうがDBMagazineのTopLinkは奇麗だったな・・・
- 635 名前:仕様書無しさん mailto:sage [2008/01/01(火) 20:57:02 ]
- >>630
SQLの場合はこんな感じかな。DB2限定だが。 静的:実行計画を事前に取得しておく。 動的:実行時に実行計画を取得する。 ORACLEって静的バインド出来ないよね?
- 636 名前:仕様書無しさん [2008/01/04(金) 16:45:58 ]
- 1 が言いたいのはたぶん、
同一のテーブルを参照するSQLを いたるところに書くことに辟易 してるってことを言いたいんだと思う
- 637 名前:仕様書無しさん mailto:sage [2008/01/04(金) 21:56:46 ]
- それは、ハードコーディングだろうが、
外部ファイルに書こうが一緒だ。
- 638 名前:仕様書無しさん mailto:sage [2008/01/04(金) 22:25:27 ]
- レスも空気も読まずにageレスか・・・さすが冬
- 639 名前:仕様書無しさん [2008/01/05(土) 01:24:58 ]
- 1が言いたいことはたぶん
プログラム内でSQL文を組み立てて発行することを言ってるんだと思う。 前にVBプログラマが作ったソースを見たら sql = "SELECT * FROM テーブル" conn.exec(sql) みたいなコーディングだったんだけど、こういうのがハードコーディング? DBにプロシージャとかを作成してアプリ側はそれを呼ぶだけにして欲しいってことじゃないの? 自分は小さい規模(ユーザー数1000人前後)のシステムしか作ったことがないので 普通にDBにプロシージャを作って、C#でDBに接続してプロシージャを実行とかやってる。 上のレスを見たら分散処理のためにハードコーディングするとかあったけど よく意味がわからなかった(^^; ヤフーとか2chのようにもの凄い大量のアクセスがあるシステムでは 分散処理とか考えてコーディングしないとヤバイのかな? もっと勉強しなきゃだな。 うちはWebサーバ1台とDBサーバ1台だけでやってて特に問題無い程度のアクセス数だけど 複数台のサーバで処理を分散とかの勉強もしなきゃなぁ。
- 640 名前:仕様書無しさん mailto:sage [2008/01/05(土) 02:01:43 ]
- >>639
半年ROMれ
- 641 名前:仕様書無しさん mailto:sage [2008/01/05(土) 02:25:38 ]
- >639
あー半年と言わず三年ROMれ
- 642 名前:仕様書無しさん mailto:sage [2008/01/06(日) 10:32:28 ]
- ここの住人って常駐派遣が多そうだな。
- 643 名前:仕様書無しさん mailto:sage [2008/01/06(日) 11:04:37 ]
- 客先常駐の請負仕事なだけで派遣じゃないよw
- 644 名前:仕様書無しさん mailto:sage [2008/01/06(日) 18:46:56 ]
- 偽装派遣のにおいがするんだが・・・
- 645 名前:仕様書無しさん mailto:sage [2008/01/06(日) 18:49:37 ]
- てゆうかマジで客先常駐なんてありえないよね。
ぶっちゃけ惨めじゃん。 自分の会社じゃないところに行ってさ。 うちにもちっさい会社のエンジニアが沢山常駐してるけどかわいそうだよ。 会社によるだろうけど派遣社員にはネットやメールを使わせないとか そういうルールもあるし。
- 646 名前:仕様書無しさん mailto:sage [2008/01/06(日) 23:11:03 ]
- 常駐させてるのも、そういうルールを作ったのも
お前の会社なんだろ。
- 647 名前:仕様書無しさん mailto:sage [2008/01/07(月) 22:04:27 ]
- 思い付きだけで書かれたものを残されるとツライと思う。
でも、OJTだけで教育しようとしてるウチじゃあ無くならないんだろうな。
- 648 名前:仕様書無しさん mailto:sage [2008/01/08(火) 10:58:26 ]
- >>647
詳細設計完了後に思いつきで 仕様変更を連絡して来なきゃ、 そのケースはかなり減ると思うwww
- 649 名前:仕様書無しさん [2008/01/08(火) 22:05:35 ]
- 先輩方!お手本ソースを教えて教えて!
- 650 名前:仕様書無しさん mailto:sage [2008/01/13(日) 22:06:25 ]
- M + ijime = Mijime = みじめ = 惨め
いじめられても笑顔で居られる客先常駐って惨めだよね
- 651 名前:仕様書無しさん mailto:sage [2008/02/06(水) 01:24:00 ]
- まだあったのなー。
最近、自宅で趣味でJavaのWEBシステム構築やってんだけど、 ハードコーディングが楽だわ。 SQLインジェクションはバインド変数で解決、 不要なカラムは取得せずSQLもすっきり、I/Oもすっきり。 なんで>>1はハードコーディング嫌ってんの?作業振りしやすいから? プログラマにDB周りをある程度把握させとかないと問題あったとき、危険だと思うけど。 どっちにしろO/Rマッピングは1から10まで全部一人でやっちゃうプログラマにはあんま美味しくないよ
- 652 名前:仕様書無しさん mailto:sage [2008/02/06(水) 14:56:30 ]
- >>651
あとO/Rマッパはチューニングしにくい罠
- 653 名前:仕様書無しさん [2008/02/24(日) 17:40:04 ]
- ハードコーディングってそもそも何?
- 654 名前:仕様書無しさん mailto:sage [2008/02/24(日) 18:11:09 ]
- 俺はiBATISくらいの薄い方が好きだ
- 655 名前:仕様書無しさん [2008/02/24(日) 19:15:37 ]
- SpringJDBCがよい
- 656 名前:仕様書無しさん [2008/02/24(日) 19:23:02 ]
- bbs.cgiboy.com/Guestbook/BBS/07232290/
荒らしならここをつぶすのがいい へいさにおいこめくずども
- 657 名前:仕様書無しさん mailto:sage [2008/03/02(日) 22:49:26 ]
- SQLをDBに持つとか別テキストに持つだとか構造をXMLにしてもっておくだとか
いろいろなプロジェクトがあったが、結局はSQLを直すときはソースも直す場合が多いよね。 そうなると分けるとよけい保守性が悪くなるよね。
- 658 名前:仕様書無しさん mailto:sage [2008/03/03(月) 00:31:54 ]
- 修正の規模による
- 659 名前:仕様書無しさん [2008/03/03(月) 22:31:21 ]
- 項目A(3バイト)、項目B(6バイト)
(更新前) AAA,BBBCCC AAA,BBXCCC AAA,BBPCCC (更新後) ← このようにしたいです。 AAA,BBZCCC AAA,BBZCCC AAA,BBZCCC 目的は、項目Bの頭3バイトだけを”BB*”で条件に指定して、 項目Bの頭3バイトを全て”BBZ”に更新したい場合どうすればよいのでしょうか? 項目Bの後3バイトの”CCC”はそのまま残さなくてはいけないため、 どのようなSQL文にすれば良いのかわかりません。 どうしても後3バイトを生かしたままの更新なので。。。。困ってしまします。 お知恵をお貸しください。
- 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文思いつかなくて。。。 本当にありがとうございます!!
|

|