開発者向けクイック スタート
PSQL ソフトウェア開発キット(SDK)は、2 つのデータベース ソリューションのそれぞれの長所を提供します。MicroKernel エンジンは高速データ トランザクションを提供し、また、リレーショナル エンジンは同じデータに対する完全機能型リレーショナル データ アクセスを提供し、報告および意思決定支援におけるパフォーマンスを向上させます。
この章では、以降で説明するアプリケーションの構築を PSQL で容易に行えるようにするためのヒントを示します。
•
アクセス方法の選択
•
データベース接続のクイック リファレンス
•
アプリケーション開発のためのその他のリソース
アクセス方法の選択
開発戦略の選択肢には多くの要因が影響します。各種プラットフォーム上でツールを使用できるか、開発者が所定のプログラミング環境をよく理解しているか、また移植可能であるか、といった条件は、多くの場合、このプロセスにおいて決定的な役割を果たします。また一方で、開発者が柔軟性を持ち合わせている場合は、多方面の繊細な要因を考慮する必要があります。
パフォーマンスは常に考慮の対象になります。ただし、実行時のパフォーマンスと開発期間とのバランスをとらなければなりません。すなわち、プログラムを短期間で完成するのと、使用時に短時間で実行できるようにするのとではどちらがより重要であるかということです。
データベース プログラミングでは、データベースのインターフェイスは、開発期間と実行時のパフォーマンスの両方に影響を与えます。多くの場合、SQL と Btrieve のどちらを選択するかはこれらの要因だけに基づきます。
PSQL 製品を初めて使う場合、ADO NET/OLE DB、ActiveX コントロール、JDBC、PSQL Direct Access Components for Delphi and C++ Builder、その他サードパーティ製開発ツールなどのアクセス方法を使用して PSQL アプリケーションを開発することができます。
Btrieve API に直接書き込みを行う場合は、
「
Btrieve API プログラミング
」
を参照してください。この章では、いくつかのプログラミング言語でヒントとコード サンプルを示します。
表
1
では、さまざまな PSQL のアクセス方法を比較しています。
表 1
アプリケーション プログラミングのアクセス方法の比較
アクセス方法
特性
適応項目
Btrieve API
•
ほとんどの Windows プログラミング言語から DLL を呼び出し可能。
•
データベースの完全な機能セットを公開。
•
最小サイズ。
•
最大の柔軟性。
•
アプリケーションとデータの間の最短コード パス。
•
リレーショナル データベース管理システムにおける最小のコード オーバーヘッド。(ただし、データベース管理専用のアプリケーション コード数を増やす必要があります。)
•
クライアント/サーバー機能。
•
BLOB サポート。
•
サイズまたは実行時のパフォーマンスを重視するアプリケーション。
Java
•
シン クライアント。
•
プラットフォーム間の移植可能性。
•
インターネットまたはイントラネットの能力。
•
Winsock プロトコルと JNI プロトコルをサポート。
•
マシンと OS の独立性。インターネットと Web の能力。
•
最小サイズ。
•
優れた柔軟性。
•
インターフェイスに実装されている行セット、フィールドの抽象化。
•
総合的なパフォーマンス。Java は、コードのオーバーヘッドの大きなインタプリタ言語です。
•
クライアント/サーバー機能、言語に固有のバージョン管理。
•
Web アプレット。
•
インターネットベース アプリケーション。
•
各種ハードウェアおよび OS プラットフォームで実行しなければならないアプリケーション。
ADO/OLE DB
•
Visual Studio との優れた統合。
•
トランザクショナル、リレーショナルのいずれの状況でも動作。
•
インターネットまたはイントラネットに適応。
•
行セット、フィールドの抽象化。
•
Visual Studio を使用したアプリケーション開発。
ADO.NET
•
優れた総合的パフォーマンス。
•
インターネットの能力。
•
XML サポート。
•
効率的なスケーラブル アーキテクチャ。
•
実行時間が最重要である、管理された環境で実行するアプリケーション。
ActiveX
•
Visual Basic ネイティブ インターフェイス。
•
ほとんどの Windows プログラミング環境でサポート。
•
優れた柔軟性。
•
優れた総合的パフォーマンス。
•
インターネットの能力。
•
行セット、フィールドの抽象化。
•
Extended オペレーション、テーブル結合機能。
•
クライアント/サーバー機能。
•
実行時のパフォーマンスとコーディングのしやすさとのバランスが重要なアプリケーション。
•
ダウンロード時のフットプリントが最小であることや、Java のマシン非依存性は必要としないが、インターネット上のデータへのアクセスを必要とするアプリケーション。
SQL/ODBC
•
データベースの実装からアプリケーション インターフェイスを抽象化。
•
ほとんどのプログラミング言語、多数のアプリケーションがサポート。
•
リレーショナル アクセスのみ。
•
ラージ。一般的にネイティブ DBMS API への直接インターフェイスより低速。アプリケーションに「汎用」インターフェイスを提供。
•
完全なリレーショナル インプリメンテーション。
•
ネイティブ機能のサブセット。
•
ほとんどすべての Windows プログラミング環境と多数の市販のアプリケーションでサポートされる標準インターフェイス。
•
さまざまなデータ ストアへの異種アクセスを必要とするアプリケーション、または特定のデータ ストアに依存しないアプリケーション。
•
リレーショナル データ ストアの保守を重視するが、なおかつ、実行時のパフォーマンスが重要であるアプリケーション。
PSQL Direct Access Components
•
Delphi および C++ Builder の Embarcadero Database Engine に取って代わる。
•
トランザクショナルまたはリレーショナル コンテキストからデータにアクセスするクラス。
•
Embarcadero IDE を使用したアプリケーション開発。
データベース接続のクイック リファレンス
このセクションでは、PSQL データベースへの接続方法に関する情報を提供します。
これらの例は、各アクセス方法の完全なドキュメントを補足するだけのものです。各アクセス方法には、詳細情報へのリンクがあります。
各サンプルは、PSQL に含まれる DEMODATA サンプル データベースの Course テーブルを参照します。
•
ADO.NET 接続
•
ADO/OLE DB 接続
•
JDBC 接続
•
Java クラス ライブラリ
•
DSN を使用しない接続
ADO.NET 接続
ADO.NET の詳細については、以下を参照してください。
•
『
Data Provider for .NET Guide
』の
データ プロバイダーの使用
•
ダウンロードした ADO.NET サンプルのヘッダーとファイルをインストールした場合に提供されるコード例。
ADO.NET DB 接続のサンプル コード
"ServerDSN=Demodata;UID=test;PWD=test;ServerName=localhost;";
ADO/OLE DB 接続
ADO/OLE DB の詳細については、以下を参照してください。
•
「
OLE DB プロバイダーの使用を始める
」
•
「
PSQL OLE DB プロバイダーによるプログラミング
」
ADO/OLE DB 接続のサンプル コード
Dim rs As New ADODB.Recordset
rs.Open "Course", "Provider=PervasiveOLEDB;Data
Source=DEMODATA", adOpenDynamic,
adLockOptimistic, adCmdTableDirect
' データを使用した処理
rs.Close
JDBC 接続
JDBC タスクの詳細については、『
JDBC Driver Guide
』の次のトピックを参照してください。
•
PSQL JDBC ドライバーの概要
•
「
PSQL JDBC 2 ドライバーを使用したプログラミング
」
JDBC 接続のサンプル コード
Class.forName("com.pervasive.jdbc.v2.Driver");
Connection con = DriverManager.getConnection("jdbc:pervasive://localhost:1583/DEMODATA");
PreparedStatement stmt = con.prepareStatement("SELECT * FROM Course ORDER BY Name");
ResultSet rs = stmt.executeQuery();
Java クラス ライブラリ
Java クラス ライブラリの詳細については、以下を参照してください。
•
「
PSQL Java インターフェイスの概要
」
•
「
Java クラス ライブラリを使ったプログラミング
」
JCL 接続文字列のサンプル
Session session = Driver.establishSession();
Database db = session.connectToDatabase();
db.setDictionaryLoc("c:
\\
PVSW
\\
DEMODATA");
DSN を使用しない接続
PSQL により、アプリケーションは DSN を使用しない接続(DSN を使用しないで SQL エンジンに接続する)を実行することができます。
サーバーでローカルに実行、またはリモート クライアントから実行するには、次の手順が必要です。この方法は、ワークステーション/ワークグループ エンジンだけでなく、サーバー エンジンでも機能します。
1
SQLAllocEnv
2
SQLAllocConnect
3
SQLDriverConnect: "Driver={Pervasive ODBC Client Interface};ServerName=<解決するサーバー名>;dbq=@<サーバー側のデータベース名>;"
例
Driver={Pervasive ODBC Client Interface};ServerName=myserver;dbq=@DEMODATA;
メモ:
Pervasive.SQL 2000(SP3)より前のリリースでは、DSN を使用しない接続は、エンジンに対しローカルに実行されるアプリケーション(つまり、エンジンが実行されているのと同一マシン上で実行)でのみサポートされていました。 しかし、ドライバー文字列の形式が Pervasive.SQL 2000i(SP3)から変更されました。 DSN を使用しない接続を行うアプリケーションは、Pervasive.SQL 2000(SP2a)以前が適用された環境で DSN なしで実行するには、すべて上記のように変更し、再コンパイルする必要があります。
ODBC 情報
PSQL ODBC インターフェイスの機能および制限事項は、『
ODBC Guide
』に記載されています。このドキュメントは、PSQL サーバー、ワークグループ、およびクライアント製品に付属しています。
•
ODBC の情報については、『
ODBC Guide
』の
PSQL ODBC リファレンス
を参照してください。
•
サポートされる SQL 構文については、『
SQL Engine Reference
』の
「
SQL 構文リファレンス
」
を参照してください。
その他の SQL アクセス方法
ADO/OLEDB
ADO/OLE DB のプログラミング情報については、『
OLE DB Provider Guide
』を参照してください。
JDBC
SQL エンジンの JDBC プログラミングについては、『
JDBC Driver Guide
』の次のトピックを参照してください。
•
PSQL JDBC ドライバーの概要
•
「
PSQL JDBC 2 ドライバーを使用したプログラミング
」
PDAC
PSQL Direct Access Components は Delphi および C++ Builder アプリケーションに使用します。詳細については、『
PSQL Direct Access Components Guide
』の次のトピックを参照してください。
•
「
Direct Access Components の使用方法
」
•
「
Direct Access Components リファレンス
」
アプリケーション開発のためのその他のリソース
以下のトピックでは、PSQL の概念に関するさらなる情報を提供します。
概念情報
このマニュアルでは、MicroKernel エンジンとリレーショナル エンジンの両方の概念について説明します。
リファレンス情報
開発者のためのリファレンス情報は、さまざまなソフトウェア開発キット(SDK)のマニュアルに含まれています。データベース エンジンと同時にインストール可能な Eclipse ヘルプでは、「開発者リファレンス」を参照してください。
開発者向けオンライン リソース
Actian PSQL Web サイトで、開発者向けのオンラインの情報を得られます。
サンプル コード
SDK コンポーネントのインストール場所に、サンプル アプリケーションが保存されています。利用できるサンプルには次のものが含まれます。
•
ADO/OLE DB プログラミング(Visual Basic または Visual C++ を使用)
•
PSQL Direct Access Components(Delphi と C++ Builder を使用)
•
Java プログラミング(PSQL Java クラス ライブラリまたは JDBC を使用)
•
Distributed Tuning Interface(Visual C++ または Delphi 用)
•
Distributed Tuning Objects(Visual Basic 用)