Top > OOobbs3 > 70
** [[OOobbs3/70]] [#q08dea10]
-''サマリ'': Baseでのデータベースファイルの取得について
-''環境'': Other
-''状態'': 解決
-''投稿者'': [[My]]
-''投稿日'': 2011-10-04 (火) 16:33:54
*** 質問 [#n57ecc0f]
初めて投稿させていただきます。


 Baseの接続情報を取得したいと思っておりまして、unoidlからgetByNemeを使用して登録名を取得することには成功しました。

 ですが、データベースファイル(c:/test/databese.odb 等)を取得する方法がどうしても見つからなくて困っております。

 データベースファイル名を取得する方法はないのでしょうか。

 OpenOffice.org3.2.1を使用しております。



わかる方いらっしゃいましたら、よろしくお願い致します。
*** 回答 [#l4c99144]
- どこから getByName を利用したのかよく分かりませんが、com.sun.star.sdb.DatabaseContext サービスを利用して登録済みのデータベースを利用したのだと仮定して。返り値の css.sdb.XDocumentDataSource インターフェースの DatabaseDocument 属性からデータベースドキュメントオブジェクトを参照できます。そこから getURL メソッドで odb ファイルの URL が取得できます。
-- はにゃ? &new{2011-10-04 (火) 18:08:21};
- 登録されているDatabase名ならば下記Codeで一覧取得出来ると思います。~
 Sub oDatabase_List
  Dim dbContext As Object
  Dim dbNames as Object
  Dim d As Integer
  Dim dbText As String
	dbContext =createUnoService("com.sun.star.sdb.DatabaseContext")
	dbNames = dbContext.getElementNames()
	for d=0 to UBound(dbNames())
		dbText = dbtext + dbNames(d) + chr(10)
	next d
	msgbox dbText
 End Sub
-- new_OOo3 &new{2011-10-04 (火) 18:12:19};

#comment
*** 感想,コメント,メモ [#zd5faf0d]
はにゃ?さん、new_OOo3さん、早速のご回答ありがとうございます。質問が説明不足でしたね、すいません。おっしゃるようにcom.sun.star.sdb.DatabaseContext サービスを利用して取得しておりました。無事getURLメソッドを使用して取得することができました。ありがとうございます。

#comment

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes