![]() ![]() |
|
SQL-Server对象信息的获取 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/7/4 19:03:58 文章录入:杜斌 责任编辑:杜斌 | |
|
|
在开发基于SQL Server数据库的应用程序时,经常会遇到需要知道SQL Server数据库对象的相关信息的情况,例如SQL Server中有哪些数据库,这些数据库中有哪些数据表,每个数据表有哪些字段,这些字段是什么属性等。笔者在开发一个数据库导入程序时就遇到了这些问题,经过一番摸索,较好地解决了上述问题,现在把实现方法介绍给大家。程序界面如下图所示。 Dim oDB As SQLDMO.Database Set oDB = oSQLServer.Databases(cob_sqldb.List(cob_sqldb.ListIndex)) If oCurrentDB Is Nothing Then Set oCurrentDB = oDB Else If oCurrentDB.Name = oDB.Name Then Exit Sub End If Set oCurrentDB = Nothing Set oCurrentDB = oDB End If FillEmptyTableList (True) If cob_sqltable.ListCount > 0 Then cob_sqltable.ListIndex = 0 cob_sqltable_Click End If ...... End Sub Private Sub FillEmptyTableList(bFill As Boolean) ’获得当前数据库中的所有非系统数据表名称 If bFill = True Then Dim oTable As SQLDMO.Table For Each oTable In oCurrentDB.Tables If oTable.SystemObject = False Then ’判断其不是系统数据表 cob_sqltable.AddItem oTable.Name ’把非系统数据表名称添加到数据表信息列表框中 End If Next oTable End If End Sub Private Sub cob_sqltable_Click() ’点击“数据表信息” 列表框 ...... Dim oTable As SQLDMO.Table Set oTable = oCurrentDB.Tables(cob_sqltable.List(cob_sqltable.ListIndex)) If oCurrentTable Is Nothing Then Set oCurrentTable = oTable Else If oCurrentTable.Name = oTable.Name Then Exit Sub End If Set oCurrentTable = Nothing Set oCurrentTable = oTable End If FillEmptyColsToIndex (True) If cob_sqlrecord.ListCount > 0 Then cob_sqlrecord.ListIndex = 0 End If ...... End Sub Private Sub FillEmptyColsToIndex(bFill As Boolean) ’获得数据表中的所有字段的信息 If bFill = True Then Dim oCol As SQLDMO.Column Set oCol = New SQLDMO.Column For Each oCol In oCurrentTable.Columns cob_sqlrecord.AddItem oCol.Name & “ ” & oCol.DataType ’把字段名称和字段属性添加到字段信息列表框中 Next oCol End If End Sub |
|
![]() ![]() |