`

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)

分享到:
评论

相关推荐

    大工19春《SQL数据库课程设计》模板及要求 .doc

    数据分析是这一阶段的关键,需列出所有数据表及其字段,包括字段名称、数据宽度、是否允许空值和主键信息。例如,学生姓名表应包含学号、姓名、民族和生日等字段。 【功能分析】部分则需详细描述系统的各项功能,如...

    把ACCESS转成SQL数据库

    ACCESS中不包含`FROM`子句,所有表都在`UPDATE`关键字之后列出,而SQL Server则包含`FROM`子句。 在`DELETE`语句中,ACCESS使用`DELETE * FROM table WHERE condition`,而SQL Server则是`DELETE FROM table WHERE ...

    sqlserver数据库查看器

    2. **查看表信息**:深入到每个数据库中,列出所有表的详细信息,如表名、主键、索引和外键等元数据。 3. **检查字段信息**:对于每个表,可以查看其字段列表,包括字段名称、数据类型、长度、是否可为空、默认值等...

    VB数据库编程.doc

    每个记录代表一个独立的客户,记录中的所有字段共同构成客户的信息。在数据库设计中,表可以通过字段建立联系,如上述的客户表和订单表,通过客户号这一共同字段关联,形成了一个一对一或多对一的关系。在这种情况下...

    vb6.0 读取access(mdb)数据库的代码(很简单)

    在VB6.0中,与Access(MDB)数据库进行交互是一项基本技能,这对于开发桌面应用程序尤其重要。Access数据库是Microsoft Office套件的一部分,通常用于存储和管理数据。下面,我们将详细探讨如何使用VB6.0来读取Access...

    在VB数据库开发中使用ADO和SQL.pdf

    Select语句可以列出所选字段的所有记录,也可以根据Where子句过滤出满足特定条件的记录。此外,还可以使用Group By子句对数据进行分组,以及使用Order By子句对结果进行排序。 3. **数据统计**:SQL语句可以执行...

    VB.NET操作SQL Server完全模块

    根据给定的文件信息,我们可以深入探讨VB.NET与SQL Server交互的关键知识点,特别是关于如何在VB.NET中设计和实现操作SQL Server数据库的模块。以下是对标题、描述以及部分代码内容的详细解读: ### VB.NET操作SQL ...

    (VB+SQL+Server2000).rar_sql_vb sql server 2000_vb sql server2000

    【标签】列出了关键的技术点,包括"sql vb"(SQL与VB的结合)、"sql_server_2000"(SQL Server 2000)、"vb_sql_server2000"(VB与SQL Server 2000的整合)、"vb_sql_学生信息管理系统"(VB实现的学生信息管理系统)...

    VB+SQL图书管理系统

    在本系统中,开发者需要创建一个或多个SQL数据库表,比如“图书信息表”(包含书名、作者、出版社、出版日期等字段)和“借阅记录表”(记录借书人、借阅日期、归还日期等信息)。SQL语句用于插入、更新、查询和删除...

    VB下利用ADO技术访问Oracle数据库

    - **字段(Fields)**:字段对象表示数据表中的列。它们包含了字段的名称、数据类型和值等信息。 #### 四、ADO访问Oracle数据库的具体步骤 1. **建立连接**:首先需要创建一个连接对象,并设置连接字符串,指定...

    SQL数据库学生选科系统课程设计报告

    数据字典是这个阶段的重要输出,它详尽列出了所有涉及的数据项、其含义、类型及与其他数据的关系。数据流程图则直观地描绘了数据在系统中的流动路径,帮助理解系统的数据处理逻辑。 概念结构设计阶段,主要工作是...

    Excel与SQL实现数据交换的VB程序设计.pdf

    数据交换的实现基础是通过将Excel工作表中的行和列与SQL数据库表中的记录和字段一一对应。为了确保数据交换的可行性和准确性,必须首先确定Excel列值的长度和类型,并据此在SQL数据库中建立相应的字段,设置好字段的...

    关于SQL数据库查询模块应用.pdf

    在当今的信息时代,数据库技术扮演着至关重要的角色。...对于想要深入学习SQL和VB6.0在数据库管理中应用的读者,参考文献《SQL Server项目开发实践》、《SQL Server教程》等将提供更丰富的信息和指导。

    VB 与MDB数据库

    - 示例中的SQL语句是基本的SELECT语句,用于获取表`test`的所有列。创建表的SQL语句示例如下: ```sql CREATE TABLE B (B CHAR(50)) ``` - 这将在数据库中创建一个名为B的新表,包含一个名为B的字段,长度为50...

    基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf

    本系统采用VB和SQL Server 2000的结合,实现了多用户并发操作,支持数据的增删改查及动态查询、自定义字段排序等功能。同时,系统界面友好,操作简便,利用ActiveX数据对象(ADO)技术提高了数据访问的效率。 第二...

    SQL数据库(学生信息管理系统)课程设计报告.docx

    - 参考文献部分通常列出在课程设计过程中参考过的书籍、论文或其他资源,有助于读者了解更多信息来源,同时也是学术诚信的体现。 #### 八、分工情况 - 分工情况说明了团队成员之间的工作分配,每个成员负责的具体...

    餐饮服务系统(VB+SQL Server)

    4. **数据绑定**:VB支持数据绑定技术,可以直接将控件(如列表框、文本框)与数据库字段绑定,实现数据的实时显示和更新。 5. **错误处理**:VB提供了Try...Catch...Finally语句块来处理程序运行时可能出现的异常...

    VB程序中用ADO对象动态创建数据库和表

    在VB程序中,使用ADO对象动态创建数据库和表是一种提高程序灵活性的方法,尤其适用于需要根据现场数据需求变化的情况。在传统的开发流程中,通常会预先建立数据库和表结构,然后在VB程序中通过ADODC控件或直接引用...

    员工工资管理系统(VB+SQL)

    【员工工资管理系统(VB+SQL)】是一种基于Visual Basic编程语言和SQL Server 2000数据库管理系统构建的软件应用,用于高效、准确地管理企业的薪资发放和员工信息。该系统通常包括员工信息管理、工资计算、考勤记录、...

Global site tag (gtag.js) - Google Analytics