OpenOffice.org Base Basic
OpenOffice.org Basic > OpenOffice.org Base Basic
OpenOffice.org データベースソフト Base を用いるためのマクロの解説。また、外部データベースを用いるためのマクロも、ここで解説する。
目次 |
[編集] 公式プログラミングガイド
Sun StarSuite 8 Basic プログラミングガイド
[編集] BASE に接続する
BASE (HSQLDB) データベースに接続するために、StarSuite APIのcom.sun.star.sdb.DatabaseContextサービスを用いる。
[編集] 接続
OpenOffice Calcなど、BASE以外の環境からBASEを開いて作業する場合の例。
Dim DatabaseContext as object Dim DataSource as Object Dim Connection as Object Dim Statement as Object Dim ResultSet as Object ' ***** データベースを開く ***** DatabaseContext=createUnoService("com.sun.star.sdb.DatabaseContext") ' DataBase_Test.odb というBASEファイルを開く DataSource=DatabaseContext.getByName("DataBase_Test") ' ユーザ名、パスワードを空白で接続 Connection = DataSource.GetConnection("","") ' ***** SQLの実行 ***** Statement = Connection.createStatement() ResultSet= Statement.executeQuery("Select * From TBL_MAIN") ' ***** レコードの読み込みサンプル ***** If IsNull(ResultSet) Then ' 検索されたレコード件数が0件の場合の処理をここに書く Else ' 1つ目のカラム名の取得 sColumnName1 = ResultSet.Columns.ElementNames(0) While ResultSet.next ' 1カラム目のデータ項目を取得 sValue = ResultSet.getString(1) Wend End If ' ***** データベースを閉じる ***** Statement.Close() Connection.Close() Connection.Dispose()
OpenOffice.org APIリファレンス
service DatabaseContext > getByname
service DataSource > getConnection
interface XConnection > createStatement
interface XStatement > executeQuery
[編集] 各種クエリ実行例
SELECT文には、executeQuery関数を用いる。 UPDATE, INSERT, DELETE文には、executeUpdate関数を用いる。(なお、BASEのみを用いるのであれば、 executeQuery関数も可)
カラム項目名は、"..."で囲む。(外部データベースでSQLを用いる時と仕様が違うので注意が必要)
Dim ResultSet as Object Dim nLines as Long ResultSet= Statement.executeQuery("Select ""column1"",_ ""column2"" From TBL_MAIN Where ((""column3"" = 1))") nLines = Statement.executeUpdate("Insert into TBL_MAIN_ (""column1"",""column2"") Values ('string1','string2')
OpenOffice.org APIリファレンス
interface XStatement > executeQuery, executeUpdate
[編集] MySQL に接続する
MySQL データベースに接続するために、StarSuite APIのcom.sun.star.sdb.DatabaseContextサービスを用いる。
[編集] JDBCによる接続
この方法を用いるためには、OpenOfficeにJDBCドライバのクラスパスを登録しておく必要がある。
インストール方法: MySQL公式サイトよりJDBCドライバをダウンロードし、適当なフォルダに展開した後に、OpenOfficeのツール メニュー > オプション > OpenOffice > Java と設定メニューを開き、「クラスパスの追加」ボタンを押し「アーカイブを追加」でJDBCのjarファイルを指定すればよい。
公式サイトのドライバダウンロードページ MySQL Enterprise: Drivers > MySQL Connector/J (JDBC driver) download
Dim DatabaseContext as object Dim sURL as String Dim oProps(2) as new com.sun.star.beans.PropertyValue Dim Connection as Object Dim Statement as Object Dim ResultSet as Object ' ***** データベースを開く ***** DatabaseContext=createUnoService("com.sun.star.sdbc.DriverManager") ' MySQLが稼動しているサーバ(192.168.1.1)とポート番号(3306) sURL = "jdbc:mysql://192.168.1.1:3306/test?useUnicode=true&characterEncoding=UTF-8" ' ユーザ名とパスワード、ドライバ(JDBC)の指定 oProps(0).Name = "user" oProps(0).value = "MySQLのユーザ" oProps(1).Name = "password" oProps(1).value = "MySQLのパスワード" oProps(2).name = "JavaDriverClass" oProps(2).value = "com.mysql.jdbc.Driver" Connection = DatabaseContext.getConnectionWithInfo(sURL, oProps()) ' ***** SQLの実行 ***** Statement = Connection.createStatement() ResultSet= Statement.executeQuery("Select * From TBL_MAIN") ' ***** レコードの読み込みサンプル ***** If IsNull(ResultSet) Then ' 検索されたレコード件数が0件の場合の処理をここに書く Else ' 1つ目のカラム名の取得 sColumnName1 = ResultSet.Columns.ElementNames(0) While ResultSet.next ' 1カラム目のデータ項目を取得 sValue = ResultSet.getString(1) Wend End If ' ***** データベースを閉じる ***** Statement.Close() Connection.Close() Connection.Dispose()
OpenOffice.org APIリファレンス
service DatabaseContext > getByname
interface XDriverManager > getConnectionWithInfo
interface XConnection > createStatement
interface XStatement > executeQuery
[編集] 各種クエリ実行例
SELECT文には、executeQuery関数を用いる。 UPDATE, INSERT, DELETE文には、executeUpdate関数を用いる。
Dim ResultSet as Object Dim nLines as Long ResultSet= Statement.executeQuery("Select column1,_ column2 From TBL_MAIN Where column3 = 1") nLines = Statement.executeUpdate("Insert into TBL_MAIN_ (column1,column2) Values ('string1','string2')
OpenOffice.org APIリファレンス
interface XStatement > executeQuery, executeUpdate
MySQL 5.1 リファレンスマニュアル
データ取り扱いステートメント
[編集] ODBCによる接続
この方法を用いるためには、OpenOfficeがインストールされた端末ににODBCドライバをインストールしておく必要がある。
公式サイトのドライバダウンロードページ
MySQL Enterprise: Drivers > MySQL Connector/ODBC download
[編集] PostgreSQL に接続する
PostgreSQL データベースに接続するために、StarSuite APIのcom.sun.star.sdb.DatabaseContextサービスを用いる。
[編集] JDBCによる接続
この方法を用いるためには、OpenOfficeにJDBCドライバのクラスパスを登録しておく必要がある。
公式サイトのドライバダウンロードページ
PostgreSQL JDBC Deriver