怎样实现像odbc那样列出数据库名,然后列出表名???

ffly 2003-10-17 10:21:57
有没有办法实现,怎样实现,请各位帮忙!
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanslotliu 2003-10-17
  • 打赏
  • 举报
回复
查看MSDN的Sample目录下的Visdate.vbp
zhangqs 2003-10-17
  • 打赏
  • 举报
回复
sql server 2000:
列数据库名:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sql As String

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master"
conn.Open
sql = "SELECT name FROM sysdatabases order by name"
rs.Open sql, conn
cmbDBName.Clear
If Not (rs.BOF And rs.EOF) Then
Do While Not rs.EOF
cmbDBName.AddItem rs.Fields("name")
rs.MoveNext
Loop
cmbDBName.ListIndex = 0
End If
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing

列表名:
Dim conn As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim sql As String
Dim dt As String
Dim i As Integer

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=AA"
conn.Open

Set rs = conn.OpenSchema(adSchemaTables)


Do While Not rs.EOF
If rs.Fields("TABLE_TYPE") = "TABLE" Then
Grid1.AddItem "表名:" & rs.Fields("TABLE_NAME")
Grid1.AddItem "字段名" & vbTab & "类型" & vbTab & "长度"
sql = "select top 1 * from " & rs.Fields("TABLE_NAME")
rs1.Open sql, conn
For i = 0 To rs1.Fields.Count - 1
Select Case rs1.Fields(i).Type
Case 3
dt = "int"
Case 202
dt = "nvarchar"
Case 203
dt = "ntext"
Case 4
dt = "real"
Case 129
dt = "char"
Case 131
dt = "numeric"
Case 200
dt = "varchar"
Case 135
dt = "datetime"
Case 2
dt = "smallint"
Case 17
dt = "tinyint"
Case Else
dt = rs1.Fields(i).Type
MsgBox dt & "" & rs.Fields("Table_name")
End Select
Grid1.AddItem rs1.Fields(i).Name & vbTab & dt & vbTab & rs1.Fields(i).DefinedSize
Next
rs1.Close
Grid1.AddItem ""
End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set rs1 = Nothing
conn.Close
Set conn = Nothing
strongfisher 2003-10-17
  • 打赏
  • 举报
回复
你是自己想把他列出来还是只是想借用?
如过借用的话
Private objDataLink As New MSDASC.DataLinks


Dim sConnect As String
Set objDataLink = New MSDASC.DataLinks
sConnect = objDataLink.PromptNew

同时引用
microsoft ole db service compenent...
ffly 2003-10-17
  • 打赏
  • 举报
回复
有人会吗???

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧