- 1 名前:仕様書無しさん [2007/02/07(水) 01:32:56 ]
- って思う
- 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文思いつかなくて。。。 本当にありがとうございます!!
- 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句に結合条件を書いたら、もっと腐る ということが分からない時点で終わってる。
- 761 名前:仕様書無しさん mailto:sage [2008/04/03(木) 12:30:31 ]
- >>760
>腐っていようが…。 「構造化されてなんかいない腐れ構文」には同意頂けたようで。 …まあ、Oracle の旧書式は直感的だが、もっと腐ってるとは思う。 >WHERE句に結合条件を書いたら 「抽出条件」てのが「1行1項目しかない『定数』との結合条件」と考えれば 両者の間になんの違いもないわけだが。 -- そういやこないだ、 -- JOIN 〜 ON (〜 AND HOGE = 0) -- なんて記述を見かけた。
- 762 名前:仕様書無しさん [2008/04/03(木) 12:37:27 ]
- >>761
何が面白いのか解説してよ
- 763 名前:仕様書無しさん mailto:sage [2008/04/03(木) 15:50:26 ]
- LEFT JOIN
- 764 名前:仕様書無しさん mailto:sage [2008/04/03(木) 16:03:24 ]
- まちごうた。
Oracle9.1.4以前はバグでちゃんと 動かんかったけ記憶があるが。 >>761 違い分かるか? FROM table_a a LEFT OUTER JOIN table_b b ON a.key1 = b.key1 AND 0 = b.key2 FROM table_a a LEFT OUTER JOIN table_b b ON a.key1 = b.key1 WHERE b.key2 = 0 761 は文句言いながら副問合せ書く奴と見たw
- 765 名前:仕様書無しさん mailto:sage [2008/04/03(木) 17:56:22 ]
- >>764
お前は莫迦か。 後者は結合後に抽出してんだろが。
- 766 名前:仕様書無しさん mailto:sage [2008/04/03(木) 18:21:33 ]
- 文脈読めよ。
>>761の -- そういやこないだ、 -- JOIN 〜 ON (〜 AND HOGE = 0) -- なんて記述を見かけた。 に対して >>764 だ。
- 767 名前:仕様書無しさん mailto:sage [2008/04/03(木) 18:29:04 ]
- FROM
table_a a LEFT OUTER JOIN (SELECT * FROM table_b WHERE key2 = 0) b ON a.key1 = b.key1 ってインデックス外すバカがいるわな。
- 768 名前:仕様書無しさん mailto:sage [2008/04/03(木) 20:33:26 ]
- ここで悦に入って何か得られるモノがあるのだろうか・・・
- 769 名前:仕様書無しさん [2008/04/03(木) 22:56:03 ]
- >>732のようなコードのメンテをやらされてると、この仕事辞めたくなるな。
そんなもんの修正はそれに違和感感じない連中だけでやってくれって感じだ。
- 770 名前:仕様書無しさん mailto:sage [2008/04/04(金) 07:34:06 ]
- >>732
なんだこれ・・・ こんなんjavaで書いてきたらソースレビューの時点で突っ返すぜ もし下請けが書いてきたらくびになっても検収印はおさねえ!
- 771 名前:仕様書無しさん mailto:sage [2008/04/04(金) 07:37:39 ]
- 出来ない奴はとっとと氏ね
ってことだな。
- 772 名前:仕様書無しさん mailto:sage [2008/04/04(金) 09:05:47 ]
- >>769
俺は sWhere += 〜 sWhere += 〜 sWhere += 〜 : こういうのが並んでる時点で唾棄。
- 773 名前:仕様書無しさん mailto:sage [2008/04/04(金) 09:44:07 ]
- sprintf( buf, "select %s from %s\n", col, tbl );
- 774 名前:仕様書無しさん [2008/04/04(金) 09:47:30 ]
- 質問です。
各テーブルごとにテーブルクラスを作成し、 データの受け渡し受け取りには、テーブルクラス.レコードを定義して使用しています。 で、各テーブルごとの違いは、レコードクラスの違いくらいであとの処理は同じなので、 同じ処理を書いて、あまりステップ数を膨らませるのは嫌なのですが、 何かよい方法はないでしょうか?
- 775 名前:仕様書無しさん mailto:sage [2008/04/04(金) 09:55:19 ]
- >>774
>質問です。 スレの選択も満足にできないの?
- 776 名前:774 [2008/04/04(金) 10:01:21 ]
- SQL文ハードコーディングを嫌がるスレということなので、
↑の質問にも答えてもらえると思ったのですが、ちょっとスレ変えることにします
- 777 名前:仕様書無しさん mailto:sage [2008/04/04(金) 20:33:23 ]
- >>774
javaならhibernate使えよ。
- 778 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2008/04/04(金) 21:40:57 ]
- 継承も使えずにクラスを使うとはなかなかやりまつね
- 779 名前:仕様書無しさん mailto:sage [2008/04/04(金) 21:41:56 ]
- はずかしげもなくまだ生きてる貴様に比べれば誤差未満だな
- 780 名前:仕様書無しさん mailto:sage [2008/04/05(土) 19:51:35 ]
- 自作APIの最終select文作成部分のコード。
snprintf( buffer, BUFFER_MAX, "SELECT %s FROM %s %s %s %s %s %s %s", fieldStr, tableStr, whereStr, orderStr, lockStr, limitStr, offsetStr, optionStr ); それぞれの部分を、専用の関数で構造体からSQLに変換して作ってる。 メジャーないくつかのSQL DBに対応済み。SQL以外のDBにもいくつか対応済み。 基本的なテーブルのselectややinsertやupdateなら一切SQLを書くことも見ることもない。 せいぜいフィールド名と条件や値とかを指定するだけ。 必要があればSQLを直接渡せるようにもなってる。 これぐらい自作APIでやってる人いる?
- 781 名前:仕様書無しさん mailto:sage [2008/04/05(土) 19:57:42 ]
- >>780
あー、すごいねー。ほんとにすごいよー。たいしたもんだねー。 ほかにだれもまねできないよー
- 782 名前:仕様書無しさん mailto:sage [2008/04/05(土) 19:59:42 ]
- >>780
ポスグレ?オラクルで組めよ。 ちなみに SQLいんじぇくしょん ってしってまつか?
- 783 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:16:48 ]
- >>781,782
ほめてもらう or 煽りを期待してるわけじゃない。 よりいい方法を知ってる人がいたら、教えて欲しいだけ。
- 784 名前:780,783 mailto:sage [2008/04/05(土) 20:19:52 ]
- ここID表示なしか。
ついでに言うと、Oracle、DB2対応済み。 SQLインジェクションとか当たり前のように対応済み。 sprintf ではなく snprintf を使ってることから予想付いた人も多いと思うけど。
- 785 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:24:01 ]
- その関数使うと桁あふれ起こすかも知れんのじゃ?
- 786 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:24:56 ]
- こんなエサに俺様がクマー(AA略
- 787 名前:780,783 mailto:sage [2008/04/05(土) 20:31:01 ]
- >>785
いいつっこみ。ありー。 セキュリティも兼ねてSQL文に文字列制限入れてる。 最近のオープンソースのDBはほとんどSQLの長さ制限はなくなってきたから、 そろそろこのAPIの長さ制限も取り払った方がいいかもしれない。 ただ最近のMySQLに詳しくないから、調べないと・・・。
- 788 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:31:42 ]
- >>784
予想がつくのはエスパーだけだ
- 789 名前:仕様書無しさん [2008/04/05(土) 20:35:27 ]
- そのAPIは評判良いの?
俺が使わないといけない立場だったら嫌だなぁ。 俺はストアドで組むのがしょうにあってるわ。
- 790 名前:780,783 mailto:sage [2008/04/05(土) 20:38:58 ]
- >>789
いろいろ機能つけすぎて、ほとんど自分専用(笑)・・・ orz もしオープンソースにするとかなったとしたら、 もっとよく使う機能だけに絞ってとかやらないと普及しないんだろうねー。 もしくはよっぽど設計を考えて、スマートに分かりやすくするか。 もっとも今どきCでこんなAPIの需要は少ないか・・・。
- 791 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:45:13 ]
- >>790
そんな部分だけ見せられても エスパー以外には評価のしようがないがな。 見えてる部分だけだと、それやばくね?・・・ってのが正常な反応と思。
- 792 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:47:24 ]
- >基本的なテーブルのselectややinsertやupdateなら一切SQLを書くことも見ることもない。
「基本的」という言葉の意味が定義されていないので他人には使えない。
- 793 名前:仕様書無しさん mailto:sage [2008/04/05(土) 20:53:55 ]
- てか、いきなり使用例出してきてこれAPIって何?せんずり?
Cはともかく日本語で出せ。つか人に見せてないもん普及とか言うな。クズ。
- 794 名前:780,783 mailto:sage [2008/04/05(土) 20:54:38 ]
- >>791
確かに。けど、ソース公開はどこかに 未発見のセキュリティホールあったらやばいから出来ないし。 すまん。 >>792 比較演算子: OR AND = != < > <= >= like フィールド型: 文字、数値、日付、時刻など 他: () where句の組み立てなんかは、 オープンソースDBのSQL分析のソースを参考にして作ると、 もっと柔軟な検索条件に対応したAPIが出来そうな予感。 しかしそこまで行くと、検索条件をいちいち関数呼び出して登録するより、 直接SQL文を書いた方が早いぜってことにもなりそう。 もっとも拡張性やメンテナンスを考えれば、直接SQLを書くのはナンセンスなんだろうけど。 そこは開発コストと将来のコストのどっちを優先するかって話しになりそう。
- 795 名前:780,783 mailto:sage [2008/04/05(土) 21:01:22 ]
- 比較演算子 に OR AND 入ってるのは変だな。
>>793 日本語で説明するにも、面倒すぎて。 すまん、自前APIに関しては、もうスルーしてくれ(--;
- 796 名前:仕様書無しさん mailto:sage [2008/04/05(土) 21:49:27 ]
- >>793
よくコード一ステップごとに日本語コメントを書いて提出しろとほざく馬鹿SEPGがいるけど コードそのものが体を現してるのに何をほざいてるのだと。お前がまさにその典型。 これが理解できない人はさっさと尻まくって引きこもりでもしてなよ。 じゃなきゃ金払うか頭下げて教えを請うんだな。
- 797 名前:仕様書無しさん mailto:sage [2008/04/05(土) 21:54:41 ]
- >>796
ほお。じゃこれで >insertやupdateなら一切SQLを書くことも見ることもない。 もわかるわけだ。すげぇな。エスパー。
- 798 名前:仕様書無しさん mailto:sage [2008/04/05(土) 22:46:47 ]
- >>780が自作APIだって?プププ
- 799 名前:仕様書無しさん mailto:sage [2008/04/05(土) 22:52:51 ]
- >>790
自分専用って… プロジェクトメンバー各人がこんなふうな勝手な実装をしているの? 大丈夫なのか、それ?
- 800 名前:仕様書無しさん mailto:sage [2008/04/05(土) 23:37:16 ]
- 寝た子は殴るなという言葉があるだろう
- 801 名前:仕様書無しさん mailto:sage [2008/04/05(土) 23:39:43 ]
- テーブル名を元にDBからテーブル構成引っ張ってきて
処理系毎のパディングを考慮した構造体の配列に 突っ込む関数 というものは作ったが。 「SQLくらい手前で書けよ。莫迦しかいねぇのかこの会社」 と呪いの言葉を吐きながら。 (尤も、前時代的なSQLなんてもんは個人的には捨てちまいたいんだが) ま、テーブルの結合だの副問い合わせだのがなけりゃ 新人でも作れるわな。 唐突かつ自慢げにこんなところで語り始める程のもんじゃない。
- 802 名前:仕様書無しさん mailto:sage [2008/04/06(日) 00:28:28 ]
- おいそこのバーコード
SQL文ハードコードやめねぇと てめぇの頭の毛毟るぞ? っていったら先週から出社拒否ですよ なんてヘタレなんだよ
- 803 名前:仕様書無しさん [2008/04/06(日) 02:53:22 ]
- どうだこのAPIすげーだろ!一切SQLを書くことも見ることもなくてすむんだぜ!
反応 >>8
- 804 名前:仕様書無しさん mailto:sage [2008/04/06(日) 02:58:02 ]
- 誰かAPIの意味を教えてやれ
- 805 名前:仕様書無しさん mailto:sage [2008/04/06(日) 04:36:51 ]
- AんたのPリクラIりません
- 806 名前:仕様書無しさん mailto:sage [2008/04/06(日) 05:51:27 ]
- O/Rマッパー使えばいいじゃん。
- 807 名前:仕様書無しさん mailto:sage [2008/04/06(日) 05:54:04 ]
- いっさいSQL見せないAPI(?)だったら、最初からSQLのレイヤ使わなきゃいいのに、
内部でへんちくりんなSQLごりごり生成して性能落としたあげく、対応できない 複雑な処理にはSQLが直接使えて便利だぜ!ってのはなんか違うんじゃ。 もともとSQLそのものがオーバヘッド大きいのに、その上にかぶせてもなぁ いっそクエリを言語仕様にいれちまえ、っつMSの判断はアリだはと思うけど。
- 808 名前:仕様書無しさん mailto:sage [2008/04/06(日) 05:55:31 ]
- 最近複雑なSQLを書かなくなったな。
JOINとWHEREとORDER BYがすべて入るような SQLだとインデックスをうまく使いづらいんだよね。 結果的にデータ読み込みの行数が跳ね上がって 逆に遅くなってしまう。
- 809 名前:仕様書無しさん mailto:sage [2008/04/06(日) 06:00:39 ]
- これだけはいわせてくれ。
条件の数が可変で、AND とか OR とか それをつないでいく処理は 文字列結合で作っていくんじゃなく、 配列に入れておいて、最後で join(" AND ", 条件入れた配列) という風にしなさい。
- 810 名前:780,783 mailto:sage [2008/04/06(日) 07:14:09 ]
- >>799
担当分けしてる。 引き継ぎが大変だろうなと思う今日この頃。 >>801 同じく作った。 >>807 なるほど、今まで考えたこともなかった。 SQLを使わずDBサーバと直接接続する方法のヒント教えてー。調べてみる。 >>808 同意。 >>809 Cにそんな便利な関(ry
- 811 名前:仕様書無しさん mailto:sage [2008/04/06(日) 07:18:43 ]
- >>810
> >>809 > Cにそんな便利な関(ry 作れ!
- 812 名前:810 mailto:sage [2008/04/06(日) 07:24:52 ]
- >>811
ネタに(ry おそらく >>809 は検索条件は構造体に入れておき、 最後に組み立てろってことを言いたかったんじゃないかと。 ついでに言うと () とかに対応するために、 その構造体はツリー構造にしておいた方がいい。
- 813 名前:仕様書無しさん mailto:sage [2008/04/06(日) 08:07:40 ]
- >>802
それ普通に裁判沙汰になるよ 妄想もほどほどに
- 814 名前:仕様書無しさん mailto:sage [2008/04/06(日) 09:02:47 ]
- >>812
じゃなくて単にヒープの無駄遣いと文字列コピーのコストを抑えろ、ということだろ>>809は。
- 815 名前:809 mailto:sage [2008/04/06(日) 13:55:39 ]
- いや、そんなコストとかの話ではなく、
str += "where"; str += "flag=true"; str += "and value=1"; ↓ whereflag=trueand value=1 なんて間抜けをやらないですみますよということ。 条件の数が可変で引数によってつけたりはずしたりすると、 where and value=1 とかやってしまうだろ?という話。 joinのようなもので最後にくっつければ、絶対andの前後にスペース入れられるし、 whereのあとにいきなりandがでてきたりなんて事を防げる。
- 816 名前:仕様書無しさん mailto:sage [2008/04/06(日) 16:09:41 ]
- おまえはandしか使わんのか?
つか、レベル低すぎだな、この手の話題
- 817 名前:仕様書無しさん mailto:sage [2008/04/06(日) 16:10:07 ]
- もっとつまらん理由でしたとさ。
- 818 名前:仕様書無しさん mailto:sage [2008/04/06(日) 16:35:59 ]
- この手の詰まらん事を意識できない奴にはいつまでたっても最良のコードは書けないよ。
- 819 名前:仕様書無しさん mailto:sage [2008/04/06(日) 16:38:50 ]
- いや、正直>>815のレベルで最適なコードとか言われても…
- 820 名前:仕様書無しさん mailto:sage [2008/04/06(日) 16:52:04 ]
- もっとブレークスルーなやつたのむ
- 821 名前:仕様書無しさん mailto:sage [2008/04/06(日) 17:06:28 ]
- >>815
そんな低レベルの話だったのかw 期待して損したw
- 822 名前:仕様書無しさん [2008/04/06(日) 17:16:26 ]
- 809
m9(^Д^)プギャー
- 823 名前:仕様書無しさん mailto:sage [2008/04/06(日) 19:58:57 ]
- >>809
WHERE 1=1 AND xxx = :xxx AND yyy = :yyy AND zzz = :zzz これで解決じゃね?
- 824 名前:仕様書無しさん mailto:sage [2008/04/06(日) 20:51:10 ]
- おいだれか、この中国人をつまみだしてくれ
- 825 名前:仕様書無しさん mailto:sage [2008/04/06(日) 21:06:45 ]
- 823は、よく使われてるテクニックだよ。
RoRのソースにもあった希ガス。
- 826 名前:仕様書無しさん mailto:sage [2008/04/06(日) 21:08:17 ]
- Railsなんて糞に決まってるだろ
- 827 名前:仕様書無しさん mailto:sage [2008/04/06(日) 21:13:45 ]
- >>825
その使い方はここの話の本筋とは関係ない。
- 828 名前:仕様書無しさん mailto:sage [2008/04/06(日) 21:25:24 ]
- つか普通は823のテク使うだろw
- 829 名前:仕様書無しさん [2008/04/07(月) 12:44:36 ]
- 一年前そのシチュエーションでは文字列結合で作った。
反省はしていない。次回以降は823のやり方にする。
- 830 名前:801 mailto:sage [2008/04/07(月) 12:58:44 ]
- >>809 がスレのレベルを一気に下げたな。
>>810 >同じく作った。 …>>801 の後段は君に言ってんだけど。
- 831 名前:仕様書無しさん mailto:sage [2008/04/07(月) 20:51:55 ]
- ハードコーディングと表現する奴は、
プリコンパイラの仕組みも知らない初心者だな。
- 832 名前:仕様書無しさん mailto:sage [2008/04/07(月) 21:05:19 ]
- はあ???プリコンパイラなんて何の関係もないだろ・・・
- 833 名前:仕様書無しさん mailto:sage [2008/04/07(月) 21:15:17 ]
- >>832
はあ?関係大ありだよ!
- 834 名前:仕様書無しさん [2008/04/07(月) 21:35:39 ]
- >>808がよくわからん
インデックスを全て指定するのにその順番で書かない時はどんな時なの???
- 835 名前:仕様書無しさん mailto:sage [2008/04/07(月) 22:01:34 ]
- 複雑なSQLも落ち着いて分解すると
単純なSQL数個に分けられる
- 836 名前:仕様書無しさん [2008/04/07(月) 22:16:40 ]
- で、プリコンパイラがどうしたって言うんだ
- 837 名前:仕様書無しさん mailto:sage [2008/04/07(月) 22:24:03 ]
- カオスw
- 838 名前:仕様書無しさん mailto:sage [2008/04/07(月) 22:33:53 ]
- ソースコードに直接SQL文を書くことを何て言うかなんて、
入門書にも出てくる初歩的な用語なわけで、 ハードコーディングとの違いも分からないようでは情けないな。
- 839 名前:仕様書無しさん mailto:sage [2008/04/07(月) 22:34:16 ]
- 全文検索になるってことだろ
- 840 名前:仕様書無しさん mailto:sage [2008/04/07(月) 23:59:48 ]
- >>838
埋め込みSQLw
- 841 名前:仕様書無しさん mailto:sage [2008/04/08(火) 00:14:17 ]
- 話が滅茶苦茶というか
各人のイメージしているものがそれぞれ違うような気がしてきた
- 842 名前:仕様書無しさん [2008/04/08(火) 00:16:06 ]
- ダバダの人
違いを教えてよ
- 843 名前:仕様書無しさん [2008/04/08(火) 00:20:33 ]
- ホント2chって、どうでもいいSQL見たいな
素人レベルのことだとスレが伸びるのね。 ここぞって時の質問はスルーなのにねぇ。
- 844 名前:仕様書無しさん mailto:sage [2008/04/08(火) 00:26:29 ]
- ↓ここぞって時の質問
- 845 名前:仕様書無しさん mailto:sage [2008/04/08(火) 00:28:48 ]
- ↑矢印厨
- 846 名前:仕様書無しさん mailto:sage [2008/04/08(火) 00:36:53 ]
- >>844
なんで俺には彼女が出来ないの?
- 847 名前:仕様書無しさん mailto:sage [2008/04/08(火) 00:37:11 ]
- 自転車小屋議論ですから。
- 848 名前:仕様書無しさん mailto:sage [2008/04/08(火) 01:43:50 ]
- >>843
ここにはオレヨリモマイラハレベルが低いとオマイハ思いたい と書いてある。
- 849 名前:仕様書無しさん mailto:sage [2008/04/08(火) 07:02:11 ]
- プリコンパイラまだ〜?
- 850 名前:仕様書無しさん mailto:sage [2008/04/09(水) 00:19:11 ]
- >>838
で、なんて言うの?まさか >>840 じゃないよね?
- 851 名前:仕様書無しさん mailto:sage [2008/04/09(水) 01:31:19 ]
- 基礎知識が無いというのは、
プログラム書く前にマニュアルとか読まずに、 先輩に要点だけ教わって書いてるのかね?
- 852 名前:仕様書無しさん mailto:sage [2008/04/09(水) 06:54:31 ]
- シッタカ君がよく使う逃げ口上
- 853 名前:仕様書無しさん mailto:sage [2008/04/09(水) 07:02:03 ]
- スレタイが知ったかそのものなわけだがw
- 854 名前:仕様書無しさん mailto:sage [2008/04/09(水) 19:16:38 ]
- ↓↓というわけで、プリコンパイラさん、どうぞ〜 ↓↓
- 855 名前:仕様書無しさん mailto:sage [2008/04/09(水) 20:10:29 ]
- 恥を書く前に入門書からコツコツ勉強しましょう。
- 856 名前:仕様書無しさん mailto:sage [2008/04/09(水) 20:19:44 ]
- ほんと恥かしいよ、プリコンパイラさん。馬鹿まるだし。
- 857 名前:仕様書無しさん mailto:sage [2008/04/09(水) 20:37:51 ]
- "SQL"と”ハードコーディング”でググってみたことあるかい?
このスレ以外では、間違って使う奴すらいないぞ。
- 858 名前:葉猫 ◆Jz.SaKuRaM mailto:sage [2008/04/09(水) 21:30:42 ]
- このスレが上位をほぼ独占ちててワロタ
- 859 名前:仕様書無しさん mailto:sage [2008/04/10(木) 00:22:08 ]
- さっさと死ねよ屑コテ
- 860 名前:仕様書無しさん mailto:sage [2008/04/10(木) 04:11:21 ]
- ハードコーディング⊇埋め込み
だろ? EXEC SQL 〜 とかやって、プリコンパイラ(Pro*C とか)で変換するのが埋め込み SQL(ハードコーディングの一種) それ以外でも直接 SQL をソースに書くのが(埋め込みじゃない)ハードコーディング 何も難しくないだろ。
- 861 名前:仕様書無しさん mailto:sage [2008/04/10(木) 04:23:22 ]
- >>860
じゃMSのLINQは言語の一部だからハードコーディングじゃないのか。 もっともあれはSQLじゃないといえばそうだけどさ。
- 862 名前:仕様書無しさん mailto:sage [2008/04/10(木) 05:58:01 ]
- >>860
残念ながら、ググっても出てこないのだから、そういう「ハードコーディング」の解釈は一般にはないのだよ。
- 863 名前:仕様書無しさん mailto:sage [2008/04/10(木) 06:52:58 ]
- 自分の無知を棚に上げてよく言うわ
- 864 名前:860 mailto:sage [2008/04/10(木) 07:00:11 ]
- >>861
LINQ, SQL の場合に限らず、なにかコードに直接書いたら、 何でもハードコーディングと呼ばないか? 860 もコードに直接書く場合しか書いてない。
- 865 名前:仕様書無しさん mailto:sage [2008/04/10(木) 07:10:49 ]
- 「ハードコーディング」は実行時の状態も関係してるから、
プリコンパイルの仕組みを理解していれば、 「ハードコーディング」と呼ぶことはないだろう。
- 866 名前:仕様書無しさん mailto:sage [2008/04/10(木) 07:41:45 ]
- e-words.jp/w/E3838FE383BCE38389E382B3E383BCE38389.html
- 867 名前:仕様書無しさん mailto:sage [2008/04/10(木) 07:48:22 ]
- 「プリコンパイラ」はコンパイラの前に動くものなのだから、
ハードコーディングとは何かを理解していれば、 「プリコンパイラ」を持ち出すことはないだろう。
- 868 名前:仕様書無しさん [2008/04/10(木) 07:59:39 ]
- >>867
それは、プリコンパイルも実行状態も理解してないから、そう思うのだ。
- 869 名前:仕様書無しさん mailto:sage [2008/04/10(木) 09:28:40 ]
- でもさ、SQLってそもそも人間がいちいちISAMなんかのアクセスを
ハードコーディングしないように抽象化するために作ったもんだろ? それをまた関数のパラメータに押し込んで、API(笑)化するのって 全然可読性を上げてることにならないような気がするんだけど。 皆がちゃんとSQLを学べば、テキストでSQL組み上げるような無様な関数 作らなくても全然平気じゃないか?第一、SQLがまともに使えないヤツが その関数を楽々使えるとも思えないんだけどな。
- 870 名前:仕様書無しさん mailto:sage [2008/04/10(木) 13:23:44 ]
- >>869
つか、それを言い出したらO/Rマッパは…ってなるような希ガスwww 事実、O/Rマッパなんて要らないけどさ。
- 871 名前:仕様書無しさん mailto:sage [2008/04/10(木) 18:58:47 ]
- printf("Hello, World!\n");
これもハードコーディングって言うんだろうなぁ
- 872 名前:仕様書無しさん mailto:sage [2008/04/10(木) 19:41:12 ]
- if (flag & 3) ...
これもハードコーディングと言うんだろうね。
- 873 名前:仕様書無しさん mailto:sage [2008/04/10(木) 22:43:49 ]
- >>869
勉強もせず自分で勝手に想像して、「ちゃんとSQLを学べ」は自分だろw
- 874 名前:仕様書無しさん [2008/04/10(木) 23:13:19 ]
- プリコンパイラが最適化してくれるとも思ってるのか、このバカちんは
- 875 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:16:26 ]
- SQL文そのものなんてソース内で見ないまま扱えるようにクラス作りゃいいんだけど
でもねぇ
- 876 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:19:44 ]
- >>871
それは明らかにハードコーディングだ i18nって知ってる?
- 877 名前:仕様書無しさん [2008/04/10(木) 23:22:31 ]
- 物質の表面改質の為に、TiN, TiAlN, TiCN, CrN, DLCなどを
アークイオンプレーティング法などを用いて成膜し、 表面の硬度や耐摩耗性を高める。
- 878 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:23:12 ]
- それはコーティング
- 879 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:23:59 ]
- >>872
それはマジックナンバー
- 880 名前:sage [2008/04/10(木) 23:25:43 ]
- それはハードコーティング
- 881 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:28:07 ]
- >>874
さて、プリコンパイラは何をしてるのでしょうか? それが分かれば、 >>871 や >>872 との違いも分かるでしょう。
- 882 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:30:25 ]
- 降参です答えを教えてください
と言えばこういう人は確実に逃げる
- 883 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:33:04 ]
- >>882
オマエみたいに偉そうなバカに教えるわけがありません。
- 884 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:33:39 ]
- 頭の中で何となく理解しているつもりの事柄を
他人にしっかり説明しようと文章を書き始めてみる。 そのときに初めて、自分の知識がいかに曖昧で 本当は殆ど何もわかっていないということに気付く。
- 885 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:35:50 ]
- >>884
自分で考えるのではなく、マニュアルを読め。
- 886 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:36:37 ]
- まさかプリコンパイルされた後のソースを、コンパイルする前に
手で修正できるから、元ソースはハードコーディングじゃねーとか わけわけめなこと言うんじゃねーだろうな、ウンコ野郎
- 887 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:37:19 ]
- まともな RDBMS なら内部にクエリキャッシュを持っているので
実行時に SQL 文字列を毎回パーズして実行するなんていう馬鹿な処理にはならない。 そんなことは誰でも知っている常識 それとハードコーディングの問題は無関係
- 888 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:39:31 ]
- ソフトコーディングもあるのかな
- 889 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:44:25 ]
- でプリコンパイラは何をするのかな?もう逃げたか?
- 890 名前:仕様書無しさん mailto:sage [2008/04/10(木) 23:53:14 ]
- >>886
やっぱり、プリコンパイルが何するか分かってないね。 自分で勝手に考えずに、マニュアル読めよ。
- 891 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:00:32 ]
- 埋め込みSQLを展開してるだけだろ
埋め込んだSQL文が勝手に最適化されるわけじゃないし ハードコーディングじゃないということとは関係ないじゃん。
- 892 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:06:03 ]
- 知ったかぶりで上から目線で煽って、相手に文章を書かせる。
それによって自分が勉強する。技術系板の典型的厨房
- 893 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:06:38 ]
- >>891
想像で書くな。マニュアル読め。
- 894 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:09:18 ]
- なんだよ結局逃げかよ
具体的に説明してくれよ、プリコンパイラがこうするから ハードコーディングじゃないよねって
- 895 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:12:41 ]
- そもそもプリコンパイラって時点で具体的なDB製品に依存してるし…
顧客の予算やスケールに応じて組み合わせるDBを変更するとか 想像もつかないんだろうなこの人は
- 896 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:14:39 ]
- >>894
それ教えちゃったら、面白くないでしょwww
- 897 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:16:17 ]
- SELECT命令以外実行する権限が与えられていないのだ・・・
- 898 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:17:25 ]
- en.wikipedia.org/wiki/Hard_coding
- 899 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:18:41 ]
- ぐぐってもPro*Cしか出てこない。Oracle限定の話?
- 900 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:19:58 ]
- >>896
同意。教えたら「なんだそんなことか、付き合って損した放置放置」で終わっちゃうよね
- 901 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:20:36 ]
- 少なくとも、このスレ以外ではSQL文をソースに書くことをハードコーディングとは
呼んでいないという現実を真摯に受け止めて、一から勉強することだな。
- 902 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:21:49 ]
- esqlも知らんのか
- 903 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:21:57 ]
- なんでスレが900に行こうというときに用語の定義でもめ始めるんだよwww。
その時点で普通のプロジェクトならデスマーチになってる。
- 904 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:21:58 ]
- >>899
他の製品でもあるけど 基本的に埋め込みSQLをライブラリ・コールに変換するだけ 埋め込んだSQLが変化するわけではない。
- 905 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:23:22 ]
- そりゃあプログラミングの観点から言えば
ハードコードされるのは文字列だからなあ。 ハードコードされる文字列の中身がSQLだってだけ。 で、何か?
- 906 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:23:22 ]
- >>876
へー、ハードコーディングって言うんだ
- 907 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:24:03 ]
- いいから逃げないで答え言えよ
- 908 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:26:06 ]
- 変数使ってるからってことだろ
- 909 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:27:58 ]
- sql = "select * from emp where empno = ?";
これもハードコーディング?
- 910 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:28:40 ]
- >>903
実際のプロジェクトでもよくあるだろ 途中から変なのが登場して最初から全部説明させられて挙句ひっくり返される
- 911 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:29:39 ]
- >>872
マジックナンバーじゃない?
- 912 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:31:31 ]
- O/Rマッパーでも、静的に事前に解析する奴は、ハードコーディングじゃねーの?
- 913 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:33:00 ]
- resultset.column(0) ←ハードコーディング
resultset.column("id") ←ハードコーディング
- 914 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:33:51 ]
- customers.id ←ハードコーディング
ハードコーディングじゃない奴ってどんなんだw
- 915 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:34:58 ]
- static final ID = "id";
... resultset.column(property.get(ID));←ハードコーディング?
- 916 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:35:10 ]
- 要するに、真性包茎はハードコーティング
仮性包茎は動的コーティング
- 917 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:35:50 ]
- スレ流し読みしたが、prepared statement使えばハードコーディングじゃないって奴もいるみたいだな
- 918 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:37:16 ]
- DB変わっても、テーブルレイアウト変わっても、ちゃんと動くのがソフトコーディング
- 919 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:37:18 ]
- まずは、ハードコーディングの定義を何回も読むことだな。
- 920 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:37:34 ]
- 設定ファイルに書けばハードコーディングじゃないってのも意味不明
- 921 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:40:25 ]
- テキストファイルに、
0:select * from emp 1:select * from emp where empno=? 2:select * from emp where empno=? and sex=? とか書いて、それ読んで実行しろよw
- 922 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:41:23 ]
- sql = GetSQLStatement(1) ← ハードコーディング
- 923 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:41:24 ]
- 場合によってはアリかもしれぬ・・・
- 924 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:44:52 ]
- ハードコーディングするかどうかは本質じゃないってことだな
- 925 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:45:10 ]
- Railsみないなやつも、コード生成が自動ってだけで、ハードコーディングだよね
- 926 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:47:18 ]
- こりゃもうDDLから動的に生成する必要があるな
- 927 名前:仕様書無しさん mailto:sage [2008/04/11(金) 00:47:24 ]
- このスレを見ている人はこんなスレも見ています。(ver 0.20)
【DI】Java Spring Frameworkを語るスレ 2.0 [プログラム] これウケる。このスレから得るもんなんてねーぞww
|

|