【问题标题】:vb6 : mysql connection ok but database not shownvb6:mysql连接正常,但未显示数据库
【发布时间】:2019-07-21 18:09:33
【问题描述】:

只想显示mysql 数据库的列表。有没有可能?

Public Conn As New ADODB.Connection
Dim rs1 As New ADODB.Recordset

Private Sub Command1_Click()
    Dim ConnString As String
    Dim db_name As String
    Dim db_server As String
    Dim db_port As String
    Dim db_user As String
    Dim db_pass As String

    ' fill the variable
    db_name = ""
    db_server = "localhost" '
    db_port = "3306"    'default port is 3306.
    db_user = "root"    'default user name or depend on your user name on mysql.
    db_pass = ""  'depend on your password on mysql.

    ConnString = "DRIVER={MySQL ODBC 8.0 ANSI Driver};SERVER=" & db_server & ";DATABASE=" & db_name & _
        ";UID=" & db_user & ";PWD=" & db_pass & ";PORT=" & db_port & ";OPTION=3"
    With Conn
        .ConnectionString = ConnString
        .Open
    End With

    Set rs1 = Conn.OpenSchema(adSchemaTables)
    MsgBox rs1.Fields(0)
End Sub

【问题讨论】:

  • 没有理由有“填充变量”之类的评论;这很明显,只会分散读者的注意力。
  • 试试Set rs1 = Conn.Execute("show databases") 或类似的

标签: vb6 ado


【解决方案1】:

MS 为此目的提供了一个特殊的 COM 组件(=在数据库的架构上工作):ADOX(用于 DDL 和安全性的 Microsoft ADO Ext. 2.8)。您需要为其添加项目引用。

假设连接处于活动状态,以下是列出表的方法:

Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table

Set cat = New ADOX.Catalog
Set cat.ActiveConnection = cn ' Assumes cn is an active ADODB.Connection

For Each tbl In cat.Tables
    Debug.Print tbl.Name
Next tbl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-25
    • 2018-05-21
    • 2019-01-10
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2017-06-21
    • 2013-05-17
    相关资源
    最近更新 更多