379 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/02/23(土) 00:05:22.07
MySQLでシフトJIS使ってたら何かまずい事がある?
マニュアル見て自己解決
webアプリを作る際にdbを使おうとしています.
javaからいじるときの書き方なんですが
例えばデータを読み取るsql文を発行する関数を作ったときには,
その関数内でStatementとかResultSetとかを閉じるものなのですか?
あと,データベースとの接続を閉じるのはいつにすればいいのでしょうか?
おれはデータベースで何をしたらいいんですか?
履歴テーブルのスマートな実装手段は?
385 :
デフォルトの名無しさん:2013/08/12(月) NY:AN:NY.AN
>>383 変更時のタイムスタンプと変更内容を正規的に記述する
386 :
デフォルトの名無しさん:2013/10/21(月) 11:37:39.16
Entity Frameworkで DbContext を使って開いたデータベースの
テーブルの個数が知りたいのですがどうやったら取得可能でしょうか
387 :
デフォルトの名無しさん:2013/10/31(木) 14:29:14.79
Magic quotesはオフにしよう
http://codezine.jp/article/detail/2480?p=2 本題からは外れますが、特別な理由がない限り、SQL文はプリペアードステートメントを使って実行するようにしてください。
これはSQLインジェクション攻撃に対する最も基本的な対策です。基本的なことにも関わらず、プリペアードステートメントが
あまり使われていないのには以下のような理由があるのではないかと、筆者は推測しています。
388 :
デフォルトの名無しさん:2013/10/31(木) 14:30:17.40
SQLを文字列で作って実行するという直観的にわかりやすい方法が入門書等で紹介される。
初心者がそれをそのまま真似る。
SQLインジェクション攻撃に対して脆弱なウェブアプリが量産される。
PHPの開発者が「Magic quotes」というマジックを導入する。Magic quotesによって、ブラウザから送られた「O'Reilly」という文字列は、自動的に「O\'Reilly」に変換されようになる(脆弱性回避)。
この「O\'Reilly」という文字列は、プリペアードステートメントでは使えない(余計なバックスラッシュが入ってしまう)。
プリペアードステートメントは使われなくなる。
389 :
デフォルトの名無しさん:2013/10/31(木) 14:31:20.44
データを勝手に書き換えてしまうMagic quotesがデフォルトで有効になっているのは困ったことです。
PHPをインストールしたら、設定ファイル(php.ini)を探して、「magic_quotes_gpc = Off」としておきましょう。
>>387 5.3 2009-06-30 <- magic_quotes_gpcがobsoleteになる
5.4 2012-03-01 <- magic_quotes_gpcが削除される
5.5 2013-07-20 <- いまここ
NetWareサーバでbtrieve使ってたころは
インジェクションとかなんとか悩む必要なかったんだよな
392 :
デフォルトの名無しさん:2014/02/02(日) 00:31:08.57
自分で競馬データベースや競馬新聞を作りたいんだが
どんなプログラミング言語を学習すればいいですか?
競馬を通してプログラミングを勉強すれば楽しいと思うし、
仕事にも役立つとなれば一石二鳥。
データーソースは外部の物を利用。
393 :
デフォルトの名無しさん:2014/02/02(日) 01:23:31.88
Haskelです。
>>392 c++、Haskell、Ocaml、Scala
c++ならc++cmsを使ってCMSサイトを作れる
HaskellならYesod、ScalaならLift
速度重視ならc++、バグを含まないように作りたいならHaskell
性能と実績ならJVM上にあるScalaがベターだよ
普通にPHPでええやん
何が不満なの?
PHPが不満
想定顧客数すら見えないんだからPHPかRuby/Railsじゃね
398 :
デフォルトの名無しさん:2014/06/25(水) 00:08:06.39 ID:hOEFw5aV
たとえば、1つの製品を作成するのに掛る部品リストのテーブルが以下だった場合。
ID,製品,部品名称,部品個数
グリッドに表示させる時や出力させる時は横に並んでほしい場合は結構あるかと思います。
製品,部品1名称,部品1個数,部品2名称,部品2個数,部品3名称,部品3個数〜〜
こういう時は一般的どうするのがスマートなんでしょうか?
たとえばAccessでグリッドに表示させたい場合、もしくはcsv、Excelで出力したい場合など。
401 :
デフォルトの名無しさん:2014/07/22(火) 04:18:35.67 ID:lQzj9+dU
C# + Connector/Net + MySQL でデータベースの勉強し始めたんですが、Connector/Netのライブラリを把握しきれないうえに、データベースプログラミングで確実に身に付けるべき作法みたいなものがよく分かりません。
オススメの入門書を教えていただけないでしょうか?
403 :
デフォルトの名無しさん:2014/11/06(木) 21:15:47.38 ID:chc+9Rz7
みんなの意見を聞かせてください
データベースを設計しているんだけど、
例えば、定食マスタがあるとしてそれの内容を持ってるテーブルが別にあるとする
A定食に対して、おひたし・ごはん・味噌汁・豚肉炒め・サラダ等
んで、あるとき豚インフルで豚肉が提供できなくなったとして、豚肉炒めから牛肉炒めに変更しA+定食にしたとする(値段等そのたの問題は抜きとする)
その場合、定食の構成としては1品しか変わらないわけだけど、それぞれに同じ構成を持つとデータだけ増えていくよね
例だと品数は少ないけど、定食の数も数百種類、それぞれの構成も何十種類となった場合、
基本はAの構成だけど、バージョンが上がって一部構成が変更になった場合、
どういう風にデータベースを設計したらいいと思いますか?
やはり別のものとして丸々構成を持った方が良いのでしょうか?
説明が下手ですみません。どうかよろしくお願いします。
>>403 数百や数千なら個別に作るけどな
定食なら日本全国のを集めても数千も無いだろうしwww
405 :
デフォルトの名無しさん:2014/11/07(金) 07:02:18.20 ID:QVJdWUqC
>>403 BOMとか部品表とかで色々調べるとよいかも。
テーブルの使い方次第だけど、定食が1日に100百食作る予定だから、
あらかじめ材料を何キロ買っておく、みたいな使い方をするなら、
12月1日からのA定食の構成要素をはこれとこれを含むという
適用範囲を持ったテーブルになると思う。
まぁ、テーブルの使い方によって設計が変わるはず
C# で、System.Data.SQLite を利用しているのですが、
データベースファイル内のテーブルの数、ないしテーブル一覧を取得するにはどうすれば良いでしょうか?
407 :
デフォルトの名無しさん:2015/02/15(日) 09:08:49.39 ID:lVCsB9EK
.schama
長いことIT業界にいるが、
いまだに排他制御が完全なシステムを
作ってるのに出会ったことがない・・・
俺自身、どのレベルで何をどうしたら
完璧になるのか良く分かってないしな。
DBアクセスのたびにDB全体を完全ロックすれば完璧だよ!
DB用に専用線を引いて、通信を暗号化すれば完璧だよ
411 :
デフォルトの名無しさん:2015/02/15(日) 11:59:28.83 ID:iz0G57zc
入力時点でシリアル化しとけば排他制御いらんな。
>>408 汎用機のオンラインシステムは完璧な排他制御を求められたんだがな。
RDBなら本来、アプリケーション側で排他制御なんかしないよな。
DBにとって必要な整合性と、アプリにとって必要な整合性は違うのだよ
HTTPとの相性最悪
素人乙
>>413 データベースが勝手に排他制御をしてくれるとでも?
当たり前だろ。そうじゃなきゃDBMSの意味がない。
で、普通は明示的な排他制御などやらずに適切なトランザクション分離レベルを宣言するんだが、
わかってない奴が設計するとそこが適切じゃなくて、「この処理の前にこっちのテーブルをロックしなきゃ」
なんてことになる。
レベル宣言だけで上手くいくもんか
>>418 テーブルに最終更新時間とか持たせて、
表示させた後にDBに書き込むときに、
最終更新時間が取得したときと違ってたら
エラーを表示するとかなんたらって、
ズラズラとコードを書いたりしないか?
>>418 分離レベルだけで勝手にやってくれるとでも?
>>420 ロングトランザクションのために仕方なく読み出しと書き込みを分けるなら、たしかにそういう、
いわゆる楽観的ロックを使う場面もあるね。
その場合は両者のトランザクションは独立したものとして、つまり読み出しがない書き込み
トランザクションにも正しく対応できるよう設計すればいい。
もちろんこれも「排他」制御ではない。
>>422 そういう同時実行時の不整合を起こさない仕組みも含めたのを排他制御とは言わないのかい?
>>419 >>414が良い事言ってる。と思ったら414=419かよw
すくなくとも「DBにとって必要な整合性」は保障されるだろ
>>418が「アプリにとって必要な整合性」をどう考えてるのかは知らんが
>>422あたりを見るに、それは
>>418にとっては排他処理ではないらしいから考慮外なんだろう
理想は分離レベルの指定だけですべて済ませればいいんだが
なかなかそう言うわけにはいかないのが現実
VB ScriptのADOで
Do
Loop
の中に
rs.movenext書き忘れるとなにがおこるの?
427 :
デフォルトの名無しさん:2015/03/10(火) 22:06:12.52 ID:umpnsyO6
428 :
デフォルトの名無しさん:
rs.delete してればそのうち終わるんじゃね?