DatabaseLink チュートリアル関数

データベースのリソース

DatabaseLink を使うと,他の Mathematica アプリケーションがDatabaseResourcesディレクトリにあるデータベース接続のリソース情報を保管できるようになります.DatabaseResourcesディレクトリを置くことのできる場所は$InstallationDirectory$BaseDirectory$UserBaseDirectory内にたくさんあります.
DatabaseResourcesPath[]リソースを検索するDatabaseResourcesディレクトリ
$InstallationDirectory/AddOns/ExtraPackages/*可能なDatabaseResourcesディレクトリの場所
$InstallationDirectory/AddOns/StandardPackages/*
$InstallationDirectory/AddOns/Autoload/*
$InstallationDirectory/AddOns/Applications/*
$BaseDirectory/Autoload/*
$BaseDirectory/Applications/*
$UserBaseDirectory/Autoload/*
$UserBaseDirectory/Applications/*
DatabaseResourcesPathコマンドでDatabaseResourcesディレクトリの現在の場所が分かります.
In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
DatabaseResourcesディレクトリには,JDBC設定を保管しているファイルと接続設定を保管しているファイルの2種類のファイルを保管することができます.

JDBCの設定

拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能なJDBC設定情報が含まれているかどうか確認されます.JDBC設定ファイルの形式は以下のようになっています.
この形式において,nameは接続名(OpenSQLConnectionで使われることもあります),driverclassはJDBCドライバのクラスファイル,protocolはJDBCプロトコルです.設定ファイルのバージョンはVersion設定で指定されます.
HSQLDB用に設定したファイルの例を以下に示します.
このファイルは,以下のコマンドのように,hsqldb接続でOpenSQLConnectionが呼び出されたときに使われるドライバとプロトコルを指定するものです.
別のファイルの例です.これはOracle用に設定されています.
これは,以下のコマンドのように,oracle接続のためにOpenSQLConnectionが呼び出されたときに使用するドライバとプロトコルを指定するものです.
データベース接続:JDBC接続に記載のように,JDBCドライバクラスを保管するようにアプリケーションを加えた場合は,同じアプリケーションの中にDatabaseResourcesディレクトリを作ってJDBC設定情報を保管することができます.次の表はOracleデータベースに接続するときに使用できるOracleという名前のアプリケーションレイアウトです.
$UserBaseDirectory/Applications/Oracle/Javaデータベースドライバクラスファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResourcesJDBC設定ファイルの場所
新しいJDBCドライバをインストールしたら,データベース接続:JDBC接続に従ってシステムが新しいドライバにアクセスできるかどうかをご確認ください.

接続設定

拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能な接続設定情報が含まれているかどうか確認されます.接続設定ファイルの形式は以下のようになっています.
ここで,connectdataは接続データ(通常JDBC設定)を保管しており,nameは接続名(OpenSQLConnectionで使われることがあります),textは接続のテキストによる記述,userpassはデータベースに接続する際のユーザ名とパスワードを表しています.パスワードに$Promptを指定すると,パスワード入力用のGUIが現れます.接続データが相対パスを含んでいる場合,これはRelativePath設定で指定します.設定ファイルのバージョンはVersion設定で指定されます.
HSQLDB用に設定したファイルの例を以下に示します.
このファイルは,ファイルExamples/exampleへの接続にHSQLDBを使うことを指定します.ファイルExamples/exampleの場所は,設定ファイルの場所に対する相対パスです.ユーザ名saと空のパスワードも渡されます.この接続情報にはexampleという名前が付いています.この設定ファイルは次のOpenSQLConnectionコマンドをサポートします.
別のファイルの例です.これはOracle用に設定されています.
これは,以下のコマンドのように,businessDBOpenSQLConnectionが呼び出されたときに使用する接続情報を指定するものです.
データベース接続:JDBC接続で述べたようにJDBCドライバクラスを保有するアプリケーションと,前述のようにJDBC設定情報を加えた場合は,Oracle接続情報を保管するのに同じ場所を使うことができます.次の表はOracleへの接続に使用できるアプリケーションレイアウトです.
$UserBaseDirectory/Applications/Oracle/Javaデータベースドライバクラスファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResourcesJDBC設定ファイルの場所
$UserBaseDirectory/Applications/Oracle/DatabaseResources接続設定ファイルの場所
接続設定ファイルを書く手助けとして,コマンドWriteDataSourceが使えます.
In[1]:=
Click for copyable input
testSourceというデータソースを作成します.HSQLデータベースを使います.
In[2]:=
Click for copyable input
Out[2]=
DataSourceNamesによるリストに新しいデータソースが現れます.
In[3]:=
Click for copyable input
Out[3]=
データソースに接続して利用し始めることができます.HSQLデータベースの利点のひとつは,データベースが存在しなければ作成されるということです.
In[4]:=
Click for copyable input
Out[4]=
練習のためには接続を閉じるとよいでしょう.
In[5]:=
Click for copyable input
HSQL以外のデータベースに接続したい場合は,WriteDataSourceの第2引数で指定できます.次の例は,MySQL データベースを使ってデータソースファイルを書きます.
Click for copyable input
これはデータベースmain/testの作成にMySQLサーバとは通信しないことにご注意ください.データベースはすでに存在していると仮定されます.しかし,これは名前付き接続を作成するのにはやはり便利な方法です.UsernamePasswordLocation等のパラメータの設定方法をお確かめください.Locationの選択肢には"User""System"があります.re "User" and "System".
接続設定ファイルを書きたくない場合は,Database Explorer:New Connection Wizardに記載のNew Connection Wizardを使うことができます.
新しい名前付き接続を作成したら,データベース接続:名前付き接続に従って新しい接続がシステムにアクセスできるかどうかをご確認ください.