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

使用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);

}

}

}

}

%>

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值