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

解決


TOSHI  2003-04-02 22:28:16  No: 77535

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


魔界の仮面弁士  2003-04-02 22:32:22  No: 77536

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


TOSHI  2003-04-02 22:33:51  No: 77537

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


魔界の仮面弁士  2003-04-02 23:15:18  No: 77538

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-03 00:06:07  No: 77539

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

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


魔界の仮面弁士  2003-04-03 01:06:26  No: 77540

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

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

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


TOSHI  2003-04-03 01:48:15  No: 77541

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

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


魔界の仮面弁士  2003-04-03 04:12:13  No: 77542

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

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


TOSHI  2003-04-04 20:08:02  No: 77543

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加