Java⇔RDBのMapping-Frameworkを語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG[Torque]
http://db.apache.org/torque/
http://homepage1.nifty.com/kingyoshi/computer/jakarta/torque.htm
[HYBERNATE]
http://hibernate.bluemars.net/1.html
[CasterJDO]
http://www.castor.org/jdo.html
http://www-6.ibm.com/jp/developerworks/java/021025/j_j-castor.html
[ObJectRelationalBridge (OJB)]
http://www.terra-intl.com/jakarta/ojb/
●コネクション・プーリング
[Jakarta Commons DBCP]
http://jakarta.apache.org/commons/dbcp/
(Jakarta Commons DBCPを使ってみよう。)
http://taka-2.com/jclass/DBCP/
(DBCP利用法 from "『カモン!Commons!』 Jakarta Commonsを使ってスキルアップ" (2002/09))
http://www.mobster.jp/wiki/index.jsp?pid=Commons#i10
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGもうちょい時間おいてから
スレたてたほうがよかったかもしれない
JDOも発表されてまだまだ浸透してない
この辺はまだ過渡期だからな
0005デフォルトの名無しさん
NGNGまだまだなんかな?
0006デフォルトの名無しさん
NGNGトルクはまだいいけど
比べる対象が無いって言うのが現状(っていうか使わないから知らんだけなんだが・・・)
使ってる人がいればいいんだが日本語Docがなさそうなので
俺にも勉強する気ない。
仕事で、いやがおうにも使わないといけない状況にならないと
読む気しないんだな英語は・・・忙しいし
0007デフォルトの名無しさん
NGNG発表してくるのか
ベンダの動きを見てみないとわからん
まあ、そう遠い日の話じゃないと思うが・・・
まあ、Torqueに限ればロギングが
Log4jっていうのがどうも気に食わない
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGLog4jで、JDK1.4 LoggingAPIにリダイレクトするアダプタ作ればエエヤン。
大して難しくも無いさ。
0010デフォルトの名無しさん
NGNGうん、がんばってみる
0011デフォルトの名無しさん
NGNGコストかかりまくりだよね。最低限コネクションプーリングするとしても、
それプラスこういったフレームワーク使うとしたら、現時点では
トータル的にどれがベストチョイスだろう?
フレームワーク内でCPやってくれるやつってあんのかな?
0012デフォルトの名無しさん
NGNGEJBはCPが当たり前でつ。
001312
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGEJB 2.0 CMPで、SQL書くのをやめられるよん。
0017デフォルトの名無しさん
NGNGでも、ちょっと情報少ないかな。jakartaのCriteriaHowToとか読んでも
情報不完全で、詳しい使い方が判らない。
今悩んでるのは、複数のテーブルをJoinしてSelectする際に
各テーブルのカラムの値を同時に取ってくる方法ってあるんですかね?
つまり、role_idとrole_nameを持つRoleというテーブルが有り、
permission_idとpermission_nameを持つPermissionというテーブルが有り、
role_idとpermission_idを外部キーとして持つRolePermissionというテーブルが有る時に
関連付けられているrole_nameとpermission_nameを同時に取得したいのですが、どうでしょ?
torqueだと無理なのかな。
0018デフォルトの名無しさん
NGNG勘コード。
Criteria crit = new Criteria();
crit.add(RolePermissionPeer.ROLE_ID,"ROLE");
List t = RolePermissionPeer.doSelect(crit);
RolePermission r = (RolePermission)t.get(0); // 一行Hitを想定ね
String roleName = r.getRole().getRoleName();
String permissionName = r.getPermission().getPermissionName();
・・・雰囲気はこんな感じか。細かいことは覚えてないからよろしく解釈しておくんなまし。
外部キーと一意制約がちゃんとschemaで定義してあれば楽なはず。
ただしこのまんまやると恐ろしくパフォーマンス悪い罠。
CriteriaのLeftとかRightとか言うメソッド(があったはず)を使うといいのかもしれん。(うろ覚えな上未検証)
あと各BasePeerにdoSelectJoinなんたらというprivateで隠されてるメソッドもあったりする。かも。
なんかいろいろ悪い夢を見たきがするなぁ・・・・。
0019デフォルトの名無しさん
NGNGBEAやIBMのEJBサーバが賢いこととを期待して。
0020デフォルトの名無しさん
NGNGレスありがと。
でも、それだとDBへの問い合わせが恐らく3回発生しますよね。
確かにパフォーマンスが悪い。
もうちょっと僕も調べてみます。
0021デフォルトの名無しさん
NGNG>あと各BasePeerにdoSelectJoinなんたらというprivateで隠されてるメソッドもあったりする。
ソース読んで実験もしてみました。該当のメソッドを使用すると
一度のSQL発行だけで複数のテーブルの値を同時に取ってこれました。
ただチュートリアルにも書いてあったとおり、1つのテーブルしかJoinできず
例えばdoSelectJoinAllのようなメソッドは存在しません。
http://www.jajakarta.org/turbine/jp/turbine/torque/tutorial.html
となると、doSelectJoinなんたらのコードを参考にしてユーザが
実装するしかなさげです。
しかしdoSelectJoinなんたらのコードを読むと、
BasePeer.doSelectで取得したListから重複してるOM Classを除去している?
様子なので、JOINするテーブルの数が多いと面倒・・。
SQLの発行回数が気にならなければ、簡単に書けるのですが。
0022lilac
NGNG掲載するにあたって必要なサーバースペースを有料レンタルしています。
お客様に快適なサーバーを提供するためにさまざまなホームページの目的に応じて、
単なるホームページスペースだけではなく、動画やゲームまたは個人放送はもちろん、
そのツールとしてCGI、PHP、SSI、SQLデータベースなどあらゆるサーバースペースを提供しております。
http://www.ebrain21.com/
[email protected]
0023デフォルトの名無しさん
NGNG下記以外ならSQLを書く必要はありません。
一般的に使用頻度の少ない演算子や関数を使用するSQL文の場合。
万が一、複雑なSQLが必要な場合オーバーライドで対応する。
Torqueは設定がめんどくさい。あんな設定が必要なら、チームで開発する場合SQLを書いた方がまし。
しかも設定する情報はDatabaseMetaDataクラスで実行時に取得できる。
EJBやるやつバカ。そのうち無くなるよ!!
0024デフォルトの名無しさん
NGNGこうばしいな
0025デフォルトの名無しさん
NGNGオープソンーヌで公開しる!
ライセソヌは、ApacheヌタイノレかBSDライセソヌで。
0026デフォルトの名無しさん
NGNGあんたのそのやり方のほうが時代遅れなワケですが。
誰がそのフレームワークの仕様を管理し、メンテするの?
誰がそのフレームワークの利用方法を教育するの?
そのコストはタダじゃない。少なくともアンタの人件費分はかかるわけで。
標準仕様なら、多分たくさんのデベロッパがリテラシを各自で抱えることになる
ので、そういうコストが格段に少ないのですよ。こういったことを考えられない、
半可通技術マンセー馬鹿が、よく俺様フレームワークを書いて悦にいってるんで
すよね。あーやだやだ。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGじゃあ、どのORマッピングツールが標準仕様となって
将来に渡っても安心して利用できるかどうか判断できるのかと問い詰めたい。
ないならないで作るのが正しい技術者の態度だと思うんだが。
そうすれば、少なくとも自分の面倒みているプロジェクトでは安心して利用できるじゃん
一知半解たあ、>>26のことじゃないの?
0030デフォルトの名無しさん
NGNG別に将来の話をしてるんじゃない。
今すでにあるものが使えて、多くの技術者に認識されているものなら、
独自仕様突っ走るよりいいんじゃないの?
ってだけなんだけど・・・・
003126
NGNGという方針で固まっている。(細かい仕様はシバラク右往左往するかも
しれんけど)
遠い将来にわたって使用できるものなど必要ない。なくなるんだから。
0032デフォルトの名無しさん
NGNG>>29でデファクトスタンダードになる候補があるのに実装するのはアフォと言いつつ
>>31では現状の実装でデファクトになるもんなんざあないとおっしゃる。
あと、ちょっと別の話になるけど、
EJBってEJBコンテナが無いと利用できないんだよ?知ってる?
0033デフォルトの名無しさん
NGNG取得したDBのlockTableメソッドを呼び出す・・であってます?
でもDBPostgres.javaとかの中身を見るとメソッドの中身が空ですが・・。
それにhttp://db.apache.org/torque/db-adapters.htmlの
Databases that only support table level locking obviously
do not require this method. Databases that support row level
locking must implement this method to avoid synchronization problems.
というのも訳わからんし。なんでテーブルロックをサポートしているDBが
lockTableメソッドを必要としないのかしらん?
もしかして別な方法でロックできたりしますか?
あとFOR UPDATE付きでSELECTしたい場合とかはどうしたらよいのだろ。
0034デフォルトの名無しさん
NGNGEJBコンテナは、今日びオプソ版もベンダ製無料実装もありますし。
0035デフォルトの名無しさん
NGNGうーむ。DBアクセスをSQLレスで手軽かつ柔軟に実現できるフレームワークとして
Torqueに期待したのですが、今の状態ではやっぱり使えないですねぇ。
EJBもEJB-QLの機能は貧弱だし、BMPにすると結局はSQLを記述する事になるしで・・。
0036デフォルトの名無しさん
NGNG暗黙の了解があるのだろうか。
0037女□
NGNGSQLに強い奴一人連れてきて
そいつに仕様叩き込んで 必要になりそうなセレクト文は全部viewにさせて
アプリからの呼び出しは 「select * from びゆ where ふがふが」 のみにする ってのが最強だと思ってたんだけど
最適化されたSQLが残って メンテするやつも勉強になるし
更新系は業務ベースで更新対象をモデル化して、モデルクラスをポコポコ作って実装してもらう
コネクションの管理(取得と返却とコミとロルバク)はモデル達の基底クラスにやらせる
更新系は長くて複雑なSQLなんて出てこないだろ(甘いか)
0038女□
NGNGSQLは手でモロに書くものだと思ってるから かなり受け付けない
オラクルしか使ったことないからこんな考えになるんだろうな
0039デフォルトの名無しさん
NGNGEJBの目標は、ストレージの形態に依存しないインターフェイスにすること。
RDBだろうがOODBだろうがebXMLだろうが、未知のより進歩的なストレージだろう
がシームレスに使えることが目標なのよ。
だからEJBは、RDBに対して最適化されたインターフェイスが提供されるわけじ
ゃないのよね。RDBから自由になるって言う発想は、想定外?
004039
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG> RDBだろうがOODBだろうがebXMLだろうが
これって、多次元DBについても言える?
実装はともかく、方針とか、目標とかの話で。
0043デフォルトの名無しさん
NGNGかなり使えないっぽいんだけど。
0044デフォルトの名無しさん
NGNG0045女□
NGNG>RDBだろうがOODBだろうがebXMLだろうが、未知のより進歩的なストレージだろう
>がシームレスに使えることが目標なのよ。
DBにあんな皮こんな皮かぶせてjavaで使えるようにするより
javaに合わせたデータベース作った方が早いと思うんだけど
なんとかを継承したクラスでstore()メソッド呼んだら
テーブルにデータが保存される(テーブルなかったら勝手に定義される)とか
そういうのはないのかね
0046デフォルトの名無しさん
NGNGDWHとかOLAPとかはOut of 眼中じゃないの?
0047デフォルトの名無しさん
NGNGEJBが目指しているのもたぶんその辺。
ObjectStore等のODBもそんな感じ。
でもどれもこれも不完全で不満だらけなのが現状。
0048デフォルトの名無しさん
NGNG今時、SQL知りません、わかりません、かけませんなんてやつ居ないでしょう。
0049デフォルトの名無しさん
NGNG0050名無しさん@Emacs
NGNGでてキソウデ怖いんですが。
0051デフォルトの名無しさん
NGNGベンダ固有の瑣末なテクが必須っぽいので手を出しかねてます。
0052デフォルトの名無しさん
NGNGTorqueやらJDOやらの中途半端なマッピングライブラリが赤子のように
感じる。売り物だけど安いし。
SQLなんか書く必要無し。RDBのスキーマ情報を自動でブッコ抜いてきて、
クラスにマッピングされたものと、アクセスに便利なメソッドを自動生成。
しかし知名度も低くツブシが効かないという罠。
シロウトにはオススメできない。
0053デフォルトの名無しさん
NGNGsqlなんてselect,insert,update,deleteくらいしかないもんな。
やりたい事がわかってれば、あとはリファレンスでも見れば
さくっとSQL文が書けるよ。
0054デフォルトの名無しさん
NGNGよりよいハードを買ってくれというものだから、
パフォーマンス云々は関係ないんだろな。
0055デフォルトの名無しさん
NGNG>シロウトにはオススメできない。
知名度が低いっていうのは、確かに致命的だよね。
永遠に自分が保守できるはずもないし。
0056デフォルトの名無しさん
NGNG結局、どんなにいいものかよりも多くの人に認知されているかが重要ってことなんだね。
だからオリジナルフレームワークが嫌われる。
0057デフォルトの名無しさん
NGNGこのテーマのスレ、待ってたよ。
0058デフォルトの名無しさん
NGNGつこうたよ。認証処理程度だけどね。
IDEとかでコード書きやすくなるのがうれしかったくらいかなぁ・・・。
どっちかっていうとOMクラスよりはデータの吸出しとか
HTMLで定義情報はいてくれたりする事のほうがうれしかった。
RDBに接続してschema.xmlを自動で作ってくれる機能があるのを
最初から知ってればもっと楽になれたんだろうけど。
AntタスクなのでEclipseあたりのIDEとうまいこと統合できるといいのだがねぇ・・。
0059デフォルトの名無しさん
NGNGこれでなんとか・・・・
「Java開発にはJavaデータベースが自然」――米ポイントベース社長
http://itpro.nikkeibp.co.jp/free/NC/NEWS/20030402/1/
0060デフォルトの名無しさん
NGNGEclipseにシェアを食われつつあるJBuilderの二の舞を踏まないことを祈るばかり。
0061デフォルトの名無しさん
NGNGむしろそのPureJavaRDBMSをただで配布して欲しい
0062デフォルトの名無しさん
NGNG開発用はただで手に入るね。
0063デフォルトの名無しさん
NGNGRDBMSである以上、セマンティックギャップは同じようにあるのだがね。
0064デフォルトの名無しさん
NGNGこういうのもあるが
http://hsqldb.sourceforge.net/
"hsqldb is a relational database engine written in Java"
だそうだ。
0066デフォルトの名無しさん
NGNG4月号に載ってます。
あと技術評論社の「Jakartaプロジェクトテッテイ攻略」にも載ってました。
ただ、少し詳しくいじりたいと思ったらJakartaのページを読むしかないのですが、
余り詳しくは書いてないので、情報収集は結構大変。
Ja-Jakartaにはチュートリアルなどの和訳が有ります。
http://www.jajakarta.org/
http://www.jajakarta.org/turbine/sharing.html
個人的には
・3つ以上のテーブルのJoinがサポートされていない
(2回以上のSQL発行が必要、Viewを使えばよいのかもしれませんが)
・DB依存の書き方は結局残る。(レコードのロックとか)
・普及していない。日本語の資料が少なくTorqueを使える技術者が少ないので将来の保守が心配。
ので、今自分が担当しているプロジェクトで使うのは止めました。
0067デフォルトの名無しさん
NGNGhttp://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
0068デフォルトの名無しさん
NGNGLZHに直リンするスクリプト死ね。
0069デフォルトの名無しさん
NGNGどっかで聞いたことあるなと思ったら
ポイントベースってSUNONE4に入ってたのを思い出した
SUNONEインスコしたときに「何だコレ?」と思いつつも
一応、インストした覚えがある
>>62のいうように開発版だとは思うが・・・
ちょっといじってみるかな
0071デフォルトの名無しさん
NGNGTorqueってpreparedStatementみたいなSQLのプリコンパイルって
できるの?どうやってやるんすか?
基本的にORB全般的にプリコンパイルはできない?
ただでさえ遅いのに、これできないとつらいなー。
0072デフォルトの名無しさん
NGNGソースを少し読んでみましたが、たぶんTorqueでは無理だと思います。
毎回Statementを作成し直してるみたいです。
0073デフォルトの名無しさん
NGNGセンキュ!
でも、もうTorque使用することになったんだよなー。。。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGたしか、PSなんとかというメソッドがあったきがする。
DocかなんかにPreparedだとコメントしてあった記憶が・・・。
といって使ったことはないので真偽不明でふ。
嘘だったらすまそ
007671
NGNGにdoPSSelectってのがあったよ。
>>74
JDBCのコーディングが簡略化できるのが最大のメリットでは?
ただそれだけと言えば、それだけだな。
SQL書いたほうが可読性がよさそうな気もしないでもない。
あとCreate文の生成とかデータベースの作成とか付属的な機能もあるけど。
ほかに何かあります?
007772
NGNGTorqueでPreparedStatementを使っているのはBasePeerのdoPSSelectの中だけのようです。
そのメソッドの中でローカルなPreparedStatementを作成して1回だけexecuteQueryしているだけなので
複数回効率的に実行する目的ではPreparedStatement使用していないのかなと思いました。
007872
NGNG効率的に同じCriteriaを複数回実行・・とかは出来ないようです。
0079デフォルトの名無しさん
NGNGCriteria.CriterionにもappendPsToとかいうのがあるなぁ。
説明見てもそっけなくてよくわからん。
Criteriaのなかでこれよんだりしてるんだろか。
ソース見る気力ない・・・。
なんか、個人的に使った感触だとCriteriaは使いまわすもののように思えなかったなぁ。
DBに投げた前後で内容が変化したりしてなかったっけ・・・。
効率悪いことこの上ないんだけども・・・。
0080デフォルトの名無しさん
NGNGっていう一連の処理が当たり前になったしなぁ・・・
かといってこういうフレムワーク&JDOの存在は無視できないし・・・
>SQL書いたほうが可読性がよさそうな気もしないでもない。
そうなんだよな、少なくとも俺にとってはそう思う
俺の場合はデータベース接続部分を別管理にしてるから
そのほうが見やすいということもある
>あとCreate文の生成とかデータベースの作成とか付属的な機能もあるけど。
>ほかに何かあります?
ん?Create文データベース作成は通常でも出来るんじゃないの?
俺昔、MySQL用のSQLのターミナル作ったとき
URLにデータベース指定しないで単に「jdbc:***:mysql」でとめてやったら
Createも、use DataBase名やshow databasesとかもできたよん
0081デフォルトの名無しさん
NGNG76ではないけれど。
>>あとCreate文の生成とかデータベースの作成とか付属的な機能もあるけど。
>>ほかに何かあります?
>ん?Create文データベース作成は通常でも出来るんじゃないの?
Torqueの例でいくとXMLで定義した情報をベースにOMクラスをつくるんだけど
同じXMLをもとにDB構築用のSQLを自動生成してDB作りに行ってくれる。
その辺のことを言ってるのだと思われ。
逆にDBを先に構築しておいてそのDBから定義情報を引き抜いてXML生成→OMクラス生成とかね。
データの引き出しなんかもできるから場合によっては環境移行ツールとして使えたりもする。
本筋と外れたとこで便利なんでは?と。
008271
NGNG普通にJDBCでやるとして、テーブル作成だけTorque使うってのもありだと思う。
テーブル定義書からDB作成なんてツールもPOI、xpathあたりを使えば
簡単にできそう。大幅なコストダウンってわけでもないが、、、
本筋のコーディング部分のところは、今のところメリットは薄そうだね。
学習コストもかかるし、、、
>かといってこういうフレムワーク&JDOの存在は無視できないし・・・
同意。雑誌とかでも結構特集されてたりすると、つい良いもんだと
錯覚してしまうよ。この辺の見極めも大事かな。
0083デフォルトの名無しさん
NGNG> >SQL書いたほうが可読性がよさそうな気もしないでもない。
> そうなんだよな、少なくとも俺にとってはそう思う
> 俺の場合はデータベース接続部分を別管理にしてるから
> そのほうが見やすいということもある
そうかなぁ?
ひとつのコード中に二つの言語があるということのほうが気持ち悪いと思うけど。
なるべくそういうことは可視性から言っても避けるべきだと思う。
同じようにHTMLの中にJavaのコードが入ることを避けるために、
TaglibやVelocityなんかのTemplateがあるわけだし。
0084デフォルトの名無しさん
NGNGSQLマスターな奴がいればいいんだよな。
速度の問題が出てくると、結局SQL一発でやった方が
ダントツに速い場合がでてくるし。
0085デフォルトの名無しさん
NGNG言語内言語だから正規表現みたいなもんじゃない?
正規表現をJavaのメソッドで構成したら、それは可読性が
高いと言えるんだろうか?
0086デフォルトの名無しさん
NGNGうちの職場では、ExcelにDBの定義書を書いて
スクリプト一発でsqlに変換してる。
0087デフォルトの名無しさん
NGNGオレはスクリプトじゃなくて、た
VBAでさらにテーブル生成までを作った。
(外部キーやPKも)
だけどERwinがあればERwinが一番いい。
0088デフォルトの名無しさん
NGNG>普通にJDBCでやるとして、テーブル作成だけTorque使うってのもありだと思う。
うちは結局これで、ほとんどOMクラスは使ってなくて、
直接SQLを書いてTorque経由で投げてる感じ。
ConnectionPoolの管理とか考えてないのでそれだけでも楽っちゃ楽。
>>83
最近思うんだけどタダ単にマークアップ付き言語が読みづらいだけなんじゃなかろか。
慣れなのかもしれないけど・・・。
少なくとも一般的なプログラミング言語の書式と混在し得ないような気がする。
Javaの中のSQLはうざいけど、流れをそのまま読めるし。
>>86
>>87
俺、自マシンからは直接通信できないネットワーク(要するに客先なんだけど)に
開発環境を構築しなくちゃならないことがあった。
Telnet等でいくつかホストを経由しないと接続できない。
まぁレアケースなんだろうけどTorqueのおかげでローカル環境で作ったものを
むこうで再構築するのが割と楽になったよ。
0089デフォルトの名無しさん
NGNGまあ、問題なのはソコではないとは思うのだが・・
0090デフォルトの名無しさん
NGNG地獄を見た事の有る奴、結構いるんじゃない?
0091デフォルトの名無しさん
NGNGそんな恐ろしいんですか?
全然知らんけどっていうかポーティング自体知らんゴメン
0092デフォルトの名無しさん
NGNGだけど実行してみないとケアレスみすすら分からない。
0093デフォルトの名無しさん
NGNGプログラム書く前にSQL実行しない?
0094デフォルトの名無しさん
NGNG簡単な修正なら実行しない
0095デフォルトの名無しさん
NGNGSQLを発行し、DBへのI/Oだから、SQL生成
プログラムとなっても仕方ないのでは?
もしユーザ(オペレータ)がSQLを知っていたら
(熟知していたら)APなんて必要ない訳だし。
DBシステムなら、必ずしも一つの言語から
アクセスするということでもないし、
(パッケージで単にDBをストレージとして
見るなら別だけど)
言語別にDBアクセスの方法を覚えるの
もなんだかなぁとも思える。
WEBにしてもそう、最終的にはHTML
(やJavascript)で表現するから、
HTML生成がゴールとなってもしょうがない。
0096デフォルトの名無しさん
NGNGおれは、修正云々じゃなくて、
>(プログラムを作って)実行してみないとケアレスみすすら分からない。
ということに答えたんだけど...
もし、(最初にSQL実行)してないのなら
まず目的のSQLを書いて実行してから
プログラム製造することを勧めるよ。
そうすれば、ミスもわかるよ。
0097デフォルトの名無しさん
NGNGそうなんだけど、>>92の言うように動的SQLや動的HTMLはコンパイル時点では
ケアレスミスさえ発見できないという問題があるから、そういった部分をTorqueや
JSP+タグライブラリなどで局所的、静的に正しさを保証できる範囲に押し込めて
おいて、あとの全てはJava言語の世界で解決しようという思想なんじゃないかな?
0098デフォルトの名無しさん
NGNG>コンパイル時点では
>ケアレスミスさえ発見できない
なつかしい...PowerBuilderという
開発ツールは、埋め込みSQLでも
コンパイル時点でエラーが分かった。
だけど、そういう仕様だと、
コンパイル時点でDBに接続しておかないと
SQLエラーか分からないし(そうだよね)、
接続してないと、ワーニング出まくった
けど、それでもいい?
確かにSQL解析は便利だったけど、
プログラム書くときはそっとしておいて
欲しいと思ったのは贅沢だったかな。
0099デフォルトの名無しさん
NGNGTorqueやWebObjectsはコンパイル時にいちいちSQLを投げたりしないよ。スキーマ定義
(と各DBMS固有のSQL方言についての知識)さえ持っていれば「エラーにならないSQL」を
生成することは可能だし、そうしょっちゅうスキーマが変更されるわけじゃないから、常に
最新の情報をリアルタイムで取得する必要はないと思うけど。
まぁフリーフォーマットの埋め込みSQLの正しさをチェックするには、実際にDBMSに
投げるか、同等の構文解析エンジンを持つしかないんだろうけど。
0100デフォルトの名無しさん
NGNGあるベンダのDBからほかのベンダのDBに移行するような場合の問題だよね
たしかにちょっと特殊なことをやろうとするとすぐ面倒なことになりそうだ
0101デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています