▼データ\'83\'5cース

From Apache OpenOffice Wiki
< JA‎ | Documentation/BASIC Guide
Revision as of 02:09, 13 November 2008 by G11nAutomation (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
doc OOo
Book.png


データベースの Apache OpenOffice への組み込みは、いわゆるデータソースと呼ばれるものを作成することにより実施できます。▼ユーザーインターフェースのデータ\'83\'5cース作成用オプションは、メニュー ツールに用意されています。データソースを作成し、Apache OpenOffice Basic を使用して操作することもできます。

データ\'83\'5cースへのアクセスを行う場合、まず最初に createUnoService 関数によるデータベースコンテキストオブジェクトの作成を行う必要があります。これはデータベース処理のルートオブジェクトとして機能するもので、その操作には com.sun.star.sdb.DatabaseContext サービスを利用します。

▼以下のサンプルコードでは、データベースコンテキストの作成方法、および使用可\'94\'5cなすべてのデータ\'83\'5cースの取得方法を示します。▼ここで取得した名前は、逐次メッセージ\'83\'7bックスに\'95\'5c示します。

Dim DatabaseContext As Object
Dim Names
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
 
Names = DatabaseContext.getElementNames()
 
For I = 0 To UBound(Names())
  MsgBox Names(I)
Next I

個々のデータソースは com.sun.star.sdb.DataSource サービスをベースとしており、データベースコンテキストに getByName メソッドを適用することで各データソースを個別に指定できます。

Dim DatabaseContext As Object
Dim DataSource As Object
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")

上記のサンプルコードでは、Customers というデータソース名を指定して、その DataSource オブジェクトを作成しています。

▼データ\'83\'5cースには各種の属性が用意されており、これらを通じてデータの出自やアクセス方式などの一般的な情報を取得することができます。▼以下にこれらの属性を 示します。

Name (String) データソースの名前。
URL (String)
URL (文字列) データソースの URL (フォーマットは jdbc:サブプロトコル:サブネーム または sdbc:サブプロトコル:サブネーム)。
Settings (Array)
接続パラメータを持つ PropertyValue ペアを含む配列 (通常はユーザー名とパスワードが最低必要)。
User (String)
ユーザー名。
Password (String)
ユーザーパスワード (保存されません)。
IsPasswordRequired (Boolean)
ユーザーに対してパスワードを要求する指定。
IsReadOnly (Boolean)
データベースへの読み取り専用アクセスを許可。
NumberFormatsSupplier (Object)
データベースに使用可能な数値書式を含むオブジェクト (com.sun.star.util.XNumberFormatsSupplier インターフェースをサポート)。
TableFilter (Array)
表示させるテーブル名のリスト。
TableTypeFilter (Array)
表示させるテーブルの種類のリスト。使用可能な値: TABLEVIEW および SYSTEM TABLE
SuppressVersionColumns (Boolean)
バージョン管理用の列を非表示とする指定。

Template:Documentation/Note

▼クエリー

▼データ\'83\'5cースに対しては、事前定義されたクエリーを利用できます。Apache OpenOffice ▼ は、SQL のクエリーコ\'83\'7dンドを記録して、随時利用できるようにしています。▼クエリーとは、データベースの利用を簡単化する目的で開発されたもので、SQL に関する専門的な知識をもたないユーザーでも、\'83\'7dウスによるクリック操作のみで SQL コ\'83\'7dンドの実行に必要な各種オプションを指定できます。

クエリーを使用する場合、com.sun.star.sdb.QueryDefinition サービスをサポートしたオブジェクトを直接操作する必要はありません。▼クエリーへのアクセスは、該当するデータ\'83\'5cースに対して QueryDefinitions メ\'83\'5cッドを適用することにより実行できます。

▼以下のサンプルコードでは、データ\'83\'5cースに記録されているクエリー名の一覧を取得して、逐次メッセージ\'83\'7bックスに\'95\'5c示します。

Dim DatabaseContext As Object
Dim DataSource As Object
Dim QueryDefinitions As Object
Dim QueryDefinition As Object
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")
QueryDefinitions = DataSource.getQueryDefinitions()
 
For I = 0 To QueryDefinitions.Count() - 1
  QueryDefinition = QueryDefinitions(I)
  MsgBox QueryDefinition.Name
Next I

com.sun.star.sdb.QueryDefinition サービスには、上記のサンプルコードで使用した Name 属性をはじめとする各種の属性が用意されています。以下にその属性を示します。

Name (String)
クエリー名。
Command (String)
SQL コマンド (通常 SELECT コマンド)。

▼以下のサンプルコードは、プログラム制御によるクエリーオブジェクトの作成およびデータ\'83\'5cースへの登録を行う場合の例です。

Dim DatabaseContext As Object
Dim DataSource As Object
Dim QueryDefinitions As Object
Dim QueryDefinition As Object
Dim I As Integer
 
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("Customers")
QueryDefinitions = DataSource.getQueryDefinitions()
QueryDefinition = createUnoService("com.sun.star.sdb.QueryDefinition")
QueryDefinition.Command = "SELECT * FROM Customer"
QueryDefinitions.insertByName("NewQuery", QueryDefinition)

この場合の処理の流れは、まず最初に createUnoService を用いてクエリーオブジェクトを作成し、次にその初期化を行い、最後に QueryDefinitions メソッドにより insertByName オブジェクトへ追加します。

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools