2012年9月26日水曜日

LibreOffice のマクロで、MySqlに接続する

LibreOfficeではマクロが使用できます。使用したのは、Unix(Ubuntu12.04)上で動作するLibreOfficeのバージョン3.5.4.2です。
以下はMySQLに接続して、レコードを挿入するサンプルです。ユーザ名とパスワードは'root'でデータベース名は、stock_dbでテーブル名は、stock です。



sub main7 

Dim DatabaseContext as object
Dim DataSource as Object
Dim Connection as Object
Dim Statement as Object
Dim sSQL as String

Dim oResultSet as Object
Dim nDlgResult As Integer

Dim sURL as String
Dim oProps(2) as new com.sun.star.beans.PropertyValue
' ***** データベースのコネクション  *****
DatabaseContext=createUnoService("com.sun.star.sdbc.DriverManager") 
sURL = "jdbc:mysql://127.0.0.1:3306/stock_db?useUnicode=true&characterEncoding=UTF-8"
oProps(0).Name = "user"
oProps(0).value = "root"
oProps(1).Name = "password"
oProps(1).value = "root"
oProps(2).name = "JavaDriverClass"
oProps(2).value = "com.mysql.jdbc.Driver"

Connection = DatabaseContext.getConnectionWithInfo(sURL, oProps())

' ***** SQLの実行  *****
Statement = Connection.createStatement()
 nResult = Statement.executeUpdate("INSERT INTO stock (code,hiduke,jikoku,price )" & _ 
  "VALUES (1003, '2012/09/24','15:00',12400)")

' oResultSet = Statement.executeQuery("SELECT * FROM stock;")
' oResultSet.Next
' Msgbox(oResultSet.getString(1))

' ***** データベースを閉じる  *****
Statement.Close()
Connection.Close()
Connection.Dispose()

end sub 


0 件のコメント:

コメントを投稿