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

 

享受本次版本更新境遇的题目:

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 表达。解决的办法是分折成一条一条实施了。

 

总结:

无!

Thanks~~~

 

相关文章