【M言語】キャシエ・CACHE【MUMPS】
医療、金融、物流、製造でいまだに活躍! 古参も新参者も、さー語ってくらっしゃい。 >>150 $Order使ってるからSQL使ってないのか。 Cache関連サイトって、SQLとかクラス使う方法載せてるところが無いよね。 MUMPS懐かしい 30年前に出会いました。 そのころは、DECのPDP11/40というマシンでプログラミングしていました。 PCはIBM5550のPC−DOSがスタンドアロンで普及しはじめた頃です。 会社にはメインフレームに接続した端末ばかりで、なかなか自由に使えなかった時代で、 コーディング用紙をキーパンチャーに渡しパンチをお願いしていました。 もちろん言語はCOBOLやFORTRAN、PL1でした。 MANPSに出会って、私は目が覚めました。 今までのプログラミングはなんだったんだろう。それぐらい感動しました。 クライアント/サーバで端末が10台くらいで、各端末はLANで接続されていました。 エディターもラインエディターでした。 MUMPSは本当に簡単で習得しやすい言語です。 勉強しながら住所録の入力・修正・削除・問い合わせの画面とプリント出力の プログラムを他の仕事もしながら1週間程度でプログラミングできました。 ファイル構造(データベース)もwindowsのツリー構造そのままですね。 レコードはフルパスのような感じですし。 MAMPSの良さはデータの形式やレコードの定義を考えずに記述できるし 後から自由にレコードの構造を変更でき、他のプログラムにもあまり影響を与えないのです。 本当に少ないステップでプログラミングできるので驚きでした。 MUMPSを調べていてここにたどり着きましたが、 CACHEとうい言語に生まれ変わっていると知り、本当に嬉しい。 私が今何ぜMUMPSに関心を持っているかと云いますと。 ライセンス料金です。 windows-OS・office・VB・2003SQLサーバ・CAL・oraclとライセンス料は非常に 頭の痛い問題です。 CACHEにするとサーバをLinuxにして端末をwindowsにしても CACHEとwindowsのライセンス料だけで済むとしたら、 安いのではないかと考えたのです。 openOfficeも在るし、kingOfficeも在るので。 それにwindowsとSQL・EXCEL・ACCESS・VBはバージョンアップの度に各端末の 環境(バージョン)が違うため不具合続出なのです。 windowsをこの際見切りを付けたいのです。 http://dokan-dev.net/about/ こいつを使ってcacheのネームスペースをWindowsのファイルシステム上にマウントできればいいんだけどなぁ。 さらにMercurialなんかを組み合わせて自動的にバージョン管理までするような仕組みもできそう。 誰か作ってみませんか(他力本願・・・) スタジオからソースを自動エクスポートして、svnで管理する方法ってない? svnってsource safeみたいなやつのことだよね? cacheにエクスポートするクラスメソッドが用意されてるから VBSとかで簡単なバッチ作ればできるんじゃね? プログラマじゃないんだが 仕事(医療保険者)で、これから導入するシステムがこれで組まれているんだそうだ 上読むと医療関係で実績があるらしいがレセプト処理なんかが得意ってことなのか 別に得意ってわけでもない。 覚えることが少ないからプログラマじゃなくても何とかなるってだけ。 将来的にカスタマイズする予定があるならMUMPSやめとけ。 技術者の確保ができないから開発会社が固定されちまう。 x86_64でGT.Mをビルドしようとしてるのだけど嵌ってます。 $ gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux buildtypes=dbg gtm_ver=`pwd` ~/gtm/gtmsrc_5.3.0001A ~/gtm/gtmsrc_5.3.0001A/dbg/obj ~/gtm/gtmsrc_5.3.0001A/dbg/obj gt_cc_option_I: Undefined variable. gmake: *** [xfer_build] Error 1 バイナリでインストールしたもの(32bit)を gtm_ver に指定すると gmake: *** No rule to make target `pro_all', needed by `all'. Stop. となります。 centos5.2 x86_64, gmake 3.81, tcsh, icu3.6 なので環境的には問題なさそうなのですが。。。 .tcshrcには32bitバイナリ配布物の gtmcshrc 等をコピペです。 setenv gtm_curpro /usr/local/gtm setenv OBJECT_MODE 64 set path = (/usr/local/bin $path) set path = ($path . ~/bin) setenv gtm_dist '/usr/local/gtm' setenv gtmgbldir 'mumps.gld' if ($?gtm_chset) then if (($gtm_chset == "UTF-8") && (-e $gtm_dist/utf8)) then setenv gtm_dist $gtm_dist/utf8 endif endif setenv gtmroutines ". $gtm_dist" alias gtm '$gtm_dist/mumps -direct' alias mupip '$gtm_dist/mupip' alias lke '$gtm_dist/lke' alias gde '$gtm_dist/mumps -r ^GDE' alias dse '$gtm_dist/dse' set path = ($path $gtm_dist) なにか解決の糸口が分かる方、アドバイスを。。。 >>162 レスありがとう ただ既に成果物は納入されているので 後は導入支援を得て導入という段階になってる 開発はデ○タ…何か身元が割れそうだw SQL環境下で動作テストをしていたものをcashe環境下で動作テストを行うのですが SQL文のズレが分かりません。 SQLのJOIN関数は使わなくてもいいっぽいらしいのですが、どう作れば良いんですかね。 casheの概念や資料なんぞ貰わえず、とり合えず修正してくれと渡されたのですが。 casheについて講習してるような所があればお教えして頂けると幸いです。 cache講習はInterSystemsがやってる。一日2万円。講習によって日数が変わる。 SQLはSQL-92の殆どが通じる。 Joinを使わなくて良いパターンは、Propertyが他クラスの場合、->構文で参照できる。 別にJoinを使っても結果は同じだから、だまって知ってるSQLを書けばいいよ。 まずは、システム管理ポータルからSQLを打ち込んでみたら? あと、ドキュメントをみれば一応SQL関連は難しくない。MUMPS初めての人間がcacheを理解するのに あのドキュメントは辛すぎるけど。 まず、Cache SQL入門のあたりを読んでみたらいい。 これが最初に勉強中のプログラム言語だけどInValidDT()の使い方わかんねえ てかいちいち従属で変数書いて検証しないとクラス定義に合致してるかわからないって面倒すぎないか これだと普通にスプリクトに処理投げてるのと変わらない気がする そのプロパティ設定したクラスでメソッド書いたら自動で適用されるものと思ってたのにプログラムってこんなものなのか InValidDTってなんだっけ?ドキュメントに引っかからないんだけど。 ちょっとした用途だとMySQLとかで十分だしな。でも大規模になるとEliteになって簡単に億超える罠。 みんなどれくらいの規模に使ってる?参考に教えて欲しい。 あんまり具体的だとInterSystemsにばれるかもしれないけど。 ごめんInじゃなくてIsだった IsValidDT 自分は1000人分弱、予想数百MB程度のデータを扱うつもり このソフトには役不足だろうけど階層型で完成度高くてフリーで手に入るのといったらこれが一番だし でも本にしてもネットにしても情報が少なくてほんと困る 暗中模索きつすぎ >>172 進捗はさすがに公開されてないんじゃ・・・ 目次見た。 サーバーサイドプログラミング講習+ZEN講習くらいの内容か cacheで作った物って他に転用効かないから、正直あまり使いたくないな 統合環境も使いにくいし古臭い オープン・ソース M(Mumps) GT.M ttp://www.fidelityinfoservices.com/FNFIS/Markets/NonfinancialIndustries/Healthcare/gtm/ ttp://sourceforge.net/projects/fis-gtm/ Mumps II ttp://www.cs.uni.edu/~okane/mumps.html その他 ttp://mumps.sourceforge.net/ >>180 ISJのページ見てもどんな製品だかよくわからん。 ensembleはほら、BizTalkとかWebSphere MQとかと一緒でEAIの一種じゃん。 BPELのサブセットもあるし。 アンサンブルやディープシーのグラフ(SVG)で日本語出せないのはなんとかならんのか。 Flashにすればいいのに。 なんともならんよ。 大体アドビがすでにIEのSVGプラグイン放棄してるから今後もう使える望みはない。 ISもいつまでマイクロソフトのせいにして逃げるつもりかね。 しまいにゃ基幹で狐使えとか言うし狂ってるとしか思えない。 大体アンサンブルだってマトモに使えるアダプタがODBCのみとはどういう事? 使えない機能満載にもかかわらずあのトンデモ価格での提供は、本気で日本で商売する気あるとはとても思えない。 狐って火狐?IEでしか動きませんって聞いた気が。別の狐の話かな。 1億するWebMethodsよりは安いけど、大して安くはないね>Ens ところでさ、>>174 の本にCacheSQLも載ってるんだけど、DDLについて一カ所だけ触れて「後で説明」って 書いてあるんだけど、説明が見つからないんだよね。 俺の見落としかな? cacheでDDL書く奴もあまりいないんだろうけど。 狐はやサファリなんかは標準でSVG対応してるからなあ。 しかし、ディープシーのインターフェースがIEしか対応していないのも事実。実際狐だとログインが出来ない。しかしグラフは日本語表示ができない。JIS2004フォント入れてなくてもダメ。 アンサンブルは狐だとプロダクション管理画面はまあまあ使えるが、そもそも管理ポータルの動きがかなり怪しい。 早い話が全ての機能がマトモに動く環境がほとんどないという素晴らしい製品という事。 SVG はさ、SVG で保存して、アドビのソフトでSVGで開いても、ちゃんと表示されない。 IEのSVGプラグインで表示どころか、イラレでSVG の画像部品作る事ができない。 SVG の部品作成ソフトが欲しいところ orz 死んだ規格にこだわっても何も良いことないのにねぇ。 そんなことよりキャシェの基本機能や性能をさらに上げた方がもっと効果的に他のDBより差別化できるのにね。 今のISの戦略は我々がキャシェに求めているものとはかなりかけはなれたモノだよ。 死んだ規格といっても、M言語を捨てたらそもそも存在価値がなくなるんじゃ? SVGの事じゃね<死んだ規格 CSPとかZENは見直して欲しいかなぁ。セッション維持し続けてライセンス食いつぶすし、Webライセンス高いし。 おまけにC/S間独自っぽくてjQueryとか他所のライブラリを食い込ませる余地がないし。 ASP.NETですらjQueryサポートしてるのに。 WebServiceは割と楽だけど、投げたオブジェクトがCacheインスタンスになった後、更新に使えないのが不満。 新規インスタンスにしかならないから、OpenIdでロードしてプロパティ代入して、とかやらんとならん。 結局、cacheになって追加された機能って中途半端なものばっかり。 せめてSQLエクスプローラだけでも復活してくれ。 あの糞ポータルは生産性悪すぎ。 >>191 どうみてもSVGよりMの方が死んでますがなw >>193 よせよ、これからも暫くつきあうんだから。 とりあえず、newを排除できたんだからCOSは評価してもいいと思うんだ。 エラーメッセージは何とかならないのかな。 mac形式やcls形式で作ってるのに、エラー行はint形式での位置を通知されてもねぇ。 undefの変数が分かるようになりました、って今まで分からなかったのか。 これrow_number使えんのか。 21件目から30件目、とか取得したい場合どうするの? select top 30 .... where not exists ( select top 20 ... みたいにするの? それとも何か専用の書き方がある? 無い。TOPはあるけどOFFSETが無いから無意味。not existsでできた? やるならQueryの中で一部を切り出すしかない気がするんだけど、SELECT句のカラムを適切に 設定した%SQLQueryを生成する方法がリファレンス等を読んでもよくわからない。 一旦全結果セットとってから、抽出。 あまりにも膨大な結果セットになる場合は、取得範囲以外を切り捨てちゃう方法があったはず。 (多分 row num より効率が良いかも) row num が使えるDBも内部では同じ事しているから、row num が使えるだけ。 まー、row num が使えると便利だけど。 スタジオでINTルーチンをデバッグしようとすると 「エラー#6704:ターゲットがデバッガから終了しました」 ってなる。 もう一回続けてデバッグをしようとすると 「6707」って出るんだよな.. CACHE2008でファイアウォールもOFFなんだが、 何か設定がたりないのか... 誰か教えて〜 すみません。 質問ですが、ObjectScriptは、M Scriptの発展型なのでしょうか? ObjectScriptとM Scriptはどのような違いがありますか? PUBLIC宣言した変数以外ローカル扱いするプロシージャがある。実質New不要。 クラス定義ができてそれを扱える。クラス定義は内部でCOSに変換される。同じようにSQLも変換される。 ブロック構文が使える。if {} elseif {} else {} とか while {} とか。ブロック構文は$Testを無視する。 このへんかな、大きな違いは。 >>202 逆に私はCOS以降から入った人なので、知識としてif<sp><sp>else<sp><sp>とかがあるとは知っているけど、使いこなせない。 素のMのソースはマジ読めない。Mべったりの人は他にいると思うので、まだ大きな違いがあるなら、そちらの人が指摘してほしい。 個人的には、ブロックの導入が最大の違いだと思う。プロシージャも新ifも、ブロック構文が前提だから。 ああ、1日目は最初10分おきでやってたし 2日目は21:30スタートだったけど 今日は9:00スタートで2回戦は23:00のままだから結構開くんだ。 明日からは新馬戦は21:30にしよう。 ぜんぜん進んでないww 誰もいないのかな?? cache'2008も出たことだし、今後のことをきいてみたかったのに・・・ ど素人なんでROMってる 自分で組む参考にしようと常駐してるけど本当に進まないな 階層型DB選ぶなら大体これだろうと思うんだけどみんなリレーショナルなのか 俺もどしろーとww でも、、、個人レベルならcacheはあんまりメリットのでは?? 転職してこれ使うことになった 自分の発想にすごい合ってるかも だがマイナーなんだなぁ…… 何かだんだん慣れてくると癖になるな…… 恐ろしいほど早いし。 ただIsolation Levelが気になる……SQL Serverで言うREAD COMMITTEDなんだな…… 気にはなってるんだよねぇ。これ。 でも情報が少なすぎて。 クラスからルーチン(.int)を呼んで、引数渡して、戻り値受け取りたいんだけど可能? キャッシェ・・良い商品だけど価格をそろそろ見直さないと使えないです。 高すぎる。 M言語のすばらしさは、それを使った人にしか理解できないと思います。 EXCELやAccessの手軽さで、ど素人でも簡単な講習でプログラムを 組むことができるのです。 しかもそのDB構造は堅牢で理解しやすいツリー構造で容量を消費せず、しかも アクセススピードか速い。またデータの型を気にする必要も無い。 こんなプログラミング言語がCOBOLやFORTLANの時代に在ったなんて 信じられない。 誰か、UBUNTU上で日本語でフリーで使えるM言語を開発して欲しい。 Mは嫌だな。 使うならCache Object Scriptがいい。 ブロック構文も使えない言語なんて…… >>223 フリーマンプスというイスラエル産のオープンソースがあってな だれか商用でもオープン系でもいいから、ガチでSQL性能比較した人いない? それともみんなSQLは捨ててMUMPSとして使ってるの? >>232 人居ないと思ってた・・・ ありがとう 誰か分かる人いるならCache'でM言語のご教授してくだされ もう一人いるぞ Mって事は昔のソースか?Mシステムのメモ帳でggr >>234 昔のが分からないけれども、Cache ObjectScriptです 入門とメモ帳はよく読んでますが、理解が悪いです・・・ >>235 >>200-203 辺りの違いは分かってる? 講習を受けるだけでかなり理解が進むんだけどな 俺らIT関係の単価考えたら二万は安いだろ ただ、まともに理解するには管理コースとかサーバーサイドプログラミングも必修 >>236 ある事情によりMをいきなりやっている状態なもので分かっていませんでした。 講習を検索してみても現在予定 最近の見当たらなかったです。見落としていたらすみません。 それと講習がやってても時間があるかどうか・・・ test(){ } とかで、test(a)やtest(a,b,c) みたいに引数の数が分からない場合、どのように取得すればよいのでしょうか? javascriptの arguments や perl の @_ みたいなものが無いかな・・というイメージなんですが。 変数名に、val_ref みたいにするとエラーになるんですが、変数名に _ は×なんでしょうか? 実際にやってみてダメなので、ダメなんだろーなーとは思うんですが・・ 変数定義を必須にするようなオプションはないでしょうか? スペルミスとかで変数名間違ってもそのまま通ってしまうのでちょっと不安で。 もしくは局所化でもいいんですが。 javascriptでの以下みたいな (function(){ var test = ''; ・・・ })(); せめて、コンパイル時に warning ででも教えてくれるような機能があれば。 Cach? のスタジオで ctrl+z で変更を戻すときに量が多少多いと微妙に間違って戻ってしまうのでちょっと困っているのですがなんとかならないでしょうか? 今のところ解決方法が分からないので別のエディターを使ってコピペしてるんですが、面倒くさくて。 キャシエの噂を聞きつけてWin評価版入れてみ た。 裏でApache動いてるみたいだけど、評価版でも リモートからWebアプリにアクセスできるのかな? メンテを依頼された客先のシステムは C30WとかいうVT100のエミュレータでアクセスしてる。 この制御コード変換?に%NDS.obj NSYS.obj というのを 使っているんだけど全く資料がなくて作成元も不明 どこかに落ちてないですかねえ >>238 javascriptやargumentsに詳しいわけでもないし、 あまり詳しいわけじゃないから間違ってるかもしれませんが、、 関数を作りたいのでしょうか? それでしたら、関数の引数をあらかじめ、渡される予定の最大数の引数で作ってしまえばいいかと思います。 で、呼び出し元で想定している、最大の引数の数を超えない引数を超えない範囲で 関数呼び出ししてあげればいいのではないでしょうか? つまり、関数を以下のような形でつくって、、、 TEST(a1,a2,a3) S a1=・・・ 以下で呼び出す。 S X=$$TEST(X,Y) この場合、a3が定義されませんが、オプショナルということで $G()を使用しておけばいいかと思います。 >>239 連投スマヌ。。。 "_"(アンダーバー)はダメだと思います。 というのも、"_"はCacheで接続子としての役割があるから。 たとえば、A="ABC",B="DEF"のとき、A_Bは変数としては扱わず、 "ABCDEF"として解釈するってこと。 >>240 そんな機能あったら便利だねー あったら、教えてちょ。 InterSystemsのDocBookに「ページに書式が含まれている場合・・」のように書いてあって、 "書式"ってなんだろうと思ってたら、 どうやら、formタグ(<form>) のことっぽい。 デアゴスティーニから送り出された新たな週刊ロボット。 70巻を予定。今回もサーボは焦げるのか・・・ ロボ初心者も多く参入するであろうこのシリーズ、初心者は謙虚に、 玄人は寛容にお願いいたします。 デアゴスティーニ http://deagostini.jp/rbx/ ObjectScriptで文字列の抜き出し(VBでいうRight関数やMid関数)を行う関数ってないのでしょうか? $EXTRACTTや$LENGTH組み合わせて自前で作るしかありませんか? >>248 $Eでできるのではないでしょうか。 第3引数を渡せば、Mid関数と同等の処理を行うことができます。 s TEST="1234567890" w $e(TEST,5,7) と実行すると"567"が取得できます >>249 亀ですがありがとうございます。 何がしたかったかというと、桁数決めて0埋めをしたかったのです(123456 ー> 0000123456みたいに)。 >>251 まさにこれです!シンプルでいいですね。 ありがとうございました! オラクルにsqlゲートウェイで接続する場合、異常におそくないですか? read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる