使用OLE方式获取数据库架构信息
一般连接SQL数据库的连接字串:
![](/assets/blank.gif)
OLE的连接字串只要在其头部增加“Provider=sqloledb;”,即:
![](/assets/blank.gif)
需要在代码文件中加一句引用:
![](/assets/blank.gif)
建立连接对象
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
打开连接后一般需要做个判断,防止连接失败
读取架构表信息的方法是GetOleDbSchemaTabl( Guid,Object[] ),其中Guid为OleDbSchemaGuid的成员,决定了获取指定的架构信息,Object[]为限制列数组,随OleDbSchemaGuid不同而不同。常用的OleDbSchemaGuid为Tables、Columns、Indexes 、Primary_Keys。
一、获取数据表字段(列)结构信息
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
其中,限制列分别为 TABLE_CATALOG、TABLE_SCHEMA、TABLE_NAME、COLUMN_NAME,如果不限制则传递null。
此时,SchemaTable中包含一个字段结构表,此表的每个记录(每行)为[TABLENAME]的每个字段的结构信息,而SchemaTable本身的结构可以通过列信息中获取,SchemaTable的列信息是固定的,以下读取列信息的代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
SchemaTable中的每个列名和类型如下:
TABLE_CATALOG String
TABLE_SCHEMA String
TABLE_NAME String
COLUMN_NAME String
COLUMN_GUID Guid
COLUMN_PROPID Int64
ORDINAL_POSITION Int64
COLUMN_HASDEFAULT Boolean
COLUMN_DEFAULT String
COLUMN_FLAGS Int64
IS_NULLABLE Boolean
DATA_TYPE Int32
TYPE_GUID Guid
CHARACTER_MAXIMUM_LENGTH Int64
CHARACTER_OCTET_LENGTH Int64
NUMERIC_PRECISION Int32
NUMERIC_SCALE Int16
DATETIME_PRECISION Int64
CHARACTER_SET_CATALOG String
CHARACTER_SET_SCHEMA String
CHARACTER_SET_NAME String
COLLATION_CATALOG String
COLLATION_SCHEMA String
COLLATION_NAME String
DOMAIN_CATALOG String
DOMAIN_SCHEMA String
DOMAIN_NAME String
DESCRIPTION String
COLUMN_LCID Int32
COLUMN_COMPFLAGS Int32
COLUMN_SORTID Int32
COLUMN_TDSCOLLATION Byte[]
IS_COMPUTED Boolean
有了SchemaTable的每个列的结构后,就可以选择性地从中取得[TABLENAME]的字段信息了
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
![](/assets/blank.gif)
二、获取主键信息
TABLE_CATALOG
TABLE_SCHEMA
TABLE_NAME
COLUMN_NAME
COLUMN_GUID
COLUMN_PROPID
ORDINAL
PK_NAME
转载于:https://www.cnblogs.com/CodeBlove/archive/2008/03/24/1119726.html
使用OLE方式获取数据库架构信息相关推荐
- 查询Master下的系统表和系统视图获取数据库的信息和简单的渗透测试
在SQL中可以通过查询Master下的系统表(sys)和系统视图(information_schema)获取数据库的信息.SQL2000和SQL2005的结构略有不同. 系统表结构参考系统表详细说明. ...
- wordpress 外部数据接口_使用接口方式获取WordPress用户信息的方法
今天WordPress主题站简单介绍一下WordPress系统中用户信息获取方式,今天就讲讲使用接口方式获取WordPress用户信息的方法. 接口文件如下: if ('POST' != $_SERV ...
- 一键获取数据库整体信息脚本
一键获取数据库整体信息脚本 将脚本内容放spooldb.sql中,在sqlplus中执行,相关信息会自动生成5个文件,其中addm是最近一小时文件,ash是最近半小时文件,而awr文件是最近一小时和最 ...
- sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
sql 获取数据库字段信息 In the series of articles on DBATools, (see TOC at the bottom) we are exploring useful ...
- 浅析ado.net获取数据库元数据信息
写这个文章源于早先对ADO.Net获取数据库元数据上的认识,去年我在阅读ADO.Net Core Reference的时候曾经注意过DataSet的FillSchema的这个方法.这方面,在我之前的随 ...
- C#获取数据库表信息,列信息
获取表的信息: conn.Open();string[] restrictions = new string[4];restrictions[1] = "dbo"; DataTab ...
- Spring MVC 实战:三种方式获取登录用户信息
前言 Web 项目中,维持用户登录状态的常用方式有三种,分别是 Cookie.Session.Token,不管哪种方案,都需要获取到用户信息供业务层使用. 由于获取用户信息与具体业务无关,因此在普通的 ...
- jdbc mysql查询整行信息_JDBC获取数据库各种信息
当通过一个JDBC连接上一个数据的时候,我们就可以通过JDBC获取到这个数据的各种信息,比如数据库的名称.模式.表结构(及其字段).视图.函数.过程.访问权限等等一系列的信息.当然,如果你原意,你还可 ...
- java数据库编程(13) 获取数据库更多信息
使用 DatabaseMetaData可以获得关于数据库的很多信息,比如支持的列,两张表之间的外键约束,查看主键约束等等. 这里的代码也不用怎么讲解了,如果前面的都懂的话,这些代码是可以看懂的. im ...
最新文章
- ASP.net中的几种分页方法
- 宝塔 mysql迁移_(2020年最新方法)如何快速迁移网站?使用宝塔一键迁移转移网站数据详细教程...
- iOS 模糊化效果 ANBlurredImageView的使用
- Python高阶函数和函数嵌套
- Python3中提示:no module named 'wxpy'
- 牛客网(剑指offer) 第十二题 数值的整数次方
- ubuntu搭建nodejs生产环境——快速部署手册
- 论文英文参考文献[10]的时候后面多空格_英文学术论文标点符号使用规范
- python 2.7中urllib 2 与python 3.5中 urllib的区别。
- SPOJ Play on Words
- Eclipse导入Ant项目
- mysql explain desc_MySQL中EXPLAIN结果的参数详解
- ADS20XX完全安装(任意盘)、卸载指南
- 清北学堂集训day1
- python卷积神经网络预测股价_利用神经网络预测股票市场
- xp大容量u盘补丁_u盘128g 个性 大容量电脑系统修复
- 计算机专业秃顶图片,大学被叫惨的三大专业,计算机秃顶是常事,医学专业这个就惨了!...
- Android中铃声总结【安卓源码解析一】
- 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)
- java实现打字母小游戏