使用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选项卡的窗体中显示所有结果

Python中的文件扩展名是附加在文件名末尾的后缀,用于表示文件的格式或类型。它通常由三个或四个字符组成,文件名后跟一个句点,例如“.txt”或“.py”。操作系统和程序利用文件扩展名来确定文件的类型以及应如何处理它。被识别为纯文本文件。Python中的文件扩展名在读取或写入文件时至关重要,因为它建立了文件格式以及读取和写入数据的最佳方法。例如,“.csv”文件扩展名是读取CSV文件时使用的扩展名,而csv模块则用于处理该文件。Python中获取文件扩展名的算法在Python中操作文件名字符串来

使用math.Max函数获取一组数中的最大值在数学和编程中,经常需要找出一组数中的最大值。在Go语言中,我们可以使用math包中的Max函数来实现这个功能。本文将介绍如何使用math.Max函数来获取一组数中的最大值,并提供相应的代码示例。首先,我们需要导入math包。在Go语言中,导入包可以使用import关键字,如下所示:import"mat

从Java中的LinkedHashSet中检索最后一个元素意味着检索其集合中的最后一个元素。尽管Java没有内置方法来帮助检索LinkedHashSets中的最后一个项,但存在多种有效的技术,可以提供灵活性和便利性,有效地检索此最后一个元素而不破坏插入顺序-这是Java开发人员必须在其应用程序中有效处理的问题。通过将这些策略有效地应用于他们的软件项目中,他们可以实现满足此要求的最佳解决方案LinkedHashSetLinkedHashSet是Java中的一种高效数据结构,它结合了HashSet和

文件的大小是特定文件在特定存储设备(例如硬盘驱动器)上占用的存储空间量。文件的大小以字节为单位来衡量。在本节中,我们将讨论如何实现一个java程序来获取给定文件的大小(以字节、千字节和兆字节为单位)。字节是数字信息的最小单位。一个字节等于八位。1千字节(KB)=1,024字节1兆字节(MB)=1,024KB千兆字节(GB)=1,024MB和1太字节(TB)=1,024GB。文件的大小通常取决于文件的类型及其包含的数据量。以文本文档为例,文件的大小可能只有几千字节,而高分辨率图像或视频文件的大小可

JavaScript教程:如何获取HTTP状态码,需要具体代码示例前言:在Web开发中,经常会涉及到与服务器进行数据交互的场景。在与服务器进行通信时,我们经常需要获取返回的HTTP状态码来判断操作是否成功,根据不同的状态码来进行相应的处理。本篇文章将教你如何使用JavaScript获取HTTP状态码,并提供一些实用的代码示例。使用XMLHttpRequest

如果“最新更新可用后立即获取最新更新”选项缺失或灰显,则你可能正在运行开发人员频道Windows11版本,这是正常的。对于其他人,安装KB5026446(22621.1778)更新后会出现问题。您可以采取以下措施来取回“在最新更新可用时立即获取更新”选项。如何取回“在最新更新可用时立即获取更新”选项?在开始以下任何解决方案之前,请确保检查最新的Windows11更新并安装它们。1.使用ViVeTool转到“Microsoft更新目录”页面并查找KB5026446更新。在您的PC上下载并重新安装更

现代科学在很大程度上依赖于复数的概念,这一概念最初是通过GirolamoCardano在16世纪引入的在17世纪初建立。复数的公式是a+ib,其中a保留html代码并且b是实数。一个复数被认为有两个部分:实部<a>和虚部(<ib>)。i或iota的值为√-1。C++中的复数类是一个用于表示复数的类。C++中的complex类可以表示并控制几个复数操作。我们来看一下如何表示和控制显示复数。imag()成员函数如前所述,复数由实部和虚部两部分组成。显示实部我们使用real()

jQuery技巧:快速获取屏幕高度的实现方式在网页开发中,经常会遇到需要获取屏幕高度的情况,比如实现响应式布局、动态计算元素尺寸等。而使用jQuery可以很便捷地实现获取屏幕高度的功能。下面就来介绍一些使用jQuery快速获取屏幕高度的实现方式,并附上具体的代码示例。方法一:使用jQuery的height()方法获取屏幕高度通过使用jQuery的height


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中