用EMS的sql manager当DB2的客户端效果怎么样
最近在用友做项目,用得数据库是db2,以前从来没用过,但是对于写程序来说,啥数据库都一样,都是那几个语句,能执行就行。
说是这样说,但是真用上就发现问题了,最大的就是没有好的客户端工具,网上搜了很多,什么toad、quest都用了,感觉用着都不爽,怎么都比不了oracle下的plsql。写个sql语句,那叫一个费劲,想修改个数据,也叫一个费劲,尽管toad支持代码自动提示,但是速度太慢了,而且界面很乱,看着都晕;quest呢,怎么用都不习惯,连代码提示都没有。。而且这些客户端的快捷键和我原来的习惯完全不一样,本来用eclipse就够别扭的了,再加上这些软件,我就想当的郁闷。。。
这种问题还是自己动手吧,咱就创造一个db2的客户端,专门用来执行sql语句和数据编辑。就这样,sqleditor的雏形就在脑中开始构建了,用自己最熟的.net写一个吧,原型就是plsql。
软件实现的主要功能:项目可行性研究报告
1.采用IBM.Data.DB2连接db2,自动保存登陆信息到本地
2.支持select语句查询并显示结果,如果是单表查询,可以直接修改数据,操作方式与plsql类似(不用写for update)
3.支持批量执行insert,update,delete语句,对返回值和错误信息进行分组。
4.支持代码提示,这包括所有sql语法的关键字、登陆数据库的所有表名、sql语句中的别名(如a1)、指定表的所有列名。
5.对于单表查询,支持将查询结果导出为insert语句。
6.支持将查询结果复制到excel,也支持将excel数据复制到编辑表格中进行insert或update(excel列必须与编辑表格列一致)
7.独立事物提交和回滚,每个窗口均为独立事物。
8.执行select语句,只返回少量数据,避免大数据量的死机(与plsql一致),查询时支持停止查询
9.支持冻结列
10.支持单条显示查询结果(类似plsql,但是单条显示时不支持编辑)
11.支持查看表结构(不支持编辑)
当然,本软件还支持sqlserver2000和sqlserver2005,将SQLEditor2.exe.config中的databasetype改为sqlserver2000或sqlserver2005即可,效果与db2的是一样的
由于这个软件是在做项目的过程中一点点开发的,没有什么系统的设计,也没做特别的优化,本人也不是专业计算机出身,一切都是为了解决实际问题写的,所以bug相当多,在用友同仁的指点下,已经修正了很多,希望使用的朋友多多包容。此软件已经在项目组里使用了很长时间,开发和实施都在用,呵呵,我很欣慰啊~~
如果有正在使用db2数据库的朋友,可以考虑一下我的sqleditor,呵呵,纯免费的(虽然使用了破解的flexgrid控件),在使用过程中有什么问题,也可给我发邮件,我会尽快解决。
软件更新信息:
一个基于.net2.0的sql编辑器,支持语法高亮,支持代码自动补全,支持全表格数据编辑,支持数据导出excel和insert语句
---------------------------------------------------------
1.0.2.1 修正连接db2时报“未注册IBMDADB2”提供程序”的错误,引入IBM.Data.DB2,采用db2connection连接数据库
1.0.2.0 增加对sqlserver2000和sqlserver2005的支持,增加冻结列功能
1.0.1.5 增加退出保存提示的全否按钮
1.0.1.3 修改查询结果显示不全的bug,修改新增窗口不能执行sql的bug
1.0.1.2 支持从nclog内启动
1.0.1.1 修改复制到excel和从excel粘贴的错误,增加行选择模式,用户数据导出
1.0.1.0 修改批量执行换行情况sql的bug,修正保存数据时事物的bug,关闭时,增加是否提交事物的提示
1.0.0.10 修改了无记录情况下点击编辑报错的错误
1.0.0.9 调整了导出bug,和导出方式
1.0.0.8 修正了登录时取消死机的bug
1.0.0.7 修正了输入错误sql死机的问题(insert update delete)
1.0.0.6 修正了输入错误sql死机的问题(select)
1.0.0.5 增加了SQLSERVER的支持
1.0.0.4 修正了更新数据时,主键类型不准确的bug;增加了批量执行选中行sql的功能
1.0.0.3 新增了批量执行sql的功能,修正了以普通方式执行多个sql,失败后锁表的问题;增加了db2下保存登陆信息并且根据服务器不同自动带出的功能
1.0.0.2 修正了点击“编辑”按钮的bug:如果列名和from之间有多个空格,则点击编辑报错的问题
1.0.0.1 更新了导出insert语句的问题,如果数据库中的值为“”且数据类型为char,在执行insert后,该列会变成若干空格;此处修改了一下,如果为“”,则insert语句中为null,不为''
后期准备在增加一些数据库的支持,如mysql,sqllite等等(oracle就算了,plsql已经相当优秀了,哈哈)