20080510 - 为 SQLyog 添加 Paste SQL Statements - Update and Delete 功能
SQLyog 是我尝试过 10 多款 MySQL Client 前端程序后的选择,目前工作中一直使用 SQLyog Community 版,其导出功能很有特色,友好的界面用起来很顺手,而且还在不断更新中。SQLyog 中鼠标悬浮在 Table 上的右键菜单有一个 Paste SQL Statements 功能,能针对单表生成 SQL 语句,遗憾的是,只支持 Select 和 Insert 的生成。很久前就打算为其添加 Update 和 Delete 语句的自动生成功能。今天花了一下午,终于搞定了。记录一下过程,编译好的文件在本文附件有下载。
首先,安装 TortoiseSVN 客户端,用如下命令将源代码下载到本地
svn checkout http://sqlyog.googlecode.com/svn/trunk
用 Visual Studio 2005 打开项目,转化,编译,并修正了 4 个强制转化的错误。
观察了一下项目结构,编程方式是 C++/Windows API,其文本编辑器使用的是开源的 Scintilla 。
因为要修改的功能在快捷菜单里,则全局查找 menu 定位资源,发现实现自动生成 SQL 语句的函数在 ObjectBrowser.cpp 里,分别为 CQueryObject::CreateSelectStmt,CQueryObject::CreateInsertStmt。于是依葫芦画瓢,写了CQueryObject::CreateUpdateStmt 和 CQueryObject::CreateDeleteStmt。
将上面两个方法加入 ObjectBrowser.h 头文件,并在资源文件中添加了菜单资源定义和全局加速键定义。
重新编译,对语句输出格式进行优化,最终得到了附件的版本。现在,打开 SQLyog 选中单表,只要按下快捷键就能分别生成四种语句了。
Alt+Shift+I for insert,
Alt+Shift+D for delete,
Alt+Shift+U for update,
Alt+Shift+S for select
是不是很爽?