データベースプログラミング全般スレ

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
データベース板もあるが、あそこは過疎板だからこっちに立てました。
データベース関連のプログラミングならな〜んでもOK。
色んな話をしませまうる号。
221219
垢版 |
2007/10/22(月) 23:28:49
>>220
ありがとうございます。そうなった場合に同一テーブルに対するUPDATEが複数できてしまうのですが、こういうものなのでしょうか。
2007/10/23(火) 11:14:04
「UPDATEが複数できてしまう」とは、どこに出来ると考えてるの?
223219
垢版 |
2007/10/23(火) 21:39:32
>>222
Daoに2種類のメソッドができてしまうといったほうがいいでしょうか。。。
2007/10/23(火) 22:03:35
>>223
電話番号のみ更新用メソッドと、ユーザー情報全部更新用メソッドが出来るって事でしょ?
ユーザー情報の更新に時間掛かるんだったら分けた方が良いし、
そうでなければ全部更新だけで良いような気がする。
2007/10/24(水) 22:48:39
どちらも主キーを条件に更新をするので更新件数は1件です。
1. updateAllで発行されるSQLは update userTbl set name = * , addr = * , tel = *, kubun = * where...
2. updateOnlyTelで発行されるSQLは update userTbl set tel = * where ...
全部更新だけを採用した場合、画面から受け取るのは主キーと電話番号だけなので、1は実行できないじゃないですか。
なので、1の全部更新を実行するために、主キーでデータを取得したDTOに画面からきた電話番号だけをセットして1を実行する、という流れになるのかなぁと。

さらに、kubunだけを更新するような機能が追加された場合に、
update userTbl set kubun = * where ...
を作るのか、これだとupdate文ばかり種類が増えるのが気持ち悪いような気がして・・・
2007/10/25(木) 10:29:12
画面表示や、画面からデータベースへ情報を受け渡すプログラムはどうしてるんだ?
ユーザー情報が全て画面に表示してあるなら、そこから全情報を渡すこともできるんじゃないの?
画面上で変更された項目だけについてSQLを動的に作成することもできるだろ。
2007/10/25(木) 23:04:44
全情報更新は、ほとんどの入力項目がテキストボックスで編集画面にくると現在値がセットされいて、hiddenに主キーがあります。
電話番号のみ更新は、電話番号のみテキストボックスがあり編集画面にくると現在地がセットされていて、hiddenに主キーがあります。

動的にSQLを作るとは、例えばStringBufferとかでがんばるということですか?
update userTbl set ************* where id = ..
***の部分を値があったら StringBuffer#append("name = " + name) という感じで。

本当に頭悪くてごめんなさい。
228デフォルトの名無しさん
垢版 |
2007/11/07(水) 10:20:59
visual basic上で、SELECT文に変数を使用することは可能ですか?
229デフォルトの名無しさん
垢版 |
2007/11/07(水) 10:35:39
Ruby on railsなんて見ていると、DBプログラミングなんて必要なのかどうのなのか
と思うのだが。
2007/11/07(水) 10:41:09
ああいうのが今後有望な方向の一つだとDB関係の御大が
ACM Queueのインタビューで言ってたな。
2007/11/07(水) 17:27:34
MS-DOS時代の、CUIデータベースソフト(マイクロソフトアクセスの前身?)の名前がどうしても思い出せないんですが、おわかりになるかた、おしえてください。

よろしくお願いします。
2007/11/07(水) 21:33:00
マルチプラン?
2007/11/09(金) 00:06:53

2007/12/20(木) 20:51:36
>>231
通称マルチファイル
マイクロソフトマルチツール - ファイル だったかな?
- プラン 通称マルチプランが 表計算
他にマルチチャートってのがあった。

dBASEII の事じゃないよね?
235デフォルトの名無しさん
垢版 |
2007/12/29(土) 16:31:20
トリガーアクションとして、「プログラムの起動」ができるDBシステムは
ありますか?
236デフォルトの名無しさん
垢版 |
2008/01/14(月) 17:05:21
Microsoft SQL Serverって商品名ですか?

分からないことがあってぐぐってるんですが、各々の単語って
一般名詞だと思いません?


どうしてマイクロソフトアアアアアアアアアアア!!!
2008/01/14(月) 18:35:50
>>236
Microsoftは一般名詞じゃないよ
2008/01/14(月) 20:00:20
そうだね(´・ω・`)ショボーン
2008/01/14(月) 20:55:55
Windowsとか
もうやめてくれよと
240デフォルトの名無しさん
垢版 |
2008/01/20(日) 19:37:58
なんでウインドウズを使いたがる奴がいるのか?
2008/01/20(日) 20:27:23
一番便利だからだろうな
242デフォルトの名無しさん
垢版 |
2008/01/21(月) 20:17:06
なんでウインドウズは車輪の再発明ばかりやるのか?
2008/01/21(月) 20:18:39

http://itpro.nikkeibp.co.jp/article/COLUMN/20080104/290425/
2008/01/22(火) 00:15:28
>>242
*nixの連中は再発名ばっかやってるよなw
2008/01/22(火) 00:17:56
再発名?
2008/01/22(火) 05:48:19
再発名はあるいみ至言かもしれん。
同じ概念なのに名前だけが違うって意味だろ?
マイクロソフトがお得意の。
2008/01/22(火) 06:24:15
かといって最近の*nixにオリジナルな新概念があれば
知りたいもんだが…
パクリ元が尽きたせいでMicrosoft Researchがあの
規模になってんだyo!
2008/01/22(火) 22:03:33
>>247
過去の蓄積をパクり終えた後はそりゃ当然だろ。
ある時代に研究開発しているものはどれも同じような問題意識が背景となるわけで。
2008/01/22(火) 22:46:29
パックってもいいが、意味無く文法かえたり名前変えたりして欲しくない
ディレクトリのデリミタも素直にスラッシュにしておくべきだった
2008/01/25(金) 05:45:11
マイクロソフトは自社のパクリ製品をスタンダードにしたがるからなあ。互換性で問題でまくり。

マカ方面も一般名詞のプロダクト多いし、頭にi付けたのばっか。
ワードじゃなくてページとか、パワーポイントじゃなくてキーノートとか。

またDARRPAがお金出して、戦争用のネットワーク構築に伴うOS開発ってやらないのか?
OSの進化が止まってる。ネット機能以上の盛り上がりがないよな。仮想化もいまいちだし。
251デフォルトの名無しさん
垢版 |
2008/01/29(火) 14:07:09
WEBデータベースプログラミングの卒論書くにもあまりサイトしらないので、書くのにオススメのWEBサイト教えてください
252斎藤亜紀
垢版 |
2008/01/29(火) 14:10:36
GetMoney!では、名前に恥じないよう、皆様にキャッシュバックしやすい仕組みを
 提供しております。
 ぜひ、この機会に、GetMoney!に無料会員登録してみてください!

 http://dietnavi.com/?id=676366
2008/03/04(火) 00:35:30
お前ら、データベースをマンセーしてるのか?
2008/03/04(火) 14:44:45
肉のマンセー
255デフォルトの名無しさん
垢版 |
2008/03/05(水) 01:24:51
MySQLにExcel (Office XP)からODBC接続すると、データが文字化けしてしまう。
DBにはUTF8で登録していて、クライアントはWinXP環境。
Connector/NET 接続だと問題無いんだけどね。

character-set系(skip-character-set-client-handshakeも)やら
MyODBCで、set names utf8 などの設定をしてみたんだが駄目。
どうしても(日本語に)化けてしまう。
ちなみに、登録してあるのは日本語では無い(ISO-8859の11辺りだったかな?)

なんだろ。。
256255
垢版 |
2008/03/05(水) 08:29:57
補足。
データは、元がISO-8859-11?をUTF-8に変換してDBに登録していて。
それをExcel(MSAccessでも同じ)に読み込んでみると、
ISO-8859-11?の0x80以上にあたる文字が日本語に化けて表示されてしまいます。

ちなみに、そのデータを直接MSAccessに登録して、ODBCでExcelから読んでみると
正しく表示されたんで。少なくとも、MyODBCかMySQLの設定の問題だと思うんだけど。
257デフォルトの名無しさん
垢版 |
2008/03/06(木) 18:58:48
MySQLのODBCコネクタには問題が多い
バージョンによってもかなり挙動が違う
258255
垢版 |
2008/03/07(金) 01:30:11
ありがとう。そうなんだ。
しょうがない、Accessでやっとくか。
2008/03/07(金) 07:58:09
======== my.ini
[client]
default-character-set=sjis
skip-character-set-client-handshake

[mysql]
default-character-set=sjis

[mysqld]
default-character-set=sjis
skip-character-set-client-handshake

これをサーバー側かクライアント側のどっちかに置くと
正しく認識/余計な変換されなくなるとか何とか書いてあるサイトをみたことがある
(サイトは忘れたしどのディレクトリに置くのかも忘れたので調べてくれ)
260255
垢版 |
2008/03/08(土) 00:44:02
>>259
なるほど。
mysqldの方には、skip-character-set-client-handshake を入れていたけど。
clientにも入れるのね。
試してみる、ありがとう。
261255
垢版 |
2008/03/11(火) 02:02:07
うーん。駄目でした。
扱う文字が非sjis系でPCが日本語OSというところで、ドライバが上手く
動かないんだろうね。あきらめ。
262デフォルトの名無しさん
垢版 |
2008/05/04(日) 00:16:52
とりあえず何かデータベース的なものを作ろうかと企んでるんですが
何かお勧めのものや準備しておくべきものとかってありますか?
2008/05/04(日) 08:41:13
>>262
Accessを買う
Accessの本を買う
2008/05/07(水) 13:03:55
>>262
Prolog
265デフォルトの名無しさん
垢版 |
2008/05/30(金) 19:25:22
紙と鉛筆
2008/05/31(土) 06:27:57
データベース的なもの
データベース的なもの
データベース的なもの
データベース的なもの
ISAMの勉強でもしやがれ
267デフォルトの名無しさん
垢版 |
2008/09/12(金) 09:58:52
DBやる前にファイリング検定でもうけやがれ
2008/10/14(火) 13:52:49
マイクロソフトのSQL Server2005の評価版をダウンロードしたんですが
インストーラのexeファイル(約955MB)にデジタル署名がされていないんです。
これってインストールしてもOK?
マイクロソフトがデジタル署名なしにリリースするってありえる??
2008/10/16(木) 21:13:01
基礎薬学医学のデータを蓄積して、ノートみたいに編集したり、必要時に検索できるようにするために、ちょうどいいデータベースソフトウェアなどありませんか?
化学構造式や写真、グラフ、文書をうまく管理して、学習に役立てられたらとおもってます。
また、論文や日記など、文書も管理・編集できるとよいです。
どなたか教えてもらえませんか?
2008/10/17(金) 13:00:00
>>269
有能な秘書
2008/10/17(金) 17:10:59
まぁ確かに・・・
272デフォルトの名無しさん
垢版 |
2008/10/18(土) 14:26:37
>>269
データベースっていうより資料を管理する手法を知りたいんだね。
資料を管理する手法をアプリケーションという形で提供されていればベストだよね。
それはソフトウエア板の「こんなソフト知りませんか?」スレで聞いたほうが良いね。

自分はエクセルを使っている。
ドキュメントは自分でテキストエディタで書く。そしてそこに引用されている図のための画像やらその他ファイルを一緒のフォルダに入れる。
このフォルダをエクセルにハイパーリンクで挿入して見出しの一覧としている。
この見出しをクリックすればそのフォルダが開き、そこには必要なもの一式が入っているというわけ。
で、検索はWindowsの検索を使用している。テキストファイルならこれで引っ掛けることができるからね。

これらをもっと統合的にやるアプリは俺もほしいと思う今日この頃。


273デフォルトの名無しさん
垢版 |
2008/10/18(土) 17:31:58
データベース自作するののアルゴリズムとか載ってる本やHPない?
Oracleを超えてやる。
274デフォルトの名無しさん
垢版 |
2008/10/18(土) 17:34:41
CGIでAccessみたいなことができますか?
275デフォルトの名無しさん
垢版 |
2008/10/18(土) 17:44:27
ACCESSの具体的などんなことをしたいのか書かないとわからん。
基本的にデータベースソフトとWebサーバーソフトでは機能も違うから
似たようなことができるとはおもえんけど。。そのAccessみたいなことって
具体的になに?
276デフォルトの名無しさん
垢版 |
2008/10/18(土) 17:50:09
データベースの定義とかレポート作成とか。
277デフォルトの名無しさん
垢版 |
2008/10/18(土) 19:08:43
できんことはないよ。>>276
やってみやあ。データベースの定義はどんな定義したいのかしらないけど
普通にテーブル作成とかAccessでいうビューの作成とかデータインポート・表示とか
できるよ。レポートも作成できるよ。HTML表示になるけど。がんばりゃあ。
278デフォルトの名無しさん
垢版 |
2008/10/22(水) 18:37:54
PostgreSQLでC言語の埋め込みSQLってのがありますけど,
"text"(不定長の文字列)として宣言されたフィールドを取り出す時って
どのように宣言すればいいんでしょうか?

EXEC SQL BEGIN DECLARE SECTION;
text hoge;
EXEC SQL END DECLARE SECTION;

とかやってみたけど怒られました.
サンプルに書いてあったように
VARCHAR hoge;
でも怒られるし.
そもそも'text'は標準外だからサイズは固定するしかない?
279デフォルトの名無しさん
垢版 |
2008/10/28(火) 21:08:45
>>272
ありがとうございます。そのとおりです。windows office one note2007を使用することに決めました。ありがとうございます。
2008/10/28(火) 21:42:35
>>274-275
CGI+ExtJSでなんとかなる
2008/10/28(火) 21:44:54
http://pc11.2ch.net/test/read.cgi/db/1220581676/5
:NAME IS NULL:2008/09/07(日) 05:32:37 ID:???
これはどうよ。

窓の杜 - 【REVIEW】「SQLite」のデータベースをGUIで操作できる高機能管理ソフト「PupSQLite」
http://www.forest.impress.co.jp/article/2008/09/04/pupsqlite.html
282デフォルトの名無しさん
垢版 |
2008/10/30(木) 03:15:28
DB超初心者からの質問です。
employeeテーブルがあるとします。
列はid(PK)とnameからなるとします。
社員を追加削除を繰り返しているとidも欠番が出たりすると思います。
欠番は別に良いのですが、社員を追加するときにidに、現在テーブルにないidを探してinsertしないとダメですよね?
このidをどうやって作るのですか?

IDENTITYプロパティーをつければシステムによっては自動インクリメント値ということを本で読みました。
でもシステムによっては・・じゃ、だめっすよね。

あとシステムが自動でつけたidを得る必要がある場合、どうするんでしょう。

結局自分でユニークな値を作るの?
2008/10/30(木) 03:44:55
>>282
> このidをどうやって作るのですか?
方法はいろいろとあると思います。
例)INSERT時の時刻、レコード件数、最大値

過去の最新のIDを格納するテーブルを作って、それを+1したものを新規ID
とするということを過去にやったことがあります。

この場合、同じ時刻の登録操作によってIDが重複する可能性があります。
当然INSERTは蹴られるわけですが、そのときはリトライすればよい。また
適正なロックをかけることにより、このINSERTの失敗をを避けることができます。

こういう面倒なことをしなくてもよいために、DBによってはユニークIDを生成する機能
を持っています。(現在のほとんどのDBは持っていると思います)

> あとシステムが自動でつけたidを得る必要がある場合、どうするんでしょう。
SELECTして見る。
2008/10/30(木) 05:48:40
>>283
ご回答ありがとうございます。

DBが用意してくれているユニークなIDを使うのがよさ気ですね。

もしemployeeのidが他のテーブルから外部キーに指定されている場合、
employeeに挿入したときにDBがつけてくれるidを使って他のテーブルにも挿入とかしたい場合もあると思いますが、
このときはselectでなんとか、その挿入したレコードを引っ張ってくるんですね。
その場合、テーブルをロックしてダーティーリードを防ぐ必要があるということかなぁ。

初心者なのでアホな事を言っているかもしれませんが。
2008/10/30(木) 06:14:33
>>284
INSERT INTOとSELECTサブクエリを使えばひとつのSQLステートメントで
idに値が入った行を作成することができます。

DBのユニークID生成機能にも欠点がありまして、データのExport/Importをするとき
少々厄介です。
2008/10/30(木) 08:03:14
>>285
なるほど。。ちょっと感動してしまいました。
サブクエリか。

経験者のお言葉はありがたい。本当にありがとうございました。
2008/10/30(木) 10:25:38
SELECTの条件はどうすればいいんだろう?
2008/11/01(土) 07:20:10
>>282-285
そういうのはふつうsequenceを使う
2008/11/02(日) 02:04:12
>>288
DBによって実装方法は異なる

Oracle.PostgreSQL sequence
MS-SQLServer IDENTIFYプロパティ
DB2 DENTIFYプロパティ+sequence
2008/11/04(火) 21:06:35
SQL:2003では2つが規格化されたね

Sequence Generators
Identity Columns
291デフォルトの名無しさん
垢版 |
2008/11/04(火) 22:00:32
質問なんですが次のテーブルがあるとします。
●社員名簿(emp_tbl)
INT emp_id
VCAHR() emp_name

●プロジェクトテーブル(proj_tbl)
INT proj_id
VCAHR() proj_name

※各プロジェクトは一人以上の社員が属します。また一人が複数のプロジェクトに属すこともあります。

●質問
社員がプロジェクトに属していることをどう表現するの?

案1:proj_tblに配列(?)カラムmemberを追加し、ここにint型の社員番号(emp_id)を格納していく。
案2:新しくproj_member_tblというテーブルをつくり、このテーブルにproj_id emp_idというカラムを用意して
proj_id │emp_id
───┼───
   1 .│1
   1 .│2
   2 .│1
   2 .│3
のように表現する。

教えてDBの偉い人
2008/11/04(火) 22:14:36
>>191
●プロジェクト配員テーブル
INT emp_id
INT proj_id
293191
垢版 |
2008/11/04(火) 22:16:48
名称はプロジェクトメンバーテーブルでもプロジェクトアサインテーブルでもいいです。
2008/11/04(火) 22:31:17
>>292さん、ありがとうございます!
295デフォルトの名無しさん
垢版 |
2008/12/16(火) 14:04:49
>>291とほとんど同じ状況なんだけど、加えて以下のような条件が加わる場合
どう設計すべき?

・社員はプロジェクト内での順序付けがある
・順序は恣意的に変更され得る
・プロジェクトPのN番目の社員といった読み取りが非常に多い
・プロジェクトに所属する社員の数に制限は無い(恐らく1000は超えない)
2008/12/19(金) 13:56:00
スタンドアロンDBシステムでお勧めなのはAccessでしょうか?
調べたらMSDEってのを見つけたんですけどクライアントサーバ型に適するって書いてあったので。
Oracleも多分クライアントサーバ型でしょうし。
スタンドアロンDBってあまりないんですかね?
2008/12/19(金) 14:47:13
つSQLite
2008/12/23(火) 13:17:39
Haskell用ドライバとかあって吹いた>SQLite
楽しそう
299デフォルトの名無しさん
垢版 |
2009/01/03(土) 19:40:07
299
300デフォルトの名無しさん
垢版 |
2009/01/03(土) 19:40:30
300
301デフォルトの名無しさん
垢版 |
2009/01/25(日) 12:59:36
301
みんなSQLのことなんて読む?
エスキューエル
シークェル
シーケル
2009/01/25(日) 14:12:23
エスキューエル
2009/01/25(日) 20:19:35
いまどきシーくぇるなんて呼んでいる奴はキチガイか変態
2009/01/25(日) 20:50:06
外人じゃね
2009/01/26(月) 00:08:51
ってことはキチガイか変体だな
2009/01/26(月) 05:34:42
いまどきキューリーなんて呼んでいる奴も基地外か変態だ。
2009/01/26(月) 09:34:25
<img src="./img/****"> のファイル名の部分に、MySQLの値 $row["@@@@"]をいれたいんだが
上手く表示できない・・・誰か助けてください><
2009/01/26(月) 10:00:23
すんませんできますた
2009/02/20(金) 07:41:09
はじめまして。皆さんの知恵を貸してください!

SQL Server 2005を使って以下のようなアプリを組んでいます。

SQL Server内にDBを2つ作成し、ひとつを格納DB、もうひとつを展開DBと呼びます。
格納DB内にはデータを格納するためのテーブルがひとつあり(格納テーブルと呼びます)、
格納テーブルにデータがInsertされるとトリガーによりストアドプロシージャ(Transact-SQL)が実行されます。
このストアドプロシージャは、格納テーブルのデータをインプットとし展開DBに反映します。
尚、格納テーブルにはプライマリーキー(IDENTITYにより自動裁番)を設定しています。

上記アプリを組んでいるのですが、以下のような問題が発生しています。
1.複数端末から格納テーブルにほぼ同時にレコードを追加した際、後発のトリガーがタイムアウトになってしまい、エラーとなる
2.トリガーがエラーとなった場合、格納テーブルへのレコード追加が無効になってしまう

上記問題を解決するための知恵をお貸しください!
理想は、格納テーブルにデータを格納した場合でもタイムアウトが発生しないようにしたいです。
展開DBへの反映遅れは数分であれば問題ありません。
ちなみにストアドプロシージャの平均実行時間は10秒程度です。
2009/02/20(金) 22:10:53
>>309
処理するタイミングを分ける。

・端末からの通信で開始 → 格納テーブルへの追加 → 終了
・ジョブなどを使って一定時間毎に開始 → 格納テーブルから反映されていないデータを読み取り → 展開DBへの反映 → 終了
展開DBに反映済みかどうかの判定には格納テーブルに反映済みフラグ列でも作って管理する。

あとは、ストアドを早くする、タイムアウトの時間を延ばす。
2009/04/06(月) 04:01:32
スルー推奨
2009/05/29(金) 17:32:07
フィールドって言うんですか、「項目」。

既存のフォームに追加したいんですけど、さっぱりわかりません。

sunの無料のbaseです。
313デフォルトの名無しさん
垢版 |
2009/05/29(金) 17:40:28
あげ
2009/05/29(金) 18:09:56
>フォームに追加したい
>sunの無料のbaseです。
…はあ。
>さっぱりわかりません。
ホントにね。
2009/10/11(日) 10:32:03
仮想テーブルって実データをコピーして持っているのか
参照を持っているのかどちらでしょう?
2009/10/12(月) 14:24:09
実装に寄る。
2009/12/14(月) 18:57:00
.NET 4.0 から System.Data.OracleClient は推奨しないよ
ttp://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx
という話は知ってたが、まさか自分がその「修正するつもりのないバグ」に遭遇するとは思わなんだ。
ttp://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=411873

まじすか…orz
2009/12/16(水) 12:24:00
.netからpro cでも呼ぶか、.net捨ててpro cで全部組めば。
全部phpでもいいけど。
2009/12/16(水) 14:47:57
>>318
できるかンなこと!w
MS 推奨の ODP.NET 使うよりエラいことになるの必至だろ!

つーことで、とりあえず小手先 (クエリちょっと修正) で押さえ込んだ。
320デフォルトの名無しさん
垢版 |
2010/02/03(水) 01:36:58
今のMysql5.1ってdoubleとか文字列に変換しないでそのまま格納できるみたいだが、
C++で格納したり取り出したりできるの?
atofとかじゃ誤差で使い物にならん。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況