0

0

MyGeneration获取所有ORACLE数据库的数据库名数据表命列名称

php中文网

php中文网

发布时间:2016-06-07 15:02:38

|

1219人浏览过

|

来源于php中文网

原创

使用MyGeneration自动生成代码工具获取所有ORACLE数据库的数据库名数据表命列名称的具体操作步骤如下: 一、设置MyGeration的Default Settings中的数据库链接字符串Provider=OraOLEDB.Oracle.1;Password=myPassword;Persist Security Info=True;User ID=myID

使用mygeneration自动生成代码工具获取所有oracle数据库的数据库名数据表命列名称的具体操作步骤如下:
一、设置mygeration的default settings中的数据库链接字符串provider=oraoledb.oracle.1;password=mypassword;persist security info=true;user id=myid;data source=mydatasource
二、复制下面代码到interface code选项卡的窗体中

public class generatedgui : dotnetscriptgui
{
 public generatedgui(zeuscontext context) : base(context) {}

 //-----------------------------------------
 // The User Interface Entry Point
 //-----------------------------------------
 public override void Setup()
 {
  // ** UNCOMMENT CODE BELOW TO SEE UI **

  //ui.Width  = 100;
  //ui.Height = 100;
  //GuiLabel lblDemo = ui.AddLabel("lblDemo", "Demo", "Demo Tooltip");
  //ui.ShowGui = true;
  
  //GuiLabel lblPath;
  //GuiTextBox txtNamespace;
  GuiComboBox cmbDatabase;
  GuiComboBox cmbTable;
  GuiComboBox cmbColumn;
 
  ui.Title = "读取所有数据表";
  ui.Width  = 450;
  ui.Height = 500;
  ui.BackColor = "wheat";
  ui.ShowGui = true;
  //添加窗体控件
  ui.AddLabel("lblPath","输出路径: ","Select the output path."); 
  string sOutputPath = "";   
  if( input.Contains("defaultOutputPath"))
  {
   sOutputPath = input["defaultOutputPath"].ToString();
  }
  //输出文件保存路径
  ui.AddTextBox("txtPath", sOutputPath, "Select the Output Path.");
  ui.AddFilePicker("btnPath", "选择路径", "Select the Output Path.", "txtPath", true);
  //程序命名空间
  ui.AddLabel("lblNamespace", "命名空间: ",  "Provide your objects namespace.");
  ui.AddTextBox("txtNamespace", "ZTE.TMobileUpdate", "Provide your objects namespace."); 
  //数据库下拉框
  ui.AddLabel("lblDatabases", "数据库选择:", "Select a database in the dropdown below.");
  cmbDatabase=ui.AddComboBox("cmbDatabase", "Select a database.");
  setupDatabaseDropdown(cmbDatabase);
  cmbDatabase.AttachEvent("onchange","cmbDatabase_onchange");
  //数据表选择
  ui.AddLabel("lblTables", "数据表选择:", "Select tables from the listbox below.");
  cmbTable = ui.AddComboBox("cmbTable", "Select tables:");
  setupTablesDropdown(cmbDatabase,cmbTable);
  cmbTable.AttachEvent("onchange","cmbTable_onchange");
  //视图选择
  ui.AddLabel("lblColumns", "字段选择:", "Select columns from the listbox below.");
  cmbColumn = ui.AddComboBox("cmbColumn", "Select columns:");
  
 }
 
 public void setupDatabaseDropdown( GuiComboBox Databases )
 {
  try
  { 
   if( MyMeta.IsConnected )
   {
    Databases.BindData( MyMeta.Databases );
    //判断数据库列表是否为空
    if( MyMeta.DefaultDatabase != null )
    {
     Databases.SelectedValue = MyMeta.DefaultDatabase.Alias;
     bindTables( Databases.SelectedValue );
    }
   }
  }
  catch
  {
  }
 }
 public void setupTablesDropdown(GuiComboBox Databases,GuiComboBox Tables)
 {
  try
  { 
   if( MyMeta.IsConnected )
   {
    //判断数据表列表是否为空
    if((Databases.SelectedValue != null)&&(Tables.SelectedValue != null))
    {
     bindColumns(Databases.SelectedValue,Tables.SelectedValue);
    }    
   }
  }
  catch
  {
  }
 }
 
 //数据库切换事件
 public void cmbDatabase_onchange( GuiComboBox control )
 {
  GuiComboBox cmbDatabases = ui["cmbDatabase"] as GuiComboBox; 
  bindTables( cmbDatabases.SelectedText );
 }
 //数据表切换事件
 public void cmbTable_onchange( GuiComboBox control )
 {
  GuiComboBox cmbDatabases = ui["cmbDatabase"] as GuiComboBox;
  GuiComboBox cmbTable = ui["cmbTable"] as GuiComboBox; 
  bindColumns(cmbDatabases.SelectedText, cmbTable.SelectedText);
 }
 
 public void bindTables( string sDatabase )
 { 
  try
  { 
   IDatabase db = MyMeta.Databases[sDatabase];
   GuiComboBox cmbTable = ui["cmbTable"] as GuiComboBox;
   cmbTable.BindData( db.Tables );
  }
  catch
  {
  }
 }
 
 public void bindColumns( string sDatabase,string sTable )
 { 
  try
  { 
   IDatabase db = MyMeta.Databases[sDatabase];
   ITable objTable=db.Tables[sTable];
   GuiComboBox cmbColumn = ui["cmbColumn"] as GuiComboBox;
   cmbColumn.BindData( objTable.Columns );
  }
  catch
  {
  }
 } 
}
三、复制下面代码到Template Code选项卡的窗体中
public class GeneratedTemplate : DotNetScriptTemplate
{
 public GeneratedTemplate(ZeusContext context) : base(context) {}

 //---------------------------------------------------
 // Render() is where you want to write your logic   
 //---------------------------------------------------
 public override void Render()
 {   
  if(context.Objects.ContainsKey("DnpUtils"))
  {
   DnpUtils.SaveInputToCache(context);
  }  
  string strFilenameBase = input["txtPath"].ToString();
  string strNamespace = input["txtNamespace"].ToString();
  string strDatabaseName  = input["cmbDatabase"].ToString();
  string strTableName  = input["cmbTable"].ToString();
  string strColumnName  = input["cmbColumn"].ToString();
  
  output.writeln("输出文件路径:"+strFilenameBase);
  output.writeln("命名空间名称:"+strNamespace);
  output.writeln("当前数据库名称:"+strDatabaseName);
  output.writeln("当前数据表名称:"+strTableName);
  output.writeln("当前选择列名称:"+strColumnName);
  GetAllDataBaseName();    
 }
 //输出所有的数据库名称
 private void GetAllDataBaseName()
 {
  foreach( IDatabase d in MyMeta.Databases )
   {
    GetAllTablesName(d.Alias);
   }  
 }
 //输出所有的数据表名称
 private void GetAllTablesName(string sDatabase)
 {  
  IDatabase objDatabase = MyMeta.Databases[sDatabase];
  output.writeln("当前数据库:"+sDatabase+"共有数据表总数:"+objDatabase.Tables.Count);
  foreach( ITable t in objDatabase.Tables )
   {
    GetAllColumnsName(sDatabase,t.Alias);
   }
 }
 private void GetAllColumnsName(string sDatabase,string sTable)
 {
  IDatabase objDatabase = MyMeta.Databases[sDatabase];
  ITable objTable=objDatabase.Tables[sTable];
  output.writeln("当前数据表:"+sTable+"共有数据列总数:"+objTable.Columns.Count);
  foreach( IColumn c in objTable.Columns )
   {
    if( c.IsInPrimaryKey )
    {
     output.writeln("主键名称:"+c.Alias);
    }
    else
    {
     output.writeln("普通列名:"+c.Alias);
    }
   }
 }

天意阿里巴巴企业商务
天意阿里巴巴企业商务

主要分类如下:供求商机(trade leades) 产品展示(product) 企业名录(companies) 会员商务助手(MY trade office)前台功能介绍:1、网页首页显示有精品推荐,商业机会分类列表,最新供求信息,网站动态,最新企业等;2、商业机会栏目功能有:二级分类,已经带有详细分类的数据库,后台可以更改增加操作;3、展厅展品栏目功能:二级分类,已经带有详细分类的数据库,

下载

}
%>
四、点菜单上的运行箭头按钮,在Output选项卡的窗体中显示所有结果

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

463

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

135

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

64

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

26

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

524

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

53

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5.7万人学习

Django 教程
Django 教程

共28课时 | 4.3万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号