使用 MyMeta 组件获取数据库结构

简介:
  MyMeta 组件是代码自动生成工具 MyGeneration 的核心模块之一,主要负责定义和获取关系数据库结构。在 MyMeta 中定义了一套比较完整的关系数据库对象结构,并提供获取(反向工程)这些对象的方法。使用 MyMeta 能轻松地获取到数据库中大部分类型的对象的元信息,这些对象包括架构(Schema)、表、视图、存储过程、索引、列、主键、外键、存储过程参数等,虽然 关系数据库中的对象类型不止这些,但对我们一般的软件开发来说,这些信息足够了。另外 MyMeta 还支持了足够多的关系数据库类型,可以说市面上能见到的数据库系统都支持了,包括MS Access、MS SQL Server、Oracle、MySQL、DB2、Firebird、PostgreSQL、Pervasive、SQLite、VistaDB 等,并且可灵活扩展。当然,MyGeneration 全部开源,这也是我最终决定在项目中使用 MyMeta 的重要原因。

这里提下,引用了MyMeta.dll还是不够的, 它会要求添加其余的几个引用 :FirebirdSql.Data.FirebirdClient.dll,MySql.Data.dll,Npgsql.dll,System.Data.SQLite.DLL等。添加完这些后,就可以正常运行他的代码了。
贴上我的测试代码
ExpandedBlockStart.gif
using System;
using System.Collections.Generic;
using System.Text;
using MyMeta;

namespace MyMetaTest
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string connString = @"Provider=SQLOLEDB;server=;database=;uid=;pwd=;";

            MyMeta.dbRoot root 
= new MyMeta.dbRoot();

            root.Connect(MyMeta.dbDriver.SQL, connString);
            
            
foreach (MyMeta.Database db in root.Databases)
            {
                Console.WriteLine(
"数据库 {0} 有 {1} 个表,{2} 个视图。", db.Name, db.Tables.Count, db.Views.Count);
                
if (db.Name == "DB")
                {
                    
int i = 0;
                   
foreach(MyMeta .Table t in db.Tables )
                   {
                       Console.WriteLine(
string.Format("Table {0}--------------------------------------------------------",t.Name));
                       
foreach (MyMeta.Column c in t.Columns)
                       {
                           Console.WriteLine(
string.Format("name {0} IsComputed {1} IsAutoKey {2} DataTypeName {3}", c.Name, c.IsComputed, c.IsAutoKey, c.DataTypeName));
                       }
                       i
++;
                       
if (i > 10break;
                   }
                }
            }

            Console.ReadLine();
        }
    }
}

呵呵,是在他的代码的基础上修改的。
获取数据库信息是创建代码生成器的第一步,哎,慢慢来,慢慢来。
本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2009/07/29/1534362.html,如需转载请自行联系原作者
相关文章
|
3月前
|
数据库
Google Earth Engine(GEE)——全球树木异体测量和树冠结构(Tallo)数据库
Google Earth Engine(GEE)——全球树木异体测量和树冠结构(Tallo)数据库
22 1
|
7月前
|
存储 Java 关系型数据库
JSP考试质量分析系统myeclipse开发mysql数据库bs框架java编程web网页结构
JSP 考试质量分析系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
186 1
|
7月前
|
Java 关系型数据库 MySQL
JSP房地产门户管理系统myeclipse开发mysql数据库BS模式java编程网页结构
JSP 房地产门户管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
69 0
|
7月前
|
Java 关系型数据库 MySQL
JSP SSH公车拍卖系统myeclipse开发mysql数据库bs框架java编程网结构
JSP SSH公车拍卖系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
50 0
|
1天前
|
数据库
生成数据库结构文档
生成数据库结构文档
|
1月前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
42 7
|
3月前
|
监控 关系型数据库 MySQL
MySQL技能完整学习列表12、性能优化——1、性能指标和监控——2、优化查询和数据库结构——3、硬件和配置优化
MySQL技能完整学习列表12、性能优化——1、性能指标和监控——2、优化查询和数据库结构——3、硬件和配置优化
154 0
|
3月前
|
SQL 存储 算法
【数据库SQL server】数据库系统概述与DBS结构
【数据库SQL server】数据库系统概述与DBS结构
76 0
【数据库SQL server】数据库系统概述与DBS结构
|
4月前
|
存储 自然语言处理 API
向量数据库:了解其内部结构
向量数据库在底层是如何工作的,以及如何在高效的向量存储之上构建搜索?
向量数据库:了解其内部结构
|
4月前
|
存储 SQL Oracle
Oracle-Oracle数据库结构
Oracle-Oracle数据库结构
69 0