22 Star 178 Fork 31

huzgd / ezdml

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
LGPL-2.1

EZDML精简版

介绍

EZDML精简版是一款国产开源免费跨平台的轻量级数据建模工具,具有轻巧、快速、简便而功能强大的特点,可轻松地进行数据库表结构设计,建立界面数据模型,生成SQL和自定义代码。

注:本仓库为EZDML的精简版,包含完整数据建模功能以及所需要的全部源码,可以轻松地在Windows、Linux、MacOS下编译运行。精简版未包含脚本引擎、界面预览、Excel导入、Pdm导入、ChatGPT生成、批量生成代码和测试数据等扩展功能,如需要编译全功能的版本,可使用EZDML_ord分支。

ezdml_lite_cn

包含功能:

  1. 表结构设计:创建表、字段、主键、外键、索引和注释,界面原型设置:编辑器类型、数据校验、数据生成规则、列显示隐藏等;
  2. 表描述:可直接编辑文字描述快速生成表结构,爱用键盘的人会喜欢这个功能;
  3. 模型图:自动生成模型图;可设计和显示物理/逻辑视图,支持自动布局、平移、缩小放大等操作;
  4. 导入数据库:导入数据库中的已有对象,即所谓的逆向工程,支持ORACLE、MYSQL、SQLSERVER、SQLITE、POSTGRESQL和ODBC、JDBC、HIVE等数据库;
  5. 生成数据库:可生成直接创建数据库的SQL脚本;也可与现有数据库或文件比较,然后生成同步脚本的功能,不至于丢失现有数据;
  6. 支持达梦(DMOCI或JDBC)、人大金昌(PQ或JDBC)等国产数据库。

官网:http://www.ezdml.com

代码仓库:https://gitee.com/huzgd/ezdml

https://github.com/huzgd/ezdml

开发语言

EZDML即EzDML,是Easy Data Model Language(简易数据模型语言)的意思,大约始于2006-2009年。最开始是用Delphi写,后来转到了lazarus下开发,开发语言为Pascal。本仓库代码大概用到了下列技术:

  • Borland Delphi Pascal
  • Free Pascal, www.freepascal.org
  • Lazarus, lazarus.freepascal.org
  • uJSON, Jose Fabio Nascimento de Almeida
  • FCL SqlDB

编译运行

编译步骤如下:

  1. 从lazarus-ide.org下载安装Lazarus+FPC
    • https://www.lazarus-ide.org/
    • 选择适合自己电脑系统的平台版本(Windows/Linux/MacOS)
    • 下载默认推荐版本即可,理论上Lazarus 2.0以上版本均可编译
  2. 下载或GIT克隆本项目代码到本机
  3. 启动Lazarus,打开ezdml_lite.lpi工程,编译运行

代码说明

  1. 本仓库已包含所需要的全部源码,可在Windows、Linux、MacOS下编译运行
  2. 精简版的核心基础库、数据文件格式与正式版完全一致,但未包含脚本引擎、界面设计预览、Excel导入、Pdm导入、ChatGPT生成、批量生成代码和测试数据等相关功能,数据处理的一些细节与正式版有出入,模型图的渲染布局和SQL工具比正式版简单
  3. 精简版未提供脚本引擎,但提供了将原有PAS脚本直接引入源码一起编译的机制,示例参见DML\Scripts\PasGen_*.pas
  4. 代码未经整理,文档注释均欠缺,毕竟原本只是写给我自己看的,没有做到规范
  5. 编译警告也很多。以前在Delphi下是没有警告的,转到lazarus下突然多了很多警告,改不过来,干脆躺平,放弃治疗了
  6. 目前未提供安装程序相关源码和文件,如需要发布,建议在官方绿色版的基础上打包(将编译好的EZDML_lite改名并覆盖掉绿色版的可执行文件),绿色版下载地址:https://gitee.com/huzgd/ezdml_green

下载EZDML

http://www.ezdml.com

https://gitee.com/huzgd/ezdml/releases

https://pan.baidu.com/s/1HI3EQ4n-Lb5Y2s1poNTujA?pwd=8wj2

其它

更多的内容,请参阅官网《EZDML快速上手》、《EZDML常见问题》、《EZDML配置文件》等文档。

huzzz@163.com

http://www.ezdml.com

QQ群: 344282607

EZDML版本历史

2009年2月18日 V1.21 该工具开始开发的时间是2006年4月,最近改进了一下,因此初始版本号取为1.2。

2009年2月22日 V1.22 解决无法指定整数和浮点数字段精度的问题,可在字段属性中用逗号分隔同时指定长度和精度(如12,4)。

2009年6月5日 V1.23 作了一些改进,如导入导出、外键连线,增加对象、方法、事件类型。

2009年7月15日 V1.24 改正了只能生成最后一个索引SQL的问题,尝试处理索引名称过长的问题,对非法和重复的字段名进行检测。

2009年8月29日 V1.30 增加对SQLSERVER和ODBC的导入和生成功能;支持添加多个模型图;生成C++代码。

2009年9月11日 V1.32 生成DML和DQL SQL,导入和生成表注释,模型图中直接添加外键关联,自动记录最后一次的数据库连接信息,另外解决了其它的一些BUG。

2009年9月25日 V1.34 模型图颜色和选项设置、复制图像、BUG修复。

2009年10月11日 V1.35 使用大程序图标,默认语言改为英语。

2009年11月8日 V1.40 支持MYSQL,修复一些BUG

2009年11月25日 V1.42, 2009年11月29日 V1.50 导出到Excel, 以及其它一些改进和BUG修复.

2009年12月19日 V1.52 BUG修复.

2010年4月20日 V1.55 支持PASCAL脚本的模板生成,BUG修复.

2010年9月6日 V1.59 Pascal脚本参数面板,Bug修复.

2010年12月1日 V1.62 查找并从已有表中导入字段,BUG修复.

2010年12月20日 V1.63 支持MySql和SQLServer的自动增长编号字段类型.

2011年3月15日 V1.64 支持拖放文件打开和最近文件列表.

2011年4月7日 V1.71 支持SQLSERVER的表字段注释,增强了对SQLSERVER2005的支持,修复一些BUG。

2011年4月23日 V1.77 对多个表进行批量添加或导入字段,为外键生成创建索引SQL,修复无法导入ORACLE索引的BUG。

2011年5月1日 V1.79 对主键和连线进行颜色设置,为模型图增加滚动条。

2011年5月15日 V1.80 支持在ORACLE和SQLServer之间备份和恢复数据。

2011年6月8日 V1.81 在目录树的右键菜单中增加批量添加删除字段的功能,解决一些BUG。

2011年7月17日 V1.82 文字描述支持新的格式,如"CustName 顾客名称 S(100)". Bug修复.

2011年7月25日 V1.85 支持NSDOA(BA平台数据服务)连接ORACLE. Bug修复.

2011年9月16日 V1.88 支持文本或SQL块. Bug修复.

2011年10月16日 V1.91 支持缩略图模式.

2011年11月2日 V1.92 增加SQL工具,可执行简单SQL.

2012年10月20日 V1.95 增加HTML表单生成和预览. Bug修复.

2012年10月28日 V1.96 支持多字段复合主键,选表生成数据库. Bug修复.

2014年04月27日 V1.97 退出和启动时自动保存和加载最后一次内容,其它一些功能改进和Bug修复.

2014年09月29日 V1.98 特殊拷贝功能,实体颜色自定义, PASCAL脚本支持页面模板(类似JSP和ASP).

2014年12月07日 V1.99 定时自动保存,导出DOC时获取是否物理视图等环境参数,自定义新数据类型下拉,自定义数据库输出类型替换,Bug修复.

2015年02月09日 V2.01 自定义缺省数据类型,修改表时同步修改所有同名表,新增同时显示逻辑和物理名的模式,Bug修复。

2015年04月15日 V2.02 支持ORACLE instant-client,可不连数据库生成SQL,快速加载tmp文件时检查文件时间,Bug修复。

2015年9月7日 V2.03 Bug修复.

2015年10月11日 V2.04 支持Sqlite,Bug修复.

2015年10月19日 V2.06 支持PostgreSQL,支持全局脚本接管事件生成自定义SQL,支持加密保存数据连接密码,Bug修复.

2015年12月26日 V2.11 导出带模型图、界面和代码的word或mht格式文档,支持UTF-8字符集的ORACLE数据库,Bug修复.

2016年5月15日 V2.13 重复打开文件时提示,连线接近时自动拉直,ORACLE序列号开关,新建表模板,字段属性从EXCEL粘贴,Bug修复.

2017年3月23日 V2.14 生成数据库SQL支持重新创建表,Bug修复.

2017年8月5日 V2.15 支持主键上叠加外键,与另一个EZDML模型文件进行对比生成SQL,Bug修复.

2018年1月18日 V2.16 在鼠标位置创建表对象;复制图片默认为PNG格式(按住SHIFT键则为WMF),导出BMP、PNG和JPG格式。临时文件从原文件目录(.tmp)改为保存到用户的临时目录(.~dmh、*.~dmh0),并自动保留所有历史记录,原来.tmp文件作废,请自行备份删除;可在文件菜单里打开临时文件夹,请自行维护或清理历史记录。Bug修复.

2018年9月2日 V2.17 支持批量生成代码文件,Bug修复.

2018年11月4日 V2.18 支持直接在模型图上选择字段、复制名称和双击修改字段,按住ALT直接平移模型图,按住ALT键点左边树上的表直接在模型图中定位,Bug修复.

2018年12月16日 V2.20 描述字增加约束内容,自定义字段类型支持指定相应的物理类型,支持表数据预览,对相近的表自动生成的连线改为直线,PASCAL脚本支持{$I 文件}引用,支持自定义工具菜单,Bug修复.

2019年4月27日 V2.21 增加JSON格式输出,二进制和xml格式也作了修改,Bug修复.

2019年7月20日 V2.22 记录登录历史,添加连接时自动识别一对一外键,描述字支持外键信息,自定义保留关键词库,提供示例模型文件,Bug修复.

2019年8月27日 V2.23 检测文件更改,自动生成拐弯的连线,更新libpq.dll,表名排序,Bug修复.

2019年10月7日 V2.32 自定义表和字段的属性界面(需要在INI中开启),脚本中支持TIniFile和CurField(当前字段),支持Javascript脚本(使用BESEN脚本引擎),改进自动排列算法,主窗口菜单改用ActionList封装。Bug修复.

2019年11月9日 V2.35 拖放复制目录树中的表和字段,自动保存脚本。Bug修复.

2019年12月7日 V2.36 中英文配置文件分离,生成数据库增加粗略比对模式。Bug修复.

2020年1月23日 V2.39 自动排线算法优化,大文件性能优化,导入pdm文件。Bug修复.

2020年1月31日 V2.41 选择时拖空白处平移视图,支持非外键的普通连线,驼峰命名转下划线,数据文件采用UTF8编码。Bug修复.

2020年1月31日 V0.01 EZDML精简版启动。

2020年3月15日 V0.11 EZDML for mac64/linux64/win64 v0.11版。

2020年4月11日 V3.01 增加设置功能,新的“关于”窗口,启用全局事件脚本(PASCAL),采用新的程序图标,Bug修复。

2020年5月10日 V3.03 增加ODBC连接,使用新的PostgreSQL连接库文件,Bug修复。

2020年10月18日 V3.04 表属性多窗口查看模式,描述字内容查找,脚本编辑器横向布局,PKInc自增主键类型。Bugs修复.

2020年11月22日 V3.05 表属性切换查看模式,生成代码增加layuiAdmin模板。Bugs修复.

2021年2月16日 V3.06 HTTP远程连接,JDBC连接服务。搜索所有表字段。Bugs修复.

2021年3月27日 V3.07 在字段列表旁边显示字段属性,缩略图模式下记录独立的坐标位置。Bugs修复.

2021年4月24日 V3.08 自动检测版本更新,查看数据库中表的属性,支持复合索引,整数区分bigint/smallint。Bugs修复.

2021年5月30日 V3.09 全屏模式。Bugs修复.

2021年10月23日 V3.11 选中外键连线时关联字段高亮显示,HTTP_JDBC连接,F9快速切换表对象视图。Bugs修复.

2021年11月02日 V3.12 复制粘贴Excel文本。Bugs修复.

2021年12月18日 V3.21 界面预览和演示数据生成;增加计算字段类型;字段属性完善。Bugs修复.

2021年12月25日 V3.22 生成Markdown格式文档,表“生成”页标签自定义。Bugs修复.

2022年1月2日 V3.23 生成Vue-ElementUI和Baidu-amis页面,运行代码生成,全新的layuiAdmin示例(包含Vue-ElementUI、BaiduAmis和Markdown等的批量生成)。Bugs修复.

2022年1月15日 V3.24 Python脚本调用示例,生成.vue文件并预览,表对象高级属性。Bugs修复.

2022年2月6日 V3.25 表界面属性页调整,添加连接时可创建连接字段。Bugs修复.

2022年2月13日 V3.26 基于vue-element-admin生成可直接运行的前端代码模板(需使用NodeJs)。Bugs修复.

2022年2月27日 V3.27 基于SpringBoot-JPA-swagger2-lombok生成可直接运行的Java后端代码模板(使用JDK8和maven)。Bugs修复.

2022年3月3日 V3.28 右键菜单添加外键链接。Bugs修复.

2022年3月11日 V3.29 字段列表支持复制粘贴。Bugs修复.

2022年3月19日 V3.31 隐藏左边列表目录开关(F11),键盘切换选择模型图中对象(Ctrl+上下左右),从数据库获取测试数据,支持达梦数据库dmoci连接。Bugs修复.

2022年3月27日 V3.32 生成可运行的Erupt代码模板(使用JDK8和maven)。Bugs修复.

2022年4月9日 V3.33 界面原型外观切换(台式机/平板/手机)。Bugs修复.

2022年4月17日 V3.35 表属性中添加表对象关联关系图,简化界面,默认隐藏扩展属性页。Bugs修复.

2022年5月1日 V3.36 生成测试数据SQL,改进SQL工具。Bugs修复.

2022年5月8日 V3.37 生成Erupt代码改进。Bugs修复.

2022年5月22日 V3.38 保存模型文件到数据库,以及从数据库加载模型文件。Bugs修复.

2022年6月4日 V3.39 改进复制功能,可复制多表关联查询SQL、join和insert SQL。Bugs修复.

2022年6月18日 V3.41 自动大小写采用新的带权重词库,支持中文下划线分词。Bugs修复.

2022年7月30日 V3.42 支持导入和生成HIVE,支持创建多对多关联表连接。Bugs修复.

2022年9月24日 V3.43 支持批量导入Excel内容,SQL工具支持单记录显示。Bugs修复.

2022年10月15日 V3.45 修改数据库文件后,自动通知其他用户更新。Bugs修复.

2022年11月06日 V3.46 界面设计说明展示与批量编辑。Bugs修复.

2022年11月13日 V3.47 Bugs修复.

2022年12月3日 V3.48 优化SQL查询工具。Bugs修复.

2023年2月12日 V3.51 支持ChatGPT。Bugs修复.

2023年3月26日 V3.52 增加字段权重设置,可在模型图中突出重要字段或隐藏一些字段。Bugs修复.

2023年6月23日 V3.54 支持拖动表对象夹点改变大小。Bugs修复.

2023年7月23日 V3.55 记住模型图的视图位置。Bugs修复.

2023年12月2日 V3.56 SQL工具支持自动完成(点号下拉字段列表)和简单SQL格式化,模型图支持双外键和自关联连线,Bugs修复.

2024年2月24日 V3.57 增加分组框功能,ORACLE/MYSQL/POSTGRE支持通过ODBC驱动连接,在新窗口中查看模型图,优化SQL查询工具。Bugs修复.

2024年4月20日 V3.58 数据库文件支持锁定/解锁,ODBC字符编码问题处理。Bugs修复.

GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the library's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. <signature of Ty Coon>, 1 April 1990 Ty Coon, President of Vice That's all there is to it!

简介

国产开源免费跨平台的轻量级数据建模工具 展开 收起
Pascal
LGPL-2.1
取消

发行版 (6)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Pascal
1
https://gitee.com/huzgd/ezdml.git
git@gitee.com:huzgd/ezdml.git
huzgd
ezdml
ezdml
master

搜索帮助