SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

InterSystems IRISでシンプルに開発するIoTアプリケーション(PR)

Visual Studio Codeを使ってIRISのクラスを定義してみよう

InterSystems IRISでシンプルに開発するIoTアプリケーション 第4回

  • このエントリーをはてなブックマークに追加

SQLでデータにアクセス

 先ほど述べたように、IRISではクラス定義を行うと同時にテーブル定義も行われます。IRISはグローバルと呼ばれる高速・軽量なデータベースが基礎になっており、テーブルやクラスは、グローバルに保存されたデータをどのようにアクセスするかという「アクセス・レイヤー」の定義によって実現されます。このことによりIRISでは、同一のデータに対して必要に応じてSQLを使用したり、オブジェクト指向アクセスを使用したりすることが可能となります。

 今回は、管理ポータルから、SQLによるアクセスについて簡単に説明します。管理ポータルのメニューから[システムエクスプローラ]→[SQL]を選んでください。次の図のような画面が開くので、ネームスペースが”DRIVE”となっていることを確認してください。”DRIVE”になっていない場合は、隣の「変更」をクリックしてネームスペースを変更してください。

SQL画面
SQL画面

 画面右側の「クエリ実行」タブをクリックし、

select * from drivedemo_data.carlatest

と入力して「実行」ボタンを押してみてください。今はデータが入っていないので、一件もヒットしない(0 row(s) affected)と表示されます。

注意

 クラス名はDriveDemo.Data.CarLatestですが、テーブル名はDriveDemo_Data.CarLatestとなっていることに注意してください。クラス定義では、”.”で区切られたパッケージを複数階層つなげることができますが、SQLで使用するテーブル名ではパッケージは1つのみです。従って、DriveDemo.Data→DriveDemo_Dataのように、最後の”.”以外は”_”に変換されます。

 次に、以下のようなInsert文を実行します。

insert into drivedemo_data.carlatest (CarId, Tm, Speed, BrakeSW, aX, aY, aZ) values ('car1', to_timestamp('2020-01-14 9:00:00', 'YYYY-MM-DD HH:MI:SS'), 30.0, 0, -100, 200, 1000)

 1 row(s) affectedと表示されたらInsertは成功です。そして、先ほどのSelect文を再度実行してみてください。そうすると、次の図のように、先ほどInsertした行が表示されます。

SELECT結果
SELECT結果

 ここで、クラス定義のプロパティが、テーブルのフィールドに対応していることに注意してください。

 今回は管理ポータルからSQLを発行しましたが、IRISはJDBCなどの標準プロトコルもサポートしているので、他のクライアントプログラムからRDBMSと同様にデータにアクセスできます。

まとめ

 今回の記事では、Visual Studio Codeを用いて、IRISにクラスを定義する方法を紹介しました。IRISのデータベースは、高速・軽量なグローバルと呼ばれる構造を基礎としており、クラスのインスタンスはグローバルとして保存されます。また、クラス定義と同時にテーブル定義も自動的に行われます。これにより、必要に応じてSQLによるアクセスとオブジェクト指向アクセスとを自由に選ぶことができます。このような仕組みにより、高速で自由度の高いデータベースを簡単に構築することが可能になります。

 次回は、前回構築したインタオペラビリティ機能を拡張して、IRISのデータベースにデータを格納する手順について紹介する予定です。

参考

 インターシステムズでは、開発者の皆様にIRISを知っていただくために、いろいろな機能を紹介する短い動画を作成しています(日本語字幕付き)。

 インターオペラビリティ機能は以下のURLで説明されています。ぜひご覧ください。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
InterSystems IRISでシンプルに開発するIoTアプリケーション連載記事一覧

もっと読む

この記事の著者

堀田 稔(インターシステムズジャパン)(ホリタ ミノル)

SEマネージャー。1992年大阪大学基礎工学部情報工学科卒。同年日本ディジタルイクイップメント(株)入社。電気通信など様々な業界向けプロジェクトにシステムエンジニアとして携わる。1996年InterSystems Data Platform製品の日本語版開発プロジェクトに従事し、同製品の販売・サポー...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11919 2020/02/03 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング