Tips

4D同士でデータ交換

日付2008/07/23
ID08-015
バージョン2003, 2004, 11
プラットフォームWin / Mac

この記事は、最新ではないバージョンに関連した方法について解説しています。

最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。

4D同士が通信を行うのは、さほど難しいことではありません。主要な方法は2つあります。

  1. SOAPを使う
  2. SQLを使う

SOAPを使う

4DにはSOAPサーバとして簡単に機能するように、Webサービス機能が組み込まれています。このWebサービス機能を使うことで、SOAPサーバとしてSOAPクライアントとデータを送受信することができます。さらに簡単にSOAPクライアントとして機能するメソッドを作成するためのWebサービスウィザード機能を搭載しています。つまり4Dは、SOAPサーバとしても機能できるし、SOAPクライアントとしての機能も持ち合わせているので、これらの機能を使って4D同士がデータを交換することが可能です。

4DによるSOAPでデータ交換は、まずサーバとして動作する4Dでメソッドを用意しSOAPで公開します。次にクライアントとなる4Dで実際に公開されているサーバにWebサービスウィザードを使って接続し、サーバ側のメソッドと通信するためのメソッドを作成します。

参考資料:

SQLを使う

4D v11 SQL同士が通信を行うのであれば、SQLが使えます。SQLで他のデータベースに接続する場合、ODBCを経由することになります。他のデータベースへの接続にはUSE EXTERNAL DATABASEを使いますが、このコマンドで指定するのはOSのODBC管理で設定したデータソースです。つまり例え同じマシン上で動作しているとしても、ODBCのデータソースを設定しなければなりません。ODBCのデータソースの設定はプラットフォーム毎に異なりますが、いずれの場合も4D ODBC Driver Installerでインストールしたドライバを使って設定します。

SQLの良い所は、USE EXTERNAL DATABASEでデータソースを指定する以外は、全く内部データにアクセスするのと変わらないことです。

まとめ

SOAPは、サーバ側が用意したメソッドを通して通信を行います。サーバで公開したメソッドが無ければ、データにアクセスすることはできないのでセキュリティを気にする場合には有効です。またテーブルに収められていないようなデータであっても、メソッドで処理してクライアント側にデータを送ることができます。

SQLの場合、サーバに特別用意するものはありません。SQLサーバ機能を有効にするだけです。サーバ側はデータの入れ物として機能することになります。