データベース一覧を表示するには?

解決


TOSHI  2003-04-02 13:28:16  No: 77535  IP: [192.*.*.*]

ADODBを使ってデータベース一覧をコンボボックスに追加するにはどうすればよいのですか?

編集 削除
魔界の仮面弁士  2003-04-02 13:32:22  No: 77536  IP: [192.*.*.*]

テーブル名一覧ではなく、データベース名一覧ですか?
となると、プロバイダ次第ですね。
(Jetプロバイダの場合は、無理だと思います)

編集 削除
TOSHI  2003-04-02 13:33:51  No: 77537  IP: [192.*.*.*]

プロバイダはSQLSERVERなのですが無理でしょうか?

編集 削除
魔界の仮面弁士  2003-04-02 14:15:18  No: 77538  IP: [192.*.*.*]

OpenSchemaメソッドで、カタログのスキーマを取得すればOKです。
    Set Cn = New ADODB.Connection
    Cn.Provider = "SQLOLEDB"
    Cn.Properties("Data Source").Value = strServerName
    Cn.Open , strUserName, strPassword
    Set Rs = Cn.OpenSchema(adSchemaCatalogs)
    Debug.Print "カタログ名", "解説"
    Debug.Print Rs.GetString(, , "|", , "(null)")


あるいは、SQLDMOを使う事もできます。

  Set Svr = New SQLDMO.SQLServer
  Svr.Connect strServerName, strUserName, strPassword
  For Each DB In Svr.Databases
      Debug.Print DB.Name
  Next

編集 削除
TOSHI  2003-04-02 15:06:07  No: 77539  IP: [192.*.*.*]

adodbの方だとコンボボックスに追加できないんでしょうか?
いまいち分かりません。
Debug.Print で表示はできました。

後  SQLDMO  は参照設定で何を追加すれば使えるようになるのですか?

編集 削除
魔界の仮面弁士  2003-04-02 16:06:26  No: 77540  IP: [192.*.*.*]

> コンボボックスに追加できないんでしょうか?
ComboBoxのAddItemメソッドで追加していってください。

> SQLDMO  は参照設定で何を追加すれば
SQL Serverのクライアントツールがインストールされていれば、
参照設定の一覧に
  Microsoft SQLDMO Object Library
と表示されるかと思います。ファイル名はSQLDMO.dllです。

なお、SQL-DMO は再領布可能コンポーネントです。
再頒布条件については、SQL Server のメディアにある
redist.txt を参照してください。

編集 削除
TOSHI  2003-04-02 16:48:15  No: 77541  IP: [192.*.*.*]

SQLDMOの方はコンボボックスに追加できたのですが、ADODBの方はどうやって区切ったらいいのかわかりません。

後  SQLDMOのWindows NT の統合セキュリティーを使った方法がわからないので教えてください

編集 削除
魔界の仮面弁士  2003-04-02 19:12:13  No: 77542  IP: [192.*.*.*]

> ADODBの方はどうやって区切ったらいいのかわかりません
OpenSchemaメソッドの戻り値は、単なるRecordsetオブジェクトです。
MoveNextしながら、EOFになるまで、各FieldのValueを書き出してやりましょう。

> 統合セキュリティーを使った方法
ヘルプで、LoginSecureプロパティについて調べて見ましょう。

編集 削除
TOSHI  2003-04-04 11:08:02  No: 77543  IP: [192.*.*.*]

やっとできました。魔界の仮面弁士さんのをかげです。

編集 削除