CN103713887A - 一种程序代码生成器 - Google Patents
一种程序代码生成器 Download PDFInfo
- Publication number
- CN103713887A CN103713887A CN201210372966.9A CN201210372966A CN103713887A CN 103713887 A CN103713887 A CN 103713887A CN 201210372966 A CN201210372966 A CN 201210372966A CN 103713887 A CN103713887 A CN 103713887A
- Authority
- CN
- China
- Prior art keywords
- code
- database
- program code
- function
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种程序代码生成器,通过识别出目标数据库的表结构后,按照特定的语法自动生成计算机程序代码,其特征在于,生成的计算机程序代码是基于C#语法的,可以用于访问,修改,删除已知的SqlServer或者Access数据库表中数据的代码,或者根据数据库中表的结构生成相应数据库存储过程的代码。本发明突破了传统计算机软件开发时需要程序员手写输入代码的方式,提高了软件开发的速度和效率。
Description
技术领域
本发明涉及一种程序代码生成器,尤其是一种基于C#语法的,用于访问,修改,删除已知的SqlServer或者Access数据库表中数据的,或者根据数据库中表的结构生成相应数据库存储过程的计算机程序代码自动生成器。
背景技术
计算机程序代码是用来制作计算机软件和硬件驱动,操作系统等工具的最基本的组成单元。每个计算机软件,无论是应用软件,硬件驱动软件,操作系统软件,其最终的生成形式,目前都是通过计算机程序代码编写人员在特定的计算机程序开发工具上,按一定的语法规则手写输入的计算机程序代码而形成的。
然而,随着计算机技术的不断发展和更新,计算机软件系统的规模在不断扩大,目前,规模较大的计算机软件的程序代码已经有几亿行之多,并且随着计算机技术继续不断更新和发展,计算机软件的规模还在不断加大。由此,目前的手工编写计算机程序代码的模式已经在一定程度上限制了计算机软件规模扩大的步伐。
而在基于数据库的计算机应用软件中,对于用于访问,修改,删除已知数据库表中数据的计算机程序代码不仅代码量在整个目标软件系统中占据了相当大的规模,而且该部分代码是基于数据库表结构的具有一定规律性的代码,计算机程序代码编写人员在编写这部分代码时,完全可以借用一些工具自动生成这部分代码。
发明内容
本发明的目的在于:针对以上现有技术存在的不足,在开发基于数据库的软件系统时,提出一种可以按照数据库的表结构和指定的语法C#,自动生成用于访问,修改,删除已知数据库表中数据的计算机程序代码。
为了达到以上目的,本发明的计算机程序代码自动生成器应包含如下组件:
数据库结构识别组件——用以访问数据库,识别出数据库中表的表名及各个字段名,字段的属性,取值范围等信息;
代码生成组件——用以在内存中,根据数据库结构识别组件识别出的信息,按照C#语法生成相应的代码;
存储过程生成组件——用以在内存中,根据数据库结构识别组件识别出的信息,按照SQL语法生成相应的存储过程代码;
目标代码生成器——一个类似于记事本的可编辑工具,生成后的代码显示在该编辑器中,使用者可以编辑生成后的代码。
目前基于数据库的计算机软件系统,对于数据中的每个表的操作具体为:在表中新增一条记录,根据记录的索引号修改一条记录,根据记录的索引号删除一条记录,根据记录的索引号获取一条记录,获取表中的所有记录。本发明的计算机程序代码自动生成器将根据其数据库结构识别组件识别出表结构后,按照C#语法依次生成完成上述操作的函数,以及依据SQL语法生成每个函数需要使用的存储过程。生成的结果显示在目标代码生成器中。
具体的代码生成包括如下的步骤:
步骤一:通过数据库结构识别组件调用第三方组件ADO(ActiveX Data Objects),该组件中的方法可以获取数据库中的表名及字段名,数据库服务器名通过用户在本发明的设置数据库服务器对话框中输入获取;
步骤二:代码生成组件根据获取的表和表名及数据库服务器名,依次生成如下几个函数:
函数1 新增一条记录:
函数名为:AddRec,函数具体完成的操作为:打开数据库连接,获取新增记录各个字段的值,新增记录各个字段的值是通过函数的参数进行传递的,然后执行SQL的Add语句,之后关闭数据库连接,函数结束。
函数2根据记录的索引号修改一条记录:
函数名为:UpdateRec,函数具体完成的操作为:打开数据库连接,获取修改的记录各个字段的值,修改记录各个字段的值是通过函数的参数进行传递的,然后执行SQL的Update语句,之后关闭数据库连接,函数结束。
函数3根据记录的索引号删除一条记录:
函数名为:DelRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Delete语句,搜索记录的索引号通过函数的参数进行传递,之后关闭数据库连接,函数结束。
函数4根据记录的索引号获取一条记录:
函数名为:SelOneRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Select语句,搜索记录的索引号通过函数的参数进行传递,之后关闭数据库连接,返回查询的记录,函数结束。
函数5获取表中的所有记录:
函数名为:SelAllRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Select语句,之后关闭数据库连接,需要返回的记录通过数组传出,函数结束。
如使用者选择需要生成存储过程,则代码生成组件根据获取的表和表名及数据库服务器名,依次生成如下几个存储过程:
新增一条记录的存储过程,根据表名和字段名生成SQL的ADD语句;
修改一条记录的存储过程,根据表名和字段名生成SQL的Update语句,该存储过程需要传入索引号作为参数;
删除一条记录的存储过程,根据表名和字段名生成SQL的Delete语句,该存储过程需要传入索引号作为参数;
获取一条记录的存储过程,根据表名和字段名生成SQL的Select语句,该存储过程需要传入索引号作为参数。
所有的代码生成后,存储在内存中,然后写入到目标代码生成器中。目标代码生成器的编辑区其实就是一个临时的记事本文件,写入代码生成器的过程就是通过调用一个文件对象,使用二进制流对象来写入文件的。代码全部写入到目标代码生成器中后,则完成代码自动生成。用户可以根据自己的特殊需要在目标代码生成器中修改生成的代码,修改完毕后使用者可以将生成的代码直接拷贝到使用者的开发工具里。
具体实施方式
实施例一
本实施例包括如下步骤:
步骤一:使用者在电脑上安装完本发明后,打开执行文件,然后打开设置数据库服务器对话框,在该对话框中选择需要生成代码的目标数据库,输入数据库服务器的用户密码,点击确定连接数据库;
步骤二:连接上数据库后,用户选择需要生成代码的数据库表;
步骤三:选择好数据库表以后,本发明将按照用户的设置自动生成计算机程序代码,生成程序的代码步骤如下所述:
1:通过数据库结构识别组件调用第三方组件ADO(ActiveX Data Objects),该组件中的方法可以获取数据库中的表名及字段名,数据库服务器名通过用户在本发明的设置数据库服务器对话框中输入获取;
2:代码生成组件根据获取的表和表名及数据库服务器名,依次生成如下几个函数:
函数1 新增一条记录:
函数名为:AddRec,函数具体完成的操作为:打开数据库连接,获取新增记录各个字段的值,新增记录各个字段的值是通过函数的参数进行传递的,然后执行SQL的Add语句,之后关闭数据库连接,函数结束。
函数2根据记录的索引号修改一条记录:
函数名为:UpdateRec,函数具体完成的操作为:打开数据库连接,获取修改的记录各个字段的值,修改记录各个字段的值是通过函数的参数进行传递的,然后执行SQL的Update语句,之后关闭数据库连接,函数结束。
函数3根据记录的索引号删除一条记录:
函数名为:DelRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Delete语句,搜索记录的索引号通过函数的参数进行传递,之后关闭数据库连接,函数结束。
函数4根据记录的索引号获取一条记录:
函数名为:SelOneRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Select语句,搜索记录的索引号通过函数的参数进行传递,之后关闭数据库连接,返回查询的记录,函数结束。
函数5获取表中的所有记录:
函数名为:SelAllRec,函数具体完成的操作为:打开数据库连接,然后执行SQL的Select语句,之后关闭数据库连接,需要返回的记录通过数组传出,函数结束。
如使用者选择需要生成存储过程,则代码生成组件根据获取的表和表名及数据库服务器名,依次生成如下几个存储过程:
新增一条记录的存储过程,根据表名和字段名生成SQL的ADD语句;
修改一条记录的存储过程,根据表名和字段名生成SQL的Update语句,该存储过程需要传入索引号作为参数;
删除一条记录的存储过程,根据表名和字段名生成SQL的Delete语句,该存储过程需要传入索引号作为参数;
获取一条记录的存储过程,根据表名和字段名生成SQL的Select语句,该存储过程需要传入索引号作为参数。
所有的代码生成后,存储在内存中,然后写入到目标代码生成器中。目标代码生成器的编辑区其实就是一个临时的记事本文件,写入代码生成器的过程就是通过调用一个文件对象,使用二进制流对象来写入文件的。代码全部写入到目标代码生成器中后,则完成代码自动生成。用户可以根据自己的特殊需要在目标代码生成器中修改生成的代码,修改完毕后使用者可以将生成的代码直接拷贝到使用者的开发工具里。
Claims (3)
1.一种程序代码生成器,可以自动生成计算机程序代码,其特征在于,生成的计算机程序代码是基于C#语法的,可以用于访问,修改,删除已知的SqlServer或者Access数据库表中数据的代码,或者根据数据库中表的结构生成相应数据库存储过程的代码。
2.根据权利要求1所述一种计算机程序代码自动生成器,其特征在于包含如下组件:
数据库结构识别组件——用以访问数据库,识别出数据库中表的表名及各个字段名,字段的属性,取值范围等信息;
代码生成组件——用以在内存中,根据数据库结构识别组件识别出的信息,按照C#语法生成相应的代码;
存储过程生成组件——用以在内存中,根据数据库结构识别组件识别出的信息,按照SQL语法生成相应的存储过程代码;
目标代码生成器——一个类似于记事本的可编辑工具,生成后的代码显示在该编辑器中,使用者可以编辑生成后的代码。
3.根据权利要求2所述计算机程序代码自动生成器,其特征在于:生成后的计算机程序代码还可以被用户编辑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372966.9A CN103713887A (zh) | 2012-09-29 | 2012-09-29 | 一种程序代码生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210372966.9A CN103713887A (zh) | 2012-09-29 | 2012-09-29 | 一种程序代码生成器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103713887A true CN103713887A (zh) | 2014-04-09 |
Family
ID=50406896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210372966.9A Pending CN103713887A (zh) | 2012-09-29 | 2012-09-29 | 一种程序代码生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103713887A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731597A (zh) * | 2015-03-30 | 2015-06-24 | 上海华力微电子有限公司 | 将sql语句应用于工程软件编辑平台的方法 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
-
2012
- 2012-09-29 CN CN201210372966.9A patent/CN103713887A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419544A (zh) * | 2007-10-26 | 2009-04-29 | 镇江雅迅软件有限责任公司 | 一种计算机程序代码自动生成器 |
Non-Patent Citations (1)
Title |
---|
曾小宁: "数据库应用软件开发中程序代码的自动生成", 《广西教育学院学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104731597A (zh) * | 2015-03-30 | 2015-06-24 | 上海华力微电子有限公司 | 将sql语句应用于工程软件编辑平台的方法 |
CN105354036A (zh) * | 2015-11-26 | 2016-02-24 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
CN105354036B (zh) * | 2015-11-26 | 2019-02-01 | 深圳市金证科技股份有限公司 | 数据库操作代码生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107918666B (zh) | 一种区块链上的数据同步方法和系统 | |
CN1153142C (zh) | 通过事务对多个文件实现原子更新的事务文件系统 | |
CN101887365B (zh) | 用于构造基于组件的应用的可执行代码的方法和编译器 | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
CN103092970A (zh) | 一种数据库操作方法及设备 | |
CN101582079B (zh) | 一种对象查询方法和装置 | |
CN110209650A (zh) | 数据规整迁移方法、装置、计算机设备和存储介质 | |
CN104331285A (zh) | 一种代码自动生成方法及系统 | |
CN105205053A (zh) | 一种数据库增量日志解析方法及系统 | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
CN108875077B (zh) | 数据库的列存储方法、装置、服务器及存储介质 | |
CN103577329A (zh) | 一种快照管理方法和装置 | |
CN104102511A (zh) | 一种基于SQL Server的脚本自动升级系统及方法 | |
CN101419544A (zh) | 一种计算机程序代码自动生成器 | |
CN106156070A (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN107851003A (zh) | 用于改进程序性能的字段专业化系统和方法 | |
CN100527131C (zh) | 一种ims数据库互动式访问方法和工具 | |
CN107766519B (zh) | 一种可视化配置数据结构的方法 | |
CN110083617A (zh) | 一种ddl语句的处理方法、装置、电子设备和介质 | |
CN103713887A (zh) | 一种程序代码生成器 | |
US7949509B2 (en) | Method and tool for generating simulation case for IC device | |
CN102043853A (zh) | 一种存储数据的更新方法和装置 | |
CN101894024B (zh) | 一种基于模型库的模型元素一致性保障方法 | |
CN108427572B (zh) | 土地调查数据库更新方法及其更新增量包生成方法 | |
CN102171696A (zh) | 定制资料的生成方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140409 |
|
WD01 | Invention patent application deemed withdrawn after publication |