`

VB 列出SQL数据库中所有表及字段信息

    博客分类:
  • vb
阅读更多

 程序思想:用Select name From sysobjects Where xtype = 'u'得到所有表,然后循环打开表,根据 Rs_Colums.Fields(I).Name 得到字段名, FieldType(Rs_Colums.Fields(I).Type) 得到字段类型, Rs_Colums.Fields(I).DefinedSize 宽度
  由于Rs_Colums.Fields(I).Type返回类型是数字,程序中写了一个FieldType函数转化成中文类型。

Private Sub Command1_Click()
 Dim Cn
As New ADODB.Connection
 Dim Rs_Table
As New ADODB.Recordset
 Dim Rs_Colums
As New ADODB.Recordset
  
 With Cn 
'定义连接
  .CursorLocation = adUseClient
  .Provider =
"sqloledb"
  .Properties("Data Source").Value = "LIHG"
  .Properties("Initial Catalog").Value = "NorthWind"
  .Properties("User ID") = "sa"
  .Properties("Password") = "sa"
  .Properties("prompt") = adPromptNever
  .ConnectionTimeout =
15
  .Open
  
  If .State = adStateOpen
Then
  Rs_Table.CursorLocation = adUseClient  '得到所有表名
  Rs_Table.Open "Select name From sysobjects Where xtype = 'u'", Cn, adOpenDynamic, adLockReadOnly
  Rs_Table.MoveFirst
  Do
While Not Rs_Table.EOF
  Debug.Print Rs_Table.Fields(
"name")
  Rs_Colums.CursorLocation = adUseClient
  Rs_Colums.Open
"select top 1 * from [" & Rs_Table.Fields("name") & "]", Cn, adOpenStatic, adLockReadOnly
  For I =
0 To Rs_Colums.Fields.Count - 1  ' 循环所有列
  Debug.Print Rs_Colums.Fields(I).Name  '字段名
  Debug.Print FieldType(Rs_Colums.Fields(I).Type) '字段类型
  Debug.Print Rs_Colums.Fields(I).DefinedSize '宽度
  Next
  Rs_Colums.Close
  Rs_Table.MoveNext
  Loop
  Rs_Table.Close
  Set Rs_Colums =
Nothing
  Set Rs_Table = Nothing
  Else
  MsgBox
"数据库连接失败,请找系统管理员进行检查 !", 16, cProgramName
  End
  End
If
 End With
End Sub
  
'*********************************************************
'* 名称:FieldType
'* 功能:返回字段类型
'* 用法:FieldType(nType as integer)
'*********************************************************
Function FieldType(nType As Integer) As String
 Select Case nType
  Case
128
  FieldType = "BINARY"
  Case 11
  FieldType = "BIT"
  Case 129
  FieldType = "CHAR"
  Case 135
  FieldType = "DATETIME"
  Case 131
  FieldType = "DECIMAL"
  Case 5
  FieldType = "FLOAT"
  Case 205
  FieldType = "IMAGE"
  Case 3
  FieldType = "INT"
  Case 6
  FieldType = "MONEY"
  Case 130
  FieldType = "NCHAR"
  Case 203
  FieldType = "NTEXT"
  Case 131
  FieldType = "NUMERIC"
  Case 202
  FieldType = "NVARCHAR"
  Case 4
  FieldType = "REAL"
  Case 135
  FieldType = "SMALLDATETIME"
  Case 2
  FieldType = "SMALLMONEY"
  Case 6
  FieldType = "TEXT"
  Case 201
  FieldType = "TIMESTAMP"
  Case 128
  FieldType = "TINYINT"
  Case 17
  FieldType = "UNIQUEIDENTIFIER"
  Case 72
  FieldType = "VARBINARY"
  Case 204
  FieldType = "VARCHAR"
  Case 200
  FieldType = ""
 End Select
End Function


  此程序只是一个雏形,可以在此基础上开发成一个工具使用
  本程序在:VB 6.0 ,SQL SERVER 2000下运行通过
  注程序中须引用 ActiveX Data Objects (ADO)

分享到:
评论

相关推荐

    数据库课程设计网吧管理系统.doc

    五、功能结构图: 网吧管理系统模块 时间设定模块 第四章 数据库设计 二、逻辑设计: 下面列出几个主要的数据库表设计: 4。1 ClientIP表: "序号 "中文名 "字段名 "类型 "备注 " "0 "ID "3 "字符型 "主键 " "1 "IP ...

    C#.Net实体代码生成工具 v3.0 (20090830最新版)

    从数据库中提取表对应的C#实体代码,目前支持Oracle、SqlServer数据库,并可从对应类型的数据库中提取表及字段的注释,并可对生成的实体数据类型等进行各种自定义的设置等。如数据库列和C#代码类型的映射、实体命名...

    vb学生成绩管理系统

     要编写一个实用的数据库程序,必须系统地学习过数据库原理的知识,并首先设计出符合用户业务需求的数据库体系,然后才能利用某种语言,开发出针对这个数据库的交互程序:数据库应用程序。  2. 程序的主要功能  ...

    asp.net知识库

    为ASP.NET封装的SQL数据库访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型数据创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成数据 理解DataSet的数据缓存机制 存储过程...

    数据库课程设计网吧管理系统(2).doc

    网吧管理系统模块 时间设定模块 第四章 数据库设计 二、逻辑设计: 下面列出几个主要的数据库表设计: 4。1 ClientIP表: "序号 "中文名 "字段名 "类型 "备注 " "0 "ID "3 "字符型 "主键 " "1 "IP "10 "文本archar" ...

    软件工程工资管理系统

    在Microsoft SQL Server 2000的企业管理器中完成数据库和数据表的创建,具体SQL脚本请参见附录gz.sql SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_...

    数据库课程设计网吧管理系统(1).doc

    五、功能结构图: 网吧管理系统模块 时间设定模块 第四章 数据库设计 二、逻辑设计: 下面列出几个主要的数据库表设计: 4.1 ClientIP表: "序号 "中文名 "字段名 "类型 "备注 " "0 "ID "3 "字符型 "主键 " "1 "IP ...

    Access 2007 VBA宝典 1/4

     14.5.5 列出查询字段  14.5.6 列出表字段  14.5.7 其他过程  14.5.8 完成加载项  14.6 对加载项进行故障排除  14.7 安装加载项  14.8 使用Extras 2007加载项  14.8.1 Extras选项  14.8.2 备份...

    Access 2007 VBA宝典 4/4

     14.5.5 列出查询字段  14.5.6 列出表字段  14.5.7 其他过程  14.5.8 完成加载项  14.6 对加载项进行故障排除  14.7 安装加载项  14.8 使用Extras 2007加载项  14.8.1 Extras选项  14.8.2 备份...

    Access 2007 VBA宝典 3/4

     14.5.5 列出查询字段  14.5.6 列出表字段  14.5.7 其他过程  14.5.8 完成加载项  14.6 对加载项进行故障排除  14.7 安装加载项  14.8 使用Extras 2007加载项  14.8.1 Extras选项  14.8.2 备份...

    Access 2007 VBA宝典 2/4

     14.5.5 列出查询字段  14.5.6 列出表字段  14.5.7 其他过程  14.5.8 完成加载项  14.6 对加载项进行故障排除  14.7 安装加载项  14.8 使用Extras 2007加载项  14.8.1 Extras选项  14.8.2 备份...

    MySQL 5.1中文手冊

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. ...

    ASP.NET 控件的使用

    4.3.2 在数据库表中存储广告 144 4.3.3 跟踪显示和转到 145 4.4 显示不同的页面视图 149 4.4.1 显示选项卡式页面视图 149 4.4.2 显示多部分表单 152 4.5 显示向导 153 4.6 小结 157 第二部分 设计ASP.NET网站 第5章...

    mysql官方中文参考手册

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. ...

    MYSQL中文手册

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 ...

    MySQL 5.1参考手册中文版

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 ...

    MySQL 5.1参考手册

    8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. ...

Global site tag (gtag.js) - Google Analytics