スクリプトガイド > JMPの拡張 > データベースアクセス > データベース接続の確立とSQLの実行
公開日: 04/01/2021

データベース接続の確立とSQLの実行

以下の関数を使用すると、データベースに対して、より複雑な処理を行えます。

db = Create Database Connection( "パスワードを使用した接続文字列" );
Execute SQL( db, "SQL statement", <invisible>, <"New Table Title"> );
Close Database Connection( db );

これら3つの関数を使用すれば、接続を開き、Execute SQLを数回呼び出した後、接続を閉じることができます。Create Database Connectionは、Execute SQLClose 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で実行する方法を推奨します。そうすると、パスワードがデータテーブルに含まれません。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).