※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

GT.M とは

  • MUMPS(M言語)のひとつ
  • http://en.wikipedia.org/wiki/GT.M
  • 歴史
    • 1980年 米 Greystone Technology 社が開発
    • 1998年 Sanchez Computer が買収しGPLとして発表
    • 2008年 Fidelity National Information Services (F.I.S)の Healthcare 部門が Sanchez Computer を買収
  • 「階層型データベース」って紹介されてるけど、個人的には「メモリとファイルをシームレスに扱う仕掛け」って感じ
  • インタプリタがついてて、それを使ってデータにアクセスする仕組みになってる
    • Oracle を SQL*Plus だけで使う感じが近いかもしれない

GT.M 導入手順

  • アーカイブをダウンロード
  • 展開すればすぐに使えます (バイナリになってます)
    • 日本語(UTF-8)も使えますが、マルチバイト対応の組込関数が使いたいなら utf8 ディレクトリを使います

GT.Mの使い方

  • 環境変数を設定
    • gtm_dist
      • 実行ファイルmumpsのあるディレクトリ
    • gtmgbldir
      • $gtm_dist/mumps.gld
    • gtm_log
      • よくわからない
      • principal $IO device ???
    • gtmroutines
      • ルーチンオブジェクトのあるところを指定?
      • 空白区切りで複数指定できる 例) ". $gtm_dist"
  • データベースファイルをつくる
$ mupip
MUPIP> create
MUPIP> exit
  • これで mumps.dat が作られます。そこに実際のデータが格納されます。
  • あとは通常のMUMPSと同じ感じで使えると思います。
  • 同梱の mumps.hlp (英語のテキストファイル) が参考になると思います。

サンプル

; test1
hajime	WRITE "TEST - SAMPLE"_$CHAR(10)
	WRITE 123456_$CHAR(10)
	WRITE "END..."_$CHAR(10)

test2	;file read test
	set f="test2.csv"
	open f:(readonly)
	use f
	for i=1:1  read data  quit:$zeof  do
	. set ^test2(i)=data
	close f
	quit

test3	;database read test
	set id=""
	for  set id=$order(^test2(id))  quit:id=""  do
	. write ^test2(id),!
	quit