以下の関数を使用すると、データベースに対して、より複雑な処理を行えます。
db = Create Database Connection( "パスワードを使用した接続文字列" );
Execute SQL( db, "SQL statement", <invisible>, <"New Table Title"> );
Close Database Connection( db );
これら3つの関数を使用すれば、接続を開き、Execute SQLを数回呼び出した後、接続を閉じることができます。Create Database Connectionは、Execute SQLとClose Database Connectionで使用できるハンドルを戻します。
送信されたSQL文によって、データベースのテーブルから、JMPのデータテーブルが作成される場合と、作成されない場合があります。「SELECT」は通常、JMPのデータテーブルを作成します。しかし、「INSERT INTO」は、データベース内のテーブルを変更するものなので、JMPのデータテーブルは作成されません。
次のプログラムは、データベースへの接続を開きます。
dbc = Create Database Connection(
"DSN=dBASE Files;DBQ=$SAMPLE_IMPORT_DATA/;"
);
次のプログラムは、上記の接続を使って、SQLステートメントを実行します。
dt = Execute SQL( dbc,
"SELECT HEIGHT, WEIGHT FROM Bigclass", "NewTable"
);
次のプログラムは、処理が完了したら、ODBC接続を閉じます。
Close Database Connection( dbc );
テーブルを選択しないで、データベース接続だけを確立したほうがよい場合もあるかもしれません。スクリプトにより、すでに確立されている接続を使用してDatabase Openウィンドウを開くことが可能です。このようなスクリプトは暗号化しておくことをお勧めします。以下はその例です。
dbc = Create Database Connection(
"DSN=dBASE Files;DBQ=$SAMPLE_IMPORT_DATA/;UID=MyDatabase;pwd=MyPassword");
Main Menu( " Open Table" );
メモ: 接続文字列を引数に指定してExecute SQL()を実行した場合、作成されたデータテーブルの中に可読なテキストのパスワードが含まれてしまいます。それを避けるために、「クエリービルダー」でSQLクエリーを作成し、そのクエリーをJSLで実行する方法を推奨します。そうすると、パスワードがデータテーブルに含まれません。