1 :
NAME IS NULL :
04/12/17 12:05:27 ID:LnFmYpJx データベースプログラミングに最適な言語は何かを論じたい。 まず、漏れは Ruby を推したい。 内部イテレータのおかげで、短いコードでデータの取得、メモリの解放が可能だ。 Perl や PHP はオブジェクト指向の機能が不足である。Javaやは型宣言を せねばならず、ムダにコードが長くなる。保守性は悪くなる。 つまり、Javaは別の分野で用いるべきである。 .NETやPythonは知らないが、.NETはJavaの片割れでたいしたメリット無いみたいだし、 PythonはRubyのライバルとされているが、どうか。イテレータの書きやすさは Ruby のほうがいいな。
RUBYYYYYYYYYYYYYYYYYY!!!!!!
3 :
NAME IS NULL :04/12/17 12:45:04 ID:rsdHk+n+
Ruby知りません。 データベース呼び出してるところのソースを載せていただけると ありがたい。
5 :
NAME IS NULL :04/12/17 15:25:46 ID:eTOTMI26
データベースプログラミング? C/C++じゃねーか? データベース検索登録アプリケーションなら、PerlかJAVAあたりだが。
>>1 はJavaのコードをテキストエディタかなんかで保守してるのか?
IDE使うのなら、Javaが一番メンテしやすいが。
7 :
NAME IS NULL :04/12/17 17:00:08 ID:mRzc/gpV
T-SQLとかPL/SQLじゃだめ?
PL/SQLでクライアント作れるならいいんじゃねーの?
9 :
NAME IS NULL :04/12/17 19:01:00 ID:dKX3DfZl
VBだろ
10 :
NAME IS NULL :04/12/17 19:45:18 ID:rsdHk+n+
>4 ありがとうございます。なんとなくわかりました。 ただ、他の言語に比べてどこがデータベース向きなのですか。
11 :
NAME IS NULL :04/12/17 20:26:12 ID:b9scDf06
12 :
NAME IS NULL :04/12/17 20:35:41 ID:EPB4yf3L
PowrBuilderの、ソース内にそのままSQLを書いて 変数のやりとりを出来るところは便利だった。 といっても、PowerBuilder使ってた人なんて ここにはまずいないだろうな・・・
4 のサイトのコードをコピペしてみる。 require 'dbi' DBI.connect('DBI:Mysql:test', 'testuser', 'testpwd') do | dbh | puts "inserting..." sql = "insert into simple01 (SongName, SongLength_s) VALUES (?, ?)" dbh.prepare(sql) do | sth | 1.upto(13) { |i| sth.execute("Song #{i}", "#{i*10}") } end puts "selecting..." dbh.select_all('select * from simple01') do | row | p row end puts "deleting..." dbh.do('delete from simple01 where internal_id > 10') end ブロックのおかげで処理のスコープが視覚的に分りやすいというのはあると思うが、 別段データベースに限ったことではないしな。 ライブラリの整備や開発環境のサポートを考えれば、 Class::DBI のある Perl や OR マッピングライブラリが盛んな Java の方が数歩先んでている。
Developer2000使ってPL/SQLと怪しげなパッケージ(組み込み関数)でプログラム作ったっけ・・・。
>>13 データベースからの受け取り方で一番いいのは、
やはりハッシュ型なんだよ。キーを示して値を取る。
v = row['name']
または
v = row[:name]
これでいいじゃん。最も美しい。
わざわざオブジェクトにマッピングする意味は無いんだよ。
開発環境なんて、それの使い方覚える手間かかるじゃん。
スクリプト言語プラットフォームなら最低限、エディタがあればいい。
Javaは型宣言とかいろんな設定のために編集するもろもろのxmlファイル類を
ツールの手助け借りてやらないといけない。
本当は、実を取れば、こんな個別にツールの使い方覚えるまでもない。
.NETがその形式やね。
ヘジタン ハァハァ
18 :
NAME IS NULL :04/12/18 11:50:55 ID:IWYXFWeN
10 を書いたものです。>1 にしっかりした説明があるのに 間の抜けた事を書きました。じつは、データベースに最適な言語と いう板の題目から、データベースの参照パターンのようなものが ライブラリーにたくさん入っているというような言語を期待して しまいました。 SQLの文字列が出てきたのでアレッと思ったのです。 SQLを書かなくて済むような言語はないのでしょうか。
>>18 SQLがダメだから、というのは、それはムリだよ。
RDBを扱う以上、SQLを書くことはどうしても必要で。
SQLを書き出すための文字列処理のプログラミングは必ずやることになる。
文字列処理が強力なプログラミング言語は何かなと考えるべきなんだよ。
そうすると、やはりRubyあたりがイイってことになってきちゃう。
XMLにおけるDOMのように、リレーショナルデータベースのリクエストをオブジェクトとして
構築する言語・プラットフォームを越えたAPIってのは、将来はありそうな気がするが
今でもそんなものは無いし、非現実的だ。
>>15 取ってきた値をちまちま代入するのがコードの無駄。
>>20 なんだよ。
データ取ってきてそれを一切どこにも代入しないってか。
>>19 にだ。
>SQLを書き出すための文字列処理のプログラミングは必ずやることになる。
>文字列処理が強力なプログラミング言語は何かなと考えるべきなんだよ。
DB云々ではなく、文字列処理をRubyで覚えたから使ってる orz.
>>19 SQL と文字列処理に強いかってのはあんまし関係ないと思うぞ。
>>18 RDB/SQL をデータの格納と取り出しだけの存在とみなすならいいのだけど、
実際には複数テーブルを join して集計したりと、
業務ロジックと密接な処理を SQL を用いて行う場面が多い。
そういった SQL/その RDB でできることをできる限りカバーしようと考えると、
プログラミング言語のライブラリ側に
SQL とほぼ一対一で変換できるようなオブジェクト
(Criteria オブジェクトとか良くあるけどさ) を導入することになる。
が、OR マッピングのライブラリの仕様はまちまちだし、
はまだ SQL でできる範囲をカバーしきれていないので、
それなら SQL をそのまま使った方がいいというのが現状。
s/はまだ/まだまだ
>>21 結局エンティティクラスのコンストラクタの引数に渡すか
作ったインスタンスにセッターメソッド使って値を代入することになるので、
それなら直接インスタンスになってくれた方がありがたい。
> SQL と文字列処理に強いかってのはあんまし関係ない いや、自明のことというか、大ありだと思うんだが Javaでやる文字列処理って、どんなにキレイに書こうとしても知れてるぞ。
>>24 なってるじゃん。Hashインスタンスに。
>>24 データベースから何か振る舞いを持つオブジェクトを作るって確かによくあること
だと思うが、それをプログラミングしないわけにはいかないだろ。
>>27 その部分をライブラリが勝手にやってくれてほしいってこと。
>>24 そういう「オブジェクトを作る」ってのは、データベースプログラミングの中でも
重要なトピックで、キャッシュが使えるところではキャッシュを使うとか、
ソフトウェア毎に最適な設計は異なるところで、その大切な部分を
自動化なんてできるわけないし、なんかのフレームワークとやらを使って
無理やりしようとしたころで適切なプログラミングよりシンプルに分かりやすく
なんてなりそうにない。
それは分るんだけどさ。 定型的だし書いていて何ら面白くないから、 フレームワークに追い出したいわけですよ。
>>30 定型的っていうけど、ホントかな。
適切なファクトリーメソッドの実装を見直して、モジュール化というか
プラグイン化を意識したコードにするとよいと思う。
アクセサメソッドが大量にあったりするとキモいね。
フレームワークは何の解決にもならないよ。
手続きがアプリケーション毎に違うからプログラミングするんだ。
適切に書かれたファクトリーメソッドがあると そのシステムの意図がよく伝わると思うんだよね。
DB とプログラミング言語の界面はフレームワークに任せて、 その上の部分で 「手続き」 を実装したいんだよね。 なるべく疎な関係にしたい。
>>33 > プログラミング言語の界面はフレームワークに任せて
できるわけないし、やる意味ないと思うんだよ。
要求されている機能とデータベースの性質に合わせて
パフォーマンスのカ改善、キャッシュのヒット率を上げるとか
いろいろがんばらんといかんのに。
まぁ、タイトなパフォーマンスが要求されるかどうかは、 そんなに必要無いってこともあるかもしれないけど。 しかし、データベースかオブジェクトを作るシーンってそんなに 多いかね。たとえば、社員の勤怠管理のシステム作るとして、 どれだけクラス書くかな、せいぜい6コくらいのクラスで 十分じゃないかしら。
パフォーマンスより拡張性重視で使っているからなあ。 今開発運用しているのが 30 位のクラスと同じくらいのテーブルを持ったウェブアプリで 隔月に一度は機能拡張している。 予想以上にユーザが増えたので、今は PostgreSQL なのを Oracle にしようという話もあったりして。 RDB 向きの使い方じゃないのかも。
>>36 拡張性を重視するだから、
どの言語を選んでどういう作り方をしているのか教えてくらはい
データベースを操作する場合の思いつく手法をあげてみるとこんな感じなのだが、 1.JDBC/ODBC/OLE-DBなどの結果セット型 2.SQL-JやPRO*Cなどの埋め込み型SQL 3.簡易言語などに見られるデータベースを直接操作する命令をもつ言語 4.ストアドプロシージャをベースに簡易言語に発展させたもの 5.O-Rマッピング 6.DBMS固有のAPI(CLI)を直接操作 1を前提にするならオブジェクトが扱いやすい言語が有利か。 パフォーマンスを重視するなら2もいいのだがなぜか人気がない。 3と4は環境依存なのが難点だがプログラム言語の型とデータベースの型が一致することが 多いので、適用分野を間違わなければ使いやすいかもしれない。 5はいまだ未知数で6はもう疲れた・・
>>37 Perl と Class:DBI ベースの DB 中間層と
CGI::Application ライクな独自のウェブアプリケーションフレームワーク。
40 :
NAME IS NULL :04/12/19 00:22:10 ID:A+bPKqVc
S2DAOあたりではダメかな
Class::DBI も S2DAO O-Rマッピングだよね。 O-Rマッピングの意義を誰か教えてほしいよ。マジで。 振る舞いを持つ必要なんてほとんどないのに (あったとしても、それはプログラミングすべきだ)、 なんでオブジェクトにするんだ。 なんかマッピングすることを目的にしちゃってて複雑化しすぎ。本末転倒だよ。
>>41 お前がオブジェクト指向で設計してないからだろ。
>>42 違うんだよ。使うところでしっかり使う。
しかし、たとえば、何かの住所録でもって
人のカラムを表現するのに Human クラスとかなんとか作って、
でもそれに何かメソッドを定義するかといえば、何も無いんだよ。
それでデータベースとオブジェクトとのマッピングとかいっても、お笑いなわけ。
だから、必要ないなら使わなきゃいいじゃん。 必要な人がたくさんいるから、それができあがったわけで。
O-Rマッピングは「できあがって」はいないと思うな。まだ発展途上だ。 良さそうな香りはするんだが、現状では使ってみると幻滅することが多い。 「必要な人」でも現在のO-Rマッピングには不満を持ってる人は多いと思うよ。
46 :
NAME IS NULL :04/12/20 20:07:12 ID:srbYM6J2
フロントエンドはAccess以外に考えられない
そんなことより「ID:???」が気になる・・ なんでそんなことになるのさ〜♪
48 :
NAME IS NULL :04/12/20 21:57:40 ID:P3k+Hk5h
>38-46 (最)適性の要件について 話をSQLだけに絞って、 SQLの完全なるParserを持つ必要はないのですか。逆に処理系が SQLを「生成」するとなると必須とおもいますが。
49 :
NAME IS NULL :04/12/20 22:40:57 ID:PRMMb90r
50 :
NAME IS NULL :04/12/21 03:04:48 ID:cB2rd/+5
>49 一連の議論を読んでいると、同じ「最適な言語」を競っても プログラマがSQL文字列を知っている必要があるクラスと コンパイラがSQLを構成するクラスとありそうに思えたから。 ボクシングとK-1ほどに上がる舞台がちがうのではないか。 Parserが必要と感じるのはもちろん後のクラス。関数型言語で SQL相当の操作を書くとすれば、文字列操作の云々は的外れ となり、むしろSQL文字列にどう組み立てなおすかが課題となる。 そんな意味なのですが。
データベース側が統一が取れてないからそっちを何とかしないとなぁ。 ドライバやクラスで吸収するには違いが大きすぎる。
52 :
NAME IS NULL :04/12/21 10:39:07 ID:2ug2sBNH
>>50 すんません。
コンパイラがSQLを構成するっていうのが、私、あまり知らないのですが。
それは例えばどういうものか教えてくれますか?
53 :
NAME IS NULL :04/12/22 22:55:50 ID:JoqolnD5
4,10,18,48,50 と書き込みできた者です。 >52 私も知りません。無責任で申し訳ない。 読み返してみるとParserとかコンパイラとかの用語選択も適切でなかった。それで仕切りなおし。 Lispでと思ったのですが括弧ばかりで上手く説明できそうにないのでProlog風に行きます。 select,into,from 等が適切にオペレータ定義されて、 (select * into X from Table) :- ...... (1) のようにSQLのパターンが述語として定義されたとします。これをプログラムのなかで ?- ...... ,select * into X from emp, ...... のように使うことは利用者がSQLを知っている ことを前提にしているという意味で "select * from emp" と文字列で処理するのと 変わりありません。次に、(1)のパターンばかりでなく、考えられる全てのSQLの参照(操作)パターンを 定義できたとします。その上で、 rdb_call('emp表の全ての組',X):- ......... (2) を定義し、(2) :- の右側で、'emp表の全ての組'を解析して(1) を引き出すことができるとすれば、 この段階で、利用者はSQLを知る必要はなくなります。この例は引数がほとんど自然言語ですから、 相当に複雑になるでしょうが。 (2)のようなライブラリーを充実して、データベースに対処しようとすることはSQL文字列を生成したり 表記する方法を洗練することとはやはりステージが違うと考えるべきだということです。50で述べたかった ことはそういうことです。(2)のようなライブラーだけでデータベース操作を行い得ないということも当然でしょう。 (2)を目指しながら、(1)のレベルを排除しないというのが現実的な処理系の対応になると思います。 それから、(1)のようなパターンを全て定義済みならば、*.sqlのようなファイルをそのまま実行することも 可能なはずです。Parserという言葉はその意味で使いました。
SQL と構文レベル、意味レベルにおいて等価であるなら、SQL そのものを使えばいい。 日本語がネイティブの人間と意思疎通を図るなら日本語が良いのと同じ。 その意味では RDB とオブジェクト指向言語の間の インピーダンスミスマッチは原理的にすべて解消はできない。
55 :
NAME IS NULL :04/12/23 00:39:54 ID:ezyhfnup
> SQL と構文レベル、意味レベルにおいて等価であるなら、SQL そのものを使えばいい。 そう思います。 しかし、RDBモデルが極めてシンプルな構造のモデルだから、SQLのような 論理式で済んでいる、ということはないのですか。優れて恵まれた状況だと。 グラフィックインターフェイスを必要とするようなモデルも視野に入れると、 >1 でRubyが推されたような前提が成立しないのではないか。
>>55 現実ではやはりSQLというものが使われてしまっているのよね。
ちなみに、リレーショナルデータベース使うまでもないシーンでも、
RubyにはDBMが簡単に扱えるライブラリが標準で付いてる。
>>12 PowerBuilderもVBも使ってたよ。
PowerBuilderはC/S系システム向けだね。
VB知ってれば非常に作りやすいし、VB/VCと違ってocxとか考えなくて良いから楽ちん。
いかんせん メジャーじゃないし 高杉だ。
VisualStadio.net(MSDN)より高いってどういうことよ?(w
58 :
NAME IS NULL :04/12/27 00:18:11 ID:ATYXiOMn
ウェブインターフェースでもそうだが ウィンドウヴィジットによるユーザインターフェースが絡むとなると、 ますます、オブジェクト指向の機能が欲しくなるんじゃなかろうか。 まぁ、Javaもそんなに悪い選択肢だとは思ってないよ。 Javaはウェブプログラミングには向いてないとは思うけどね。 データベースのプログラミングやるなら、 スクリプト言語で組んだほうがどちらにしても効率いいな。
>>57 より生産性が高いから(ということにしたいのだろう)
あと、MSDNは薄利多売だからな
60 :
NAME IS NULL :04/12/28 14:12:47 ID:+5LiD5/G
>>6 そこがJavaの欠点と言える。
豪勢なIDEが無いとまともに編集できないのはどうか。
それよりは、エディタ一つあればできるものであるほうがいい。
>>60 別にソース一本で終わるように作れば、JAVAだって可能だが。
Servletに全部ロジックも表示もべた書きすればいいわけだし。
PerlやPHPはそれをやってるから一本で終わってるだけで、
MVC分割だの、よく使うロジックはわけるだのやってたら、
ソースの本数は増えて、JAVAが普通に複数ソースに
なるようなのと同じになるわけだが。
結局、言語云々ではなく、作り方云々だろ。ソースがどうなるかなんて。
62 :
NAME IS NULL :05/01/01 09:12:20 ID:DTmypz3j
>>61 いや、どんなに単純化しようとも、JavaにはIDEは必須。間違いない。
作り方云々なのは、それはそうなんだ。当たり前の話。
いい作り方って eXtreme Programming で十分示されているから、
それをうまくやる最適な言語は何かと考えるわけだな。
64 :
NAME IS NULL :05/01/01 21:26:46 ID:DTmypz3j
>>62 ソースと掛けてるのか?( ´,_ゝ`)プッ
> 62 名前:NAME IS NULL[] 投稿日:05/01/01 09:12:20 ID:DTmypz3j
> 64 名前:NAME IS NULL[] 投稿日:05/01/01 21:26:46 ID:DTmypz3j
>
>>62 > ソースと掛けてるのか?( ´,_ゝ`)プッ
お客様にお願いいたします。
釣りもしくは自演をなさるのならせめて ID を変えていただけませんか ?
SCSIのほうがよかんべよ
>>63 ソースが1本か2本な人もいるかもしれないのに、JAVAだからと言う理由で
IDE使わなければならないと力説するのは無意味だろう。
69 :
NAME IS NULL :05/01/04 15:15:54 ID:9Iyz55u3
70 :
NAME IS NULL :05/01/04 17:27:59 ID:B6lG7lz8
teratermで日本語打とうすると「ピッ!」とかいってキャンセルされるんだけどなんで?
71 :
NAME IS NULL :05/01/05 01:50:27 ID:+z3sOH/k
>>70 オレモ悩んだ ちゃんと金払ったら治ったYp!
72 :
NAME IS NULL :05/03/04 02:34:24 ID:EfhcthQ+
cobol
73 :
NAME IS NULL :05/03/05 09:17:29 ID:k6L3bLwV
考えてみると、「最適な」というからには、 コンパイラであっても同能力のインタプリタが動かないと その資格がないのではないか。
74 :
NAME IS NULL :05/03/08 20:57:30 ID:J+GOJiO4
PowerBuilder勉強したいのですが、なにか参考になるサイトがあれば教えてください
76 :
NAME IS NULL :05/03/16 09:24:16 ID:kVjMt6r8
やっぱHTMLだろ
77 :
NAME IS NULL :05/03/16 23:37:57 ID:eQ2wfiPV
やっぱOTLだろ
なんだ、このスレDBの問い合わせ言語比較スレかと思ったら違うのか。 SQLとXBASE以外に知らんからマニアックな話題が飛び交ってるものかと・・・。
むしろTCP/IPだろ
80 :
NAME IS NULL :2005/03/21(月) 19:55:08 ID:3QUKO9Hm
C/Sで簡単に作る VB WEBで簡単に作る PHP
Delphiも仲間に入れて
ILE RPG ってのは無しですか。
>>82 OS/400x86版をオープンソースで出してくれたらいいのにな。
84 :
NAME IS NULL :2005/03/29(火) 00:30:15 ID:bS+G/8nX
SQL*Plusなんかで動作確認したSQLを、そのままカッペして動く言語はないでしか? SQL="SELECT" SQL=SQL+"ID, NAME" ・・・ うざっ!
>>84 昔のSQL*ReportやSQL*Formがそんな言語を使ってました。
もっともあれはあれで うざっ!かったような記憶があります。
最近のJDeveloperはどうな感じなのだろう。
(´-`).。oO(SQL言語?)
PSQL や SQL+ クラスのインタプリタを自ら書く(言語を創る)なら、 LISP,Prologといった記号処理言語が一番ですね。
C#が真打ち
硫黄島は英語で Iwojima Island なのだ
87は当然厳密に、SQ言語とか言うのか?
93 :
87 :2005/04/04(月) 09:59:33 ID:???
>>87 は、SQL言語の何処に食いついたのか説明すべきだろう
1. L は Language。
2. 「SQL を、整形せずに埋め込める言語は?」の問いに
「SQL」と答える間抜けさ。
3. SQL はプログラミング言語ではない。
取り敢えず
>>84 は PL/SQL (サーバサイド) ないし
Pro*C (も言語じゃないが。クライアントサイド) でも使えと。
SQLはプログラミング言語の一つだと思うが、なんでそこまで断言できるのか不思議。
SQLは当然、プログラミング言語。 ただし、Turing Completeではないだけ。
98 :
NAME IS NULL :2005/04/07(木) 08:39:43 ID:1iNHWJL5
まじBasicに統一してほしい。まじで
99 :
NAME IS NULL :2005/04/07(木) 14:26:06 ID:qOmyg27t BE:86767766-#
C# か Java がやっぱり委員で内科医? でも言語の選択よりもバインディングがしやすいかどうかのほうが重要な気がする。
>2. 「SQL を、整形せずに埋め込める言語は?」の問いに「SQL」と答える間抜けさ。 だから、SQL自体もプログラミング言語なんだから、 SQLで完結しろと言うことだろ?
制御構造を持たないSQLを「プログラム言語」っつーのは抵抗あるなあ。 第一、PL/SQLの立場がないじゃないか。 >100 >SQLで完結しろと言うことだろ? バッチ処理しかしないのかッ!
102 :
NAME IS NULL :2005/04/08(金) 12:02:11 ID:jJbVkurV
>バッチ処理しかしないのかッ! 業務にSQLPLUS以外は使わせない! というのはどう?
103 :
NAME IS NULL :2005/04/09(土) 14:10:07 ID:Dj2hyJqu
Perl! Perl! Perl!!
PHP + PostgreSQL で使ってますが、 この言語は五本指くらいには入りますか。ほかしらないので・・。
なんの五本指だ? 重くて煩雑なスクリプト言語の五本指か?
現存するかを問わないならば、直接、 char *table; table := "社員"; select 'A',"所属","社員番号","社員名" from table; が書ける言語かな。
107 :
NAME IS NULL :2005/04/14(木) 12:20:28 ID:Mm8jP2Ai BE:77127348-#
言語よりもライブラリの方が重要な気がする。
108 :
NAME IS NULL :2005/04/14(木) 12:48:51 ID:OLQ4oyeV BE:68112735-
/ (___ ___) ヽ ./ ノ 人 ヽ ヽ __ ./ // ヽ ヽ .ヽ / ̄\ ./ ○ ヽ、 / (__) (_) ヽ/ ○ \ / \,,,--―――''''''''''''''''''''――-/ ヽ ..⌒‐-,,,,_ /:/ヽー―――-、,,__,,,,-―――:|| _,,;-‐''"⌒~~~ .ヽ/::||:::::::::: (●) (●) ||/ヽ く ::||::::::::::::::::: \___/ ||:::::::::ヽ ヽヽ:::::::::::::::::::. \/ ノ_/
109 :
NAME IS NULL :2005/04/14(木) 14:22:42 ID:orHzoUFL
110 :
NAME IS NULL :2005/04/15(金) 08:59:06 ID:VYQOnC31
>>106 このてのはなし、少し前にもあったけど
要するに文字列操作をしなくてすむ言語が「最適な」資格を持つと?
>>110 >>84 にとって。
Oracle なら PL/SQL か、Pro*C って選択はあり。
その昔、Oracle Power ObjectというVisual Basicもどきでoracleの 埋め込みSQLが使えるものがあったが、最近見なくなった。
>>110-112 埋め込むとなると、いかにもSQLの仕様が悪い。
select (ename,empno,deptno) from emp が許されなかったり、
where #job=clerk でよかったのに job='clerk' とした。
ほかの言語の構文規則と衝突したり、曖昧さを克服し難くした。
埋め込み型はWHENEVER xx GO TO や SQLCODE などエラー処理まわりがいかにも古めかしい。
>>99 型定義マストとなるとねー
while(result.hasNext()){
Map personData = (Map)result.next();
Integer age = (Integer)personData.get("age");
..
みたいなのいるわけでしょ。なんかコードが長くなるだけで、メリットが無いと思う。
キャストがめんどくさいってんで、なんかクラスをわざわざ定義してマッピングするなんてこと
やると死ぬほど逆にさらに面倒で。それを自動化するライブラリを使うと、
さらに悲しいことに、マッピング方法を勉強したり、それで設定ファイルを書いたり、
マッピングするライブラリの仕様変更にあわせて、それを使ったソフトも更新しなきゃいけないし、
泥沼よ。
データ格納するだけなんだから、それに適した型をHashMapを使えってなもんだ。
result.each { |person|
age = person[:age]
}
これでいいじゃん
116 :
NAME IS NULL :2005/04/20(水) 10:31:48 ID:yYG4FWyS
>>113 SQL言語を遅延評価付の制約論理型言語に置き直す。
そうすれば、このスレの解も決まる。
>>1 の内部イテレータは表現上の"洗練"ということだと思う。
データベースプログラミングでより重要なことは全解の取り込みを想定しての、
動的なメモリー管理や、リスト処理のしやすさではないだろうか。
>>118 「全解の取り込み」ってのは謎だが
メモリ管理・リスト処理なんつーのは別にデータベースプログラミングに限らず超重要事項というか、
データベース処理では確かにリストの扱いが楽なほうがいい。
カーソルもやりやすいといいなあ
121 :
NAME IS NULL :2005/05/19(木) 22:55:58 ID:GAlLtBqS
>>112 OPOはDEVELOPER2000との社内抗争に負けて消えていきました。
>>122 相手が Oracle なら Pro*C 最強。
>>122 そういう、PHPに不利なルールを持ち出すと、暴れる人が出てきちゃうよ。
うがー!!!
PostgreSQL + VisualC++.NETでGUIベースのアプリを作ろうと 思っちょります。 ただ、いかんせんVisual系言語はまったくのど素人で、どなたか、 VisualC++からPostgreSQLのデータを読み書きするための サンプルプログラムなんぞあったら、あるいはここにある、ちゅうのを 教えてもらえるとありがたいです。 たぶん、ODBCを使うんだろうぐらいは考えているんですが・・・。 ちなみに当方の技術レベルは、こんなかんじです。 ●ORACLEのDBA (ORA-600などの内部エラーをサポセンとやりとりしながら対処するぐらい) ●C言語中級者の下(構造体まで。ポインタほぼ全滅) ●シェルスクリプトで作りたいものが作れる
スレ違い。 あと、ポインタもわかってない奴は中級とは言いませんので、 うぬぼれるのもいい加減にしてね。 つか、ポインタもわかってないやつが、PostgreSQLのインターフェース 使えるようになるとは思えんが。
>>127 人を罵倒するだけして、けっきょく建設的な話は全く出さないんだね。屑人間っぽい。
死んでくれ。
スレ違いなのに建設的な話が出ると思ってる方が屑。
突っ込みどころ満載だが、スレ違いなのでぐっと我慢しておこう
131 :
NAME IS NULL :2005/05/23(月) 01:50:48 ID:n0DbznC0
なぜ Perl ではだめなのか小一時間。
まあ質問スレでもないのに 質問してくるような頭の持ち主は どこにでも湧いて出る。
て言うか、ググルなりポスグレのユーザー会のページに行ってマニュアルダウンロードするなりすることもできない奴を相手にしてもしょうがないよね。
上でRuby Ruby言いながら素のDBIしか使う頭のないやつは ActiveRecordをググって調べてこい
操作性とパフォーマンスが両立しないことが多いから どちらに主眼をおくかで最適の基準が変わってくる。 あとはプラットフォームへの依存性の有無も評価が分かれるところだ。
仕事でSQLJを使わされているんだけどさぁ、最低最悪ですわ。 時々好きな人がいるからおっかないけどさぁ、あんなものどこが良いわけ?
埋め込みSQLはDBの下位APIと相性が良くて、プログラマーから見えないところで かってにいろいろやってしまう要素が少なく安定してパフォーマンスが良い プログラムが書ける。欠点は構文の仕様が古すぎる点とデバッガやIDEなどが対応 してるものがまれだという事。Oracleはなぜか以前から埋め込みSQLが好きみたい で、SQLJがjavaの規格に追加されたのもOracleのプッシュがあったからと聞いたこ とがある。真偽は確かめてないけどね。
138 :
NAME IS NULL :2005/07/03(日) 19:35:18 ID:6zLtHLps
Pro*Cに関するいいサイト教えて
最悪と言うが、何と比べて最も悪いと言ってるんだろうか? よく知らないから効率が悪いというのは言語が最悪だからとは言わんぞ。
何だかんだ言ってAccess で十分な件について
Accessは、業務フローをそのまま作るには楽だけど、 大量データを効率的に管理できるかというと、無理っぽい。 個人商店なんかだったら、まぁ行けるだろうけど。
AccessをクライアントにしてMySQLをサーバにしてもダメ?
Accessで何か操作をしたときに、どれだけ重いクエリが投げられると思ってるんだ。 VBやWebで専用クライアント作った方が身のため。
>>144 ACCESSのプロジェクトファイルを知らないのですね!( ´,_ゝ`)プッ
AccessをクライアントにしてMySQLを操作する話だろ。
MySQLの利点を何もかも台無しにするけどな。 SQLServer買わなくいいだけましか。
>>148 そんな貧乏な貴方にオススメなのがMSDE!
MSDE使ったら負けかな。
151 :
↑ :2005/08/19(金) 20:26:45 ID:???
こういうヤシに限って何も作れないw
152 :
NAME IS NULL :2005/08/19(金) 22:50:11 ID:84mADTfE
OpenZOLARってどうよ
154 :
NAME IS NULL :2005/09/13(火) 18:36:43 ID:NiyRZPlM
605 :オーバーテクナナシー:2005/06/22(水)20:08:36ID:7MAgOv1F >603 森の中では飛び道具より待ち伏せして槍で襲うほうが効率的。 飛び道具だとはずしたとき穂先の石が割れてしまいます。 この方法に切り替えることで黒曜石資源が節約できます。 そういえば、原始人さんたちは現生人類ですか? 606 :聖女◆9RaBw0NoLw:2005/06/23(木)18:24:23ID:+/a6UT8F 防具や回避手段の開発も早いほうが良いですよ。 607 :オーバーテクナナシー:2005/06/23(木)19:33:26ID:HGQMIB5O ?>605 超至近距離まで近づき、下手すれば反撃を食らう可能性のある槍の方がいいの? 資?%
155 :
テクノ :2005/09/24(土) 20:35:45 ID:tZaSDpgU
最新ウイルスください
156 :
NAME IS NULL :2005/11/10(木) 14:29:33 ID:kpYXXr2Z
もうperlにはうんざりしてるのでrubyでいい。
久しぶりに上がってきましたね。 このスレでPerlやRubyが候補に挙がることは、 データベース検索とWebが結びついていることが 多くなった証拠と考えて良いのでしょうか。 ところで、COBOLやFORTANからRubyを経由して データベースにアクセスに行くと言うような ことは簡単にできるのでしょうか。 ここの部分を担えないと言語仕様がデータベース 向きでも、最適な言語とは言い難いように 思います。
158 :
NAME IS NULL :2005/11/11(金) 14:30:02 ID:ne/6/gfo
webならjavaベースのwebアプリケーションソフト使った方がラク。 COBOLやFORTRANから直接DBアクセスできるように下ほうがいいでしょ。rubyを経由する方が面倒。
文字の扱いとメンテナンス性考えたらやっぱperlじゃね?
160 :
NAME IS NULL :2005/11/12(土) 03:03:12 ID:wVe/r1jF
自分のソースを自分でメンテするならperlでも問題ないけど、人のperlのソースはメンテキツいよ。 文字の扱いはjcode想定? 自前で便利なように拡張してればあんまり言語の差はない。
161 :
NAME IS NULL :2005/11/12(土) 03:22:38 ID:E2XFX19s
C++最強
言語の作りからいったらPrologかな
163 :
NAME IS NULL :2005/11/12(土) 11:06:22 ID:wVe/r1jF
DBIで抽象化ってアイデアはいいけど、結局は裏で動いてるのがMySQLなのかOracleなのかで大きくパフォーマンスが変わって仕舞う罠。 それぞれのDBのAPIを直接覚えなくて済む程度の利点?
ひとつには抽象化。 もうひとつが、SQLで表現しにくい部分の処理。 ハンドリングのよい言語に担わせる。 そういう意味ではRubyなんて洒落てる。
>>162 現在のISO標準仕様でいじくってもだめ。
まったく別構文でデータベース用言語として、
設計し直せば有力か。
ISO標準仕様だと
?- select * into X from emp
where job=cleek,
member(A,X), ・・・ これは可。
?- select ename,empno,deptno into X from emp
where job=cleek,
member([A,B,C],X),・・・ これは不可。
?- select (ename,empno,deptno) into X from emp
where job=cleek,
member([A,B,C],X),・・・ こうすれば可。
要するにカンマの使い方を考え直さないといけない。
連言を","ではなく∧で表せば本格的だが、キー入力が大変。
clerkと'clerk'の差異も判別できない。
166 :
NAME IS NULL :2005/11/14(月) 12:05:03 ID:8Wz12F+2
どうも決定打に成るのは無いので、自分で使いやすいクラスをRubyで作った方が速いと言う結論に達した。 金とるなら、WebLogicでも使って儲けた方がいいし(w
167 :
NAME IS NULL :2005/12/06(火) 13:52:52 ID:lvj5AnH/
C#のLINQはどう?
mdb相手にDelphi使ってる俺が最漢な件
問い合わせ処理と一般的なロジックを同じ平文で記述できるdBASE言語が最強。
ああそうですか
最近はVC++からsqlite3を使ってる。 とりあえずヘルパークラス書いて、使う分にはこんなかんじ。 まあなんだ、C++でもPerlでも記述そのものに大きな差があるとは思えないな。 文字列加工もasprintfで十分だし、正規表現を使いたいならpcreを入れれば済む話だ。 でもDBIみたいなのが普及してないのは確かに面倒かもしれん。 DB_Connection conn; if( ! conn.open("foo.db") || ! conn.setCryptKey(password) ){ printf("error=%s\n",conn.getError()); }else{ DB_Query q; if( conn.query(q ,"select * from t1 where hoge=? and name=?" ,"LT",(__int64)hoge,name /* 可変引数でバインドパラメータを設定する */ )){ while( q.getNextLine() ){ int cols=q.getColCount(); for(int i=0;i<cols;++i){ DB_Column c = q[i]; printf("col[%d]=%s\n",i,(const char*)c); } } } if( q.hasError() ) printf("error=%s\n",q.getError()); } if( ! conn.close() ){ printf("error=%s\n",conn.getError()); }
部下に日本語で指示 これがまさしく最強最適(たまにこけるが、、、)
>>173 ここのスレタイをよく確認するんだ。
"データベースプログラミングに" 最適な言語は何か なので、
"データベースプログラミング言語に" ではない。
従って、口頭で指示して目的が達せられれば、それにこした事はない。
空気よめ
空気を読むための言語を教えてくれw
プログラムを発注する作業はプログラミングとは言わん。あほか。
おまいら、プログラマはストレスたまってるんだなw
部下に仕事を発注するとは言わん。あほか。
でも自分で抱え込んで組んでたら時間がいくら有っても足りないから、うまくforkしまくって、頻繁にプロセス通信して指示して修正して進めた方が負荷は下げられるし、30超えても生き残れる。
人を使うのはPGには無理だと思う。 文句一つ言わず動いてくれるPCさえ使いこなせないのに人を使うなんて無理。 部下もうまく動かないことも有るので、同じ仕事を別の部下に指示してRAC構成で使ってるよ。 部下が風邪引いて病欠でも、出社している部下が問題なく処理してくれる。
183 :
dbasefun :2006/12/21(木) 22:12:51 ID:jkfblNzY
やっぱ、dbase! 復活してほしい!
>>183 dbXLもFoxProもあるんだが?
個人的にはなにをいまさらって気がする。
185 :
dbasefun :2006/12/22(金) 23:33:19 ID:t4nDgAf6
頭の中はこれしか出来ないのだから、、、、。
187 :
dbasefun :2006/12/23(土) 08:56:41 ID:UqzZREnV
ありがとうございます。 やはり使うならFox proでしょうか? 仕事で他のみんなAccessでやってますが、いちいち邪魔くさいので、 我輩は未だにV_dbaseの最終版v7.1でせこせこやってます。 最後はexcelでデータを出すので、何使ってもいいのですが、なにせ 終わってから5年以上、、、、。まだ使えると思うのですが。
>>187 > やはり使うならFox proでしょうか?
だから、あなたが英語の技術文書くらい読めるぞってなら、迷わずFox proだと思う。
英語のMLに入って質問できるくらいなら、世界中にお友達はいっぱいいる。
情報に不足はないはず。
英語が苦手ならdbXL。
昔の勢いは無いみたいだけど、サザンパシフィックの製品は悪くない。(少なくとも昔は)
別にシステム開発しているわけじゃないんでしょう?
だったら、桐も検討をお勧めする。
ちょっとしたものをちょこちょこと書くならdBaseよりはるかに簡単だし、
エクセルとの親和性も悪くない。
漢字でプログラムを書くのが最初は違和感があるかもしれないけれど、
エクセルのマクロのように操作手順を覚えこませて、
そのままプログラムの一部とするなんてことが出来てしまう。
お気楽さは最高。
体験版がダウンロードできるから試してみたら?
>>165 Prologっていうのは本当に、select * from empwhere job=clearkなどという構文が許されるのですか?信じられない
190 :
dbasefun :2006/12/26(火) 22:40:50 ID:ftrlN1mn
>>188 助言ありがとうございます。
かの昔、DOS時代に桐v3は少しかじりました。そいで、dbaseに移り、DBXLも
QuickSilverを駆使して、プログラムしてました。その後、V_dbaseで書き上げたのですが、
日本で終わって、我輩のプログラミングも終了。
今は分析ツールとして使っている次第です。
サザンのARAGOも初期は触っていましたが、今は、、、、です。
一度、桐を体験してみます。FOXproの体験版はないのでしょうか?
191 :
NAME IS NULL :2006/12/27(水) 08:16:50 ID:8+hxXmHm
ACCESSだろ
>>190 > かの昔、DOS時代に桐v3は少しかじりました。そいで、dbaseに移り、DBXLも
> QuickSilverを駆使して、プログラムしてました。その後、V_dbaseで書き上げたのですが、
かの昔のさらに昔、CP/Mの時代にdBASEIIを始め、Basicをはるかにしのぐ生産性に感動。
その後、QuickSilverまでは良かった。Windows時代になって、dBASEはもちろんのこと
他のデータベースもさっぱり出てこない。やっと出てきたAccess1.0。なんじゃこりゃ?
と思いつつも他に変わるものも無し、しかたなく使い続けて現在に至る。
その他、桐、dBMAGICなどもかなり使いました。
dBASEの良さを知りつつも、あまり戻る気がしないのは、やっぱりSQLの存在が大きい。
大雑把に言ってしまうと、VBAでSQL動かせば大半の処理は済んでしまう。
dBASEのように基本的に1レコードずつ処理するのとはスピードがぜんぜん違う。
入力はフォーム、出力はレポート、途中計算はVBAでSQL文を実行させて処理とすると決めると、
Accessも割と使いやすい。Accessが難しいのは機能が多すぎてしかもダブっていること。
使わないものは思い切って無いものとして割り切ると習得は早いと思う。
> 一度、桐を体験してみます。FOXproの体験版はないのでしょうか?
バージョンアップの時期にはたいてい出すようですけど、今はないみたいですね。
193 :
dbasefun :2006/12/27(水) 21:50:22 ID:ydVUbDdK
>dBASEの良さを知りつつも、あまり戻る気がしないのは、やっぱりSQLの存在が大きい。 ごもっとも!確かにSQLを埋め込んですると、早い早い。(まわりは dbaseで固めてますけど、、、。) >使わないものは思い切って無いものとして割り切ると習得は早いと思う。 未練がましくやっている俺って、、、、。 色々とご助言ありがとうございました。
194 :
cavo :2006/12/28(木) 05:42:01 ID:???
かなりマイナーでありながら、強烈なdynamic binding機能を有する処理系
Visual Objectsというのもあります。Xbase系の言語+オブジェクト指向の
拡張がなされ、1994年に登場。v1の時にダブルバイトサポートを組み込み、
v2の時に言語の識別子のダブルバイトサポートを組み込んでいます。
現行バージョンはよく知らないけど、Xbase系の生き残りです。
ttp://www.cavo.com/ 体験版は、
tp://grafxsoft.com/VO_25_Trial_Version/VO_25_Trial.zip
ラムダ式に似たCodeblockという機能を持っていたり、
オブジェクトの配列名に対してメソッド実行すると全要素に呼び出しがかかるとか
スーパークラスに存在しないメソッドを勝手に定義できるとか
かなり変わり者の言語です。
日本では1997年に開発元の日本法人がサポート終了・販売終了にしたので、
成長過程を断ち切られた形になりました。
・・・
メモリリソースが潤沢な現在のコンピュータ環境の場合、
DBFの処理もかなり高速に実行できると思います。
全レコードをいったん読んでしまってメモリ上にキャッシュしてしまえば、
単純な集計処理ならあっという間に終わるでしょう。
クライアントPCのパワーを使うなら、Xbaseの処理系を併用するのも意味が
あるので、RDBMSだけに頼らなくてもいい面だってあると思います。
FoxProの海外事例なんかがそうですが、SQL ServerとFoxProデータベースの
併用によりシステムを構築しているものがあります。
Xbaseに未練があってもいいかも。
別に、 SQL鯖+エクセル SQL鯖+アクセス でも割と使えますが?
196 :
NAME IS NULL :2007/02/12(月) 02:34:09 ID:bEdYgEdP
ジジイはawk 若者はRubyかPython 汚ねぇコードでも気にならない奇人はPerl プロ根性のないやつはVB
>>165 何故PrologにSQLなんか使う必要があるの?
爺さんはコボル。その見習いの若いのもコボル。 あいつらの頭は進化が止まってる化石。インターネット対応なんて考えが及ばないし。 昔から遣ってる香具師は、ProCとか。最近始めた香具師は、JavaとかPHP。
>>197 RDBとのインターフェイスがSQLである以上、使える方が便利です。
それより データベース言語 = Prolog なのだから
>>1 はPrologを否定することからこのスレを始めるべきでした。
プログラムの中でSQL組み立てるのは良くないといつも思ってた。 ストアドプロシージャ使わせてくれないからそうしてたけど。 組みあがったSQL検証するためにデバッグ出力しないといけなかったり。 SQLは集合を扱うことに特化した非手続き型言語とみなせば業務ロジックの殆どはSQLだけで実装できる。 苦手なのはI/O。表現力は貧弱。 だからストアドさえ呼べれば、アウトプットの編集に最適な言語が最適。 WEBならPHP?でもPHPコードが増えるとHTMLの原型留めなくなるしなー 帳票はCOBOL?カンマ編集とか必要になるとスクリプト言語で書きたくなる…
すんません。C++使ってます。 プロジェクトはパッケージソフトなんで・・・
>>200 SQL ML Prolog がデータベースを論じるときの基本言語と
昔から決まっている。ML Prolog の限界を語り尽くした後に
DBMSとの繋ぎ言語を対象とするべきとわたしも思う。
204 :
NAME IS NULL :2007/05/02(水) 12:01:02 ID:N5GEn17E
昔から…ねぇ。 DB特化言語って、命令が色々そろってて便利だけど、何かしら不得手部分が出てくると、そこを何とかするのにえらい苦労させられた思いが強い。 Cでコツコツが、結局は一番な気がする…
>>204 ちょっと関係ないかもしれないけど、
WikipediaのPL/SQLを読んでみて、OracleのOCIに
関する言及がまったくないのに驚いた。なにが違うかは
大事なところだと思うが。
206 :
NAME IS NULL :2007/05/04(金) 02:16:47 ID:5ZtoK12v
じゃおまえが追記しとけよ ウィキはそーゆーもんだ
COBOLだな。 可読性高いしメンテも楽。
いちいちカーソルのオープン/クローズ書かなくて良くて、 SQLの穴埋めするのに何バイト目とかカウントしなくて済むRubyが楽だお。
>>208 人間、楽をするとろくなことがないよ。
目先の労力のことではなく、
人間性の形成の話だけどな。
苦労を厭わず飛び込んでいく香具師のみが
人として幸せになれる。
>>209 私も昔はそのように思っていましたが、
ただ自分の仕事が増えただけで、幸せにはなれませんでした。
常に楽が出来るように考えたほうが、人として幸せになれる。
怠惰 短気 傲慢 がプログラマーの三大美徳。 楽しようとしない香具師は向いてないだろ。この仕事。
>>210 何言ってんの。
自分の仕事が増えるってことは
他人より信頼されて任されてるってことでしょ。
プロとしてこれほど名誉なことはないじゃない。
仕事なんて、気の持ちよう一つで
天国にも地獄にもなるよ。
>>211 楽しようとして苦労するんだけどな (w
214 :
NAME IS NULL :2007/05/15(火) 02:22:38 ID:F1jZCMe2
楽しようとして苦労するのは良く有る事。まあ、良い事だろう。 楽ばかりして、コードを書く量が減るのはダメでしょ。
なんで? やりたいことができるなら、コードなんか少ない方がいいと思うぞ。 (スパゲッティになるとか、perl の呪文みたいな無理矢理圧縮は別にして。)
PrologによるSQLまがい。所詮はまがい・・・ 昨日入力数(_部署,_入力数) :- 部署(_部署), 昨日(_昨日), select count(*) into [[_入力数]] from 総勘定元帳 where 部署=_部署 and 処理日=_昨日. 部署(本社). 部署(関西支社). %%% 実行例 %%% ?- 昨日入力数(A,B). A = 本社, B = 37.0; A = 関西支社, B = 8.0; no ?-
昨日入力数(_部署,_入力数) :- 部署(_部署),昨日(_昨日), { '総勘定元帳の部署が%t、処理日が%tのデータ数は',[_部署,_昨日],[[_入力数]] }. 部署(本社). 部署(関西支店). %%% 実行例 %%% ?- 昨日入力数(A,B). A = 本社, B = 37.0; A = 関西支社, B = 8.0; no ?- というのもある。表記法の事例として見てください。 { }のなかの第一引数を解析するのだがこの部分はあまり 難しくはない。木構造を作れたら、対応するselect文の パターンを引き出す。ただし、このライブラリは最近手を 付けたばかりで未完成です。
関西支店でなくて関西支社ねww.. Prologは(中)小企業向きで あることを暗示したいのですね。
やっぱりCが無難かな。 DB以外の要求機能のほうが重要だったりするし。
javaで書くよ。 どうせ、networkとかIOが足引っ張るし。 なにより、スレッドの同期とか楽なんだもん。 C+pthreadよりは間違いなく楽。 java.util.concurrent使えるなら、もっといい。
>>219 DBMSを書くためということですか?
それとも
DBMSの中のアプリ(例えばSQL+)を書くためということですか?
222 :
NAME IS NULL :2007/06/02(土) 23:09:17 ID:mKAfVYYc
といあえずJDBC使うと後でDBMSの移行が楽になると思うぞ。 ホント Pro*Cからecpgへの移行は地獄だぜ! フゥハハハーハァー
わざと移行させたくないし、ソースも提供したくないから、ProCで作って納品している。 プレゼンで見せる時はphpだけどな(w jdbcも結局は独自発行コマンドを駆使するから、簡単にはDBは変えられない。
224 :
NAME IS NULL :2007/06/07(木) 17:36:31 ID:7DvaFJlS
一番ひ効率なのがdnaである事は間違いない
コードかくの面倒だから GUIで画面構成とかプロパティがんがん決めれて、 RowSourceにSQLつっこめばレコード返してくれる ACCESS+SQL Serverが一番楽な気がするのですが、 これより楽なのありますか?
中小企業の商品在庫管理と、大規模なシステムと Webサービスでは求められる物も答えも違うだろ。 どの場合においてもRubyじゃ無いことだけは確かだが。
Windowsなら、IronRuby、IronPythonが面白いと思う。
>>227 ADO.NETつかうなら、どれもあんまり変わらない気がする。
229 :
NAME IS NULL :2007/06/15(金) 23:21:32 ID:9UrOiEEK
230 :
NAME IS NULL :2007/06/18(月) 15:27:52 ID:vKWoTA2E
DBアプリならDelphi最強。
たしかにDelphiは良かったな。過去形だけど・・・
Windows専用の言語はこの板では除外だろう。
LINQもあるし、べつにいんじゃね?
236 :
sage :2008/04/05(土) 16:56:10 ID:NC6ucPwa
rubyってコマンドラインで使えるんだっけ? バッチ処理とかそこだけperlとかで書くのかな。 Javaいいけど、サーブレットにすると更新するたびに再起動とかサービス止まるじゃん。 大手ポータルやSNSが採用してる perlかPHPじゃねーの 個人的にはCで良いよ。 パフォーマンスで劣ることはないし 出来ないことはないし スクリプトだなんだと言うならobjectCにしる。 でもやっぱり文字列処理とメンテナンス性とったら PHPかな。
>>237 なんすかその人工無能が書いたような文は
240 :
NAME IS NULL :2008/12/11(木) 02:41:19 ID:bbOL0wrd
マジレスすると もう4th Dimensionしかねぇな。 他のDBじゃ目が回っちまうぜ
それ最悪の選択だろ・・・
もう COBOL2.0 でいいよ。
客に刺されたければどんど
247 :
NAME IS NULL :2009/02/06(金) 16:26:00 ID:2XVwr4YK
ActiveRecordは後からデータベースの種類を切り替えられるけど、 ADOはどうなんですか?Connectorだけ切り替えればいけるのかな?
このスレ生存していたか。既出かもしれないけど、 Prologをオンメモリデータベースとして強化すれば、 それだけでいいんじゃないの。
俺はジジイだからbash・awk・sed・grepの組み合わせ。 perlやpythonも齧ったんだが、馴染めなくてな。
250 :
NAME IS NULL :2009/04/06(月) 19:31:33 ID:Vb3wrAJR
ピッチピーとオラクルでよいレベルからはいあがれません
>>248 成分分解法によるデータ管理とPrologを結合したら面白そうだね。XMLやExcelじゃ、ちょっとね。
252 :
NAME IS NULL :2009/04/11(土) 00:20:09 ID:VuYM0hGF
PowerBuilderのDataWindowがすごく使いやすい。 10年以上PowerBuilder使い続けてるよ。
Access, Delphi以上に楽なツールなんてあるのか
最近 C# ちょっと触る機械があったんだが、 IDE も賢くなってるし、膨大なライブラリが あるので結構楽だったよ。 ただ現状ではまだ配布が面倒なので自分用の ツールにしか使ってないけど。
ggrks
257 :
NAME IS NULL :2009/04/12(日) 17:08:50 ID:tK2NvMZ3
C#は便利だな 確かに
真漢はメモ帳とVBSでCreateObject
俺も最近は C#(.NET) だな。 たぶんこう使うんだろう、 でそのまま使えて驚きですわ。
>>252 うわぁぁぁ、それって今は亡きボーランドのDB専用プログラミングパッケージだったけ?
大昔にパラドックスっていうRDB買ったせいか、チラシ送ってきたっけ。
263 :
NAME IS NULL :2009/09/25(金) 08:07:54 ID:PFwYqE6g
あご
264 :
NAME IS NULL :2009/12/17(木) 13:23:20 ID:FaTVKM52
だれも知らないだろうがunifaceだよ。 こいつの生産性はメチャクチャ高い。 ただし、価格がこれまたメチャクチャ高い。
インターネット使えよ
>>266 なぜか日本ではSYBASEで売ってないw
いまだにストアドプロシージャが銀の弾だと主張してるアホ発見 生島勘富とかいう奴
俺がいままでDBアプリを作ったことがある環境は ・VB6+ODBC ・C#+SQLite.net ・PHP+Pear::DB ・CakePHP この中じゃCakePHPが圧倒的に楽だったよ。
>>1 Prolog
?- foo(id:X,data1:'長野県上水内郡信濃町',data2:Y).
X = '023449',
Y = '大字富濃2306'
yes
?-
?- mysql(Mysql),Mysql :: foo(id:X,data1:'長野県上水内郡信濃町',data2:Y).
X = '023449',
Y = '大字富濃2306'
yes
?-
>>271 上側の一般的なProlog照会と下側のデータベースシステムに対する照会が構文的に
まったく同一でいけるという意だと思うが、
Prologの単位節データベースの引数に id1:'023449' のような構造体(:がfunctor)を
持つことは、単一化の総コストが大きくなりすぎて、現実的(実用的)ではないのではないか。
>>271 現在のPrologの仕様では
・ 節の順序を変更することのないupdateが難しい。
・ 数十万を越えるような連続したassertが想像以上に時間がかかる。
>>271 それと、
下のPrologの副目標として、データベースシステムを参照にいく場合とは、
元々Prologの述語としてデータベースがあり、
そのコードをデータベースシステムの照会にそのまま借用したいということだろう。
この場合通常、Prologの副目標は最初にテーブルの参照があって、その後に
単一化された引数の検査という順序で書かれている。一方、このコードをSQL文字列に
変換するとなると、sql文を発行する時点で、where句の条件を知っていないと効率の
良い照会にはならない。
つまり、テーブルの参照は遅延しておいて、その後の副目標群の解析を先に進める必要が
ある。そのためには、どこまで解析すればよいのかを示す何かが必要になり、多くの場合、
ブロック構造が導入されることになる。
この時点で少なくとも
>>271 のコードそのものではなくなる。
>>274 ブロック構造で翻訳を指示したとしても、
SQL参照と無関係な副目標が存在することも多く、編集を
余儀なくされるというケースはあります。
それから現在のエジンバラ版(Dec10)のPrologではカンマが特権的な位置を占めてしまっていて、 オペレータ定義を駆使しても、 select id,data from foo というような表現できません。 select (id,data) from foo ならOKですが、これだとSQLの方で構文エラーになります。 本当にデータベースシステムと双方向に一体化するためには エジンバラ版Prologを放棄した方がよいと思います。
>>276 連接を表すオペレータを"&&"に変えてみる
?- member(_組,['A','B']) && select 学年,組,名前,性別,生年月日,住所,電話番号 from 学籍簿 where 組=_組 and substr(住所,1,3)=東京都.
これだけでよいのかな。
>>277 属性名と属性値を区別するオペレータが必要になる。
暗黙的な解釈としては、式の左項は属性名、右項は属性名でよいが、
結合の時に、共に属性名であることを明示しなくてはならない。
それから、現在の仕様では、 t1.氏名 = t2.氏名 の t1.氏名 がsyntax errorになる 処理系もありそう。本来は t1.f1 = [t1|f1] となってエラーにはならないはずだが。
>>277 それだと、組が'A'の場合しか表示されない。
やはり、最後に && fail. が必要。
データベースに最適な言語がPrologです。これでは当たり前過ぎて、 面白くない。もともと、それに特化した言語だからね。 このスレタイでも、Rubyがあがっているように、もう少し捻った 議論はないものか。
データベースを作るのに最適な言語は? ということになると、やはりCかな。
昔はデータベースアプリと言ったらdelphiと言われてなぁ。。。
284 :
NAME IS NULL :2013/02/26(火) 10:54:21.00 ID:UP8A3ZtC
楽天やアマゾンの商品リストのデータベースってどうやって取得するの?誰か教えて
285 :
NAME IS NULL :2013/03/03(日) 12:52:48.97 ID:WfMRpbfn
ブクログ amazon api 辺りでぐぐってみたら?
286 :
NAME IS NULL :2013/03/07(木) 06:06:30.39 ID:Mhg486u2
ほんとこの板過疎ってるなぁ
t
t
t
t
u