データベースのリソース
DatabaseLink を使うと,他のWolfram言語アプリケーションが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ディレクトリの現在の場所が分かる.
DatabaseResourcesディレクトリには,JDBC設定を保管しているファイルと接続設定を保管しているファイルの2種類のファイルを保管することができる.
JDBCの設定
拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能なJDBC設定情報が含まれているかどうか確認される.JDBC設定ファイルの形式は以下のようになっている.
この形式において,nameは接続名(OpenSQLConnectionで使われることもあります),driverclassはJDBCドライバのクラスファイル,protocolはJDBCプロトコルである.設定ファイルのバージョンはVersion設定で指定される.
JDBCDriver[
"Name" -> "HSQL(Standalone)",
"Driver" -> "org.hsqldb.jdbcDriver",
"Protocol" -> "jdbc:hsqldb:file:",
"Version" -> 1
]
このファイルは,以下のコマンドのように,HSQLDB(Standalone)接続でOpenSQLConnectionが呼び出されたときに使われるドライバとプロトコルを指定するものである.
別のファイルの例である.これはOracle用に設定されている.
JDBCDriver[
"Name" -> "oracle",
"Driver" -> "oracle.jdbc.driver.OracleDriver",
"Protocol" -> "jdbc:oracle:thin:@",
"Version" -> 1
]
これは,以下のコマンドのように,oracle接続のためにOpenSQLConnectionが呼び出されたときに使用するドライバとプロトコルを指定するものである.
「データベース接続:JDBC接続」に記載のように,JDBCドライバクラスを保管するようにアプリケーションを加えた場合は,同じアプリケーションの中にDatabaseResourcesディレクトリを作ってJDBC設定情報を保管することができる.次の表はOracleデータベースに接続するときに使用できるoracleという名前のアプリケーションレイアウトである.
$UserBaseDirectory/Applications/Oracle/Java | ドライバクラスファイルの場所 |
$UserBaseDirectory/Applications/Oracle/DatabaseResources | JDBC設定ファイルの場所 |
新しいJDBCドライバをインストールしたら,「データベース接続:JDBC接続」の手順に従ってシステムが新しいドライバにアクセスできるかどうかを確認する.
接続設定
拡張子.mが付いているDatabaseResourcesディレクトリのファイルはすべて,可能な接続設定情報が含まれているかどうか確認される.接続設定ファイルの形式は以下のようになっている.
SQLConnection[
connectdata,
"Name" -> "name",
"Description" -> "text",
"Username" -> "user",
"Password" -> "pass",
"RelativePath" -> True|False,
"Version" -> 1
]
ここで,connectdataは接続データ(通常JDBC設定)を保管しており,nameは接続名(OpenSQLConnectionで使われることがあります),textは接続のテキストによる記述,userとpassはデータベースに接続する際のユーザ名とパスワードを表している.パスワードに$Promptを指定すると,パスワード入力用のGUIが現れる.接続データが相対パスを含んでいる場合,これはRelativePath設定で指定する.設定ファイルのバージョンはVersion設定で指定される.
SQLConnection[
JDBC["HSQL(Standalone)", "../Examples/example"],
"Name" -> "example",
"Description" -> "Connection to hsql db for documentation.",
"Username" -> "sa",
"Password" -> "",
"RelativePath" -> True,
"Version" -> 1]
このファイルは,ファイルExamples/exampleへの接続にHSQLDBを使うことを指定する.ファイルExamples/exampleの場所は,設定ファイルの場所に対する相対パスである.ユーザ名saと空のパスワードも渡される.この接続情報には"example"という名前が付いている.この設定ファイルは次のOpenSQLConnectionコマンドをサポートする.
別のファイルの例である.これはOracle用に設定されている.
SQLConnection[
JDBC["oracle", "server.business.com:1999"],
"Name" -> "businessDB",
"Description" -> "Connection to Oracle db.",
"Username" -> "server1",
"Version" -> 1]
これは,以下のコマンドのように,businessDBでOpenSQLConnectionが呼び出されたときに使用する接続情報を指定するものである.
「データベース接続:JDBC接続」に記載のようにJDBCドライバクラスを保有するアプリケーションと,前述のようにJDBC設定情報を加えた場合は,Oracle接続情報を保管するのに同じ場所を使うことができる.次の表はOracleへの接続に使用できるアプリケーションレイアウトである.
$UserBaseDirectory/Applications/Oracle/Java | ドライバクラスファイルの場所 |
$UserBaseDirectory/Applications/Oracle/DatabaseResources | JDBC設定ファイルの場所 |
$UserBaseDirectory/Applications/Oracle/DatabaseResources | 接続設定ファイルの場所 |
接続設定ファイルを書く手助けとして,コマンドWriteDataSourceが使える.
testSourceというデータソースを作成する.デフォルトのHSQLデータベースを使う.
DataSourceNamesによるリストに新しいデータソースが現れる.
データソースに接続して利用し始めることができる.HSQLデータベースの利点のひとつは,データベースが存在しなければ作成されるということである.
HSQL以外のデータベースに接続するためには,WriteDataSourceの第2引数で指定する.次の例は,MySQLデータベースを使ってデータソースファイルを書く.
これはデータベースmain/testの作成にMySQLサーバとは通信しないことに注意されたい.データベースはすでに存在していると仮定される.しかし,これは名前付き接続を作成するのにはやはり便利な方法である.Username,Password,Location等のパラメータの設定方法を確認されたい.Locationの選択肢には"User","System"がある.
接続設定ファイルを手作業では作りたくない場合は,「Database Explorer:New Connection Wizard」に記載のNew Connection Wizardを使うことができる.
新しい名前付き接続を作成したら,「データベース接続:名前付き接続」の手順に従って新しい接続がシステムにアクセスできるかどうかを確認する.