DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

前言:


好久没写文了, 距离上一篇文章是3个月前的事了,虽然工作很忙,主要还是缺少写作的内容和激情,所以没怎么动手。

之前有一个来月不断面试不同层次来应聘的人员,很有想写文的冲动,后来还是忍住了。

估计写了也是那种说人坏话、恨铁不成钢的情绪文,没啥营养,所以情绪过了就没想写了。

在公司除了管理上的事情之外,另外也研发了一套适用信息系统的快速开发框架,这个有机会再写写文和大伙分享了。

下面言归正文了。

背景:

关于这个DBImport工具,发布的版本不多,仅有:V1.0、V2.0、V3.0、V3.2和今天发布的V3.3。

由于自己平时用到这个工具(导数据、导数据脚本、生成数据库文档)的频率并不频繁,

加上上一个版本已经很稳定,基本满足个人需求,所以更新的频率不高,从V3.0开始,一年多才发布一个版本。

此次版本更新的动力主要来自(付费或非付费)用户的需求和CYQ.Data底层框架的驱动。

下面看看历史正文:

DBImport V3.3版本更新的内容如下:

1:增加MSSQL、MySql、Oracle间的数据互导时,同时转换相关的字段说明。

PS:导数据的时候,把说明也带过去,如果你想复制公司的一个数据库,又没有导入导出备份等权限时,用这工具导就O了。

2:数据库脚本导出增加字段说明脚本。

PS:有了1,2也顺理出来了。

3:增加小数位的处理,各数据间互导时不会出现精度丢失。

PS:之前的版本在小数位上,如果需要精准导过去,需要手工处理下生成的表结构,改好小数再导,这次直接做足这方面的事了。

4:数据库文档导出增加小数位字段显示。

PS:有了3,4也顺理出来了。

5:增加N种数据类型的处理,这些数据类型可能不见常。

PS:这个说的比较泛,是因为把MSSQL的所有类型都给处理了,底层代码也改了不少,所以东西太多就用更泛的词来解释了。

6:配置项增加是否使用存储过程分页设置。

PS:由于底层CYQ.Data框架去掉Oracle的分页存储过程,对于MSSQL的分布存储过程也增加了配置项可不启用,所以软件上也多了这么个配置项。

7:配置项增加以下操作项:

A:批量插入【包含主键】

B:批量插入【忽略主键】

C:批量更新【根据主键自动识别】

D:插入或更新【根据主键自动识别】

PS:这个功能很强大,通过D选项,几乎可以实现两个数据库间的数据同步,而且重复导N次也不怕不怕了。


下载地址:
http://www.cyqdata.com/download/article-detail-42517

新版上图:

分享本次版本更新遇到的问题:


1:MSSQL:


A:timestamp 类型,存储的是二进制数据,其它数据库类型是日期,需要特殊处理。

B:识别各数据库版本号,可以通过Connection对象的ServerVersion属性获取,以前竟然没在意这个字段。

C:使用SqlBulkCopy批量插入,要注意数据长度问题,如果长度被截断,会引发MSSQL服务直接挂掉,很变态的结果。

D:numeric 类型木有对应的SqlDbType。

E:当where in id(1,2,3,4,...) 表达式直接上1万时,MSSQL2000直接就超时挂了,其它版本数据库正常。

F:MSSQL2000 木有Xml字段,同样也木有max相关的东西,都需要转换其它类型处理。

G:向MSSQL数据库里插二进制数据,可以这么整:

UPDATE AllType SET
b5=newid(),
-- b7=‘<aa>dddd</aa>‘
a1=(SELECT * FROM OPENROWSET(BULK N‘C:\Users\cyq\Pictures\ico\taobao.ico‘, SINGLE_BLOB) AS aa)


WHERE id=1

2:SQLite:

A:如果字段为自增,那么这个字段必须为主键,而且只能存在这一个主键。

B:如果为自增加,数据库脚本关键字字义必须提前,不能后面定义,如:

正解的:
"ID" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
错误的:
"ID" INTEGER  AUTOINCREMENT NOT NULL,
PRIMARY KEY ("ID")

C:对于GUID类型的字段,由于存储结构为16进制,所以查询比较麻烦,需要进行以下的转换后,才能进行比较查询:

string gv=BitConverter.ToString(new
Guid(“509e4e37-43ed-4e3d-b3bc-1c0929f0d151”).ToByteArray()).Replace("-", "");

最后的 条件就变成where id=x‘gv这串东西‘

3:Access:

A:对于GUID,正常是where
id=‘509e4e37-43ed-4e3d-b3bc-1c0929f0d151‘,但是这种条件只有在查询和删除时是正常的,更新的时候,还得这么写:

where id=‘{509e4e37-43ed-4e3d-b3bc-1c0929f0d151}‘ 所以有事没事都自己补加个括号吧。

4:MySql:

A:对于Text或Blob字段,不能设置为主键。

B:对于TinyInt字段,想用0-255,应该定义成:TinyInt(3) UNSIGNED

C:只能存在一个自增列,若存在,必须定义为主键。

D:(中文内容或注释)乱码问题还是去配置MySql安装目录下my.ini的编码。

5:Oracle:

A:对于设置为Not Null 属性的字段,不允许插入空值,解决的方法是插入一个空的字符串。

B:ORA-08002: 序列 SEQ1.CURRVAL
尚未在此会话中定义,这个问题需要先调用SEQ1.nextval。

C:对于where id in(1,2,3,4,5...) 最大表达式为1000,超过这个数,需要分拆成where id in(1,2,..1000)
or id in(1001,1002...2000)...

D:批量执行多条语句时,一般可以用:

begin

    语句1;
    语句2;

    语句3;
end;

但是也有用不了的时候,比如语句是comment on column 表.字段 is
说明。解决的方法是分折成一条一条执行了。

总结:


时间也不早了,明天还得上班,得下了,对于仗义留言给32个赞支持的哥妹姐弟:

这两天只要将软件上的联系作者(Tab)下的本地信息发往联系信息下的邮箱地址,将有概率获得随机送出的软件注册码。

Thanks~~~

DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备),布布扣,bubuko.com

时间: 2024-10-12 10:06:51

DBImport v3.3 中文版发布:数据库数据互导及文档生成工具(IT人员必备)的相关文章

DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

前言: 距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了. 其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了. 至于工作上的事,之前有半年时间跑去学英语.考驾照.到健身房请私教,远离了一下代码的世界,现在又回归了. 最近上班了,新的公司需要招.NET系.产品经理,有兴趣的可以左侧扣我(我部门要人,地点广州). 另外:阿里最近收购了一家公司,也需要Java系的高手和测试人员,有兴起的也可以扣我(我朋友的部门要人,地点广州). 嗯,闲话少说,看看工具的

DBImport v3.5 中文版发布:数据库定时同步及文档生成工具(IT人员必备)

前言: 趁着最近的休息时间,只能多勤快些:多写代码,多更新文章. 因为一旦投入新的工作,估计博客又会恢复到一年才产几篇的状态. 对于DBImport,因为用户的意见,增加了一个亮点功能,让软件B格升为数据库时时同步工具,所以值的介绍一下. 相比上一版本的主要功能更新: 1:优化MySql的导入效率. 2:增加定时功能(B格提升到时时数据同步功能). 3:优化导出的表脚本和数据脚本. 4:从.NET 2.0 升级编绎成.NET 4.0 版本:(主要是为了支持Oracle:Oracle.Manage

【C#附源码】数据库文档生成工具支持(Excel+Html)

[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的编写了数据库文档生成工具,供大家交流学习之用,与程序员共勉.     该工具为C#控制台,以NPOI为基础,操作Excel.简单方便,简单配置.两次回车,OK!即可生成清晰的数据库文档.另外,支持生成HTML文档.源码大小7MB,OS上传不了,放到百度云盘里了:http://pan.baidu.co

数据库文档生成工具

技术上主要采用的 C#+Dapper+Npod ,开发工具为Vs2013,基于Net4.5框架. NPoi public void CreateToWord(List<string> list,string conStr,string db) { XWPFDocument doc = new XWPFDocument(); //创建新的word文档 XWPFParagraph p1 = doc.CreateParagraph(); //向新文档中添加段落 p1.Alignment = Para

数据库文档生成工具(1)

前端时间,有个同事离职了.然后在交接的过程中,数据库文档的缺乏一直是我心中的一个梗.然后就花了些时间写了个小工具.先上效果吧. 界面效果: 因为视图.存储过程.函数.触发器的描述在数据库里是找不到的,所以我是新建了个数据库专门用来存放这些描述(默认第一次的时候函数的描述基本都是空的,之后从数据库中去取) 下面放一些关键的SQL代码: 获取某个数据库里的所有表: 1 select newid() as Id,isnull(f.value,'') as Remark,'Table' as Objec

mongodb 基本的概念-数据库、集合、文档

mongodb中基本的概念是数据库.集合.文档. 下表将帮助您更容易理解Mongo中的一些概念: SQL术语/概念      解释/说明   MongoDB术语/概念 解释/说明 database 数据库 database 数据库 table  表 collection 集合 row                                          记录行                            document                           

基于C#.NET的动态Word文档生成及数据填充研究

利用C#.NET设计的管理信息系统应用非常广泛,但其报表往往是利用水晶报表或其它工具形成固定式报表,这样不便于修改和电子文档的保存及传递,如果能将输出结果写入到Word文档中这样就解决了这个问题.现从以下几个方面介绍如何利用C#.NET来控制Word文档的操作.1 利用C#.NET生成和设置Word文档我们用VS2008中的C#.NET来实现的,所以要安装好VS2008.在编程之前必须从“项目”菜单上“添加引用”对话框的“COM”选硕卡中添加对类型库的引用,并在程序首部加入“usingWord;

API文档管理工具-数据库表结构思考.

API文档管理工具-数据库表结构思考. PS: 管理工具只是为了方便自己记录API的一些基本信息,方便不同的开发人员 (App Developer, Restful API Developer)之间的工作协调,同时也是由于本人不擅长word文档编写,程序及设计简单,大牛勿喷! API基础信息表 CREATE TABLE API_Infor 2 ( 3 ApiID uniqueidentifier PRIMARY KEY 4 ,ApiCategory int 5 ,ApiSupport nvarc

使用DITA-OT发布一份CouchBase Server文档

最近需要学习CouchBase Server.而CouchBase Server官方网站访问速度非常慢,所以尝试使用DITA-OT发布一份本地文档.(其实CouchBase Server官网上的文档也是用DITA-OT发布的.) DITA Open Toolkit简称DITA-OT,是一款基于DITA标准的文档的发布工具.DITA-OT的官方文档参见http://www.dita-ot.org/dev/getting-started/installing- client.html. 我在下载DI