您的位置 首页 > 娱乐休闲

打造自己的PLSQLDEV插件

上一次介绍了用PYTHON安装cx_Oracler的方法,这次介绍用VS C++打造自己的PLSQL插件。

这次插件实现的简单功能,用来示例。例如我们要写IN(1,2,3)来查询,如果IN里面的项是通过EXCEL来得到,如下:

复制到PLSQL DEV里,我们要快速在每项后面添加逗号,如果是字符类型,我们还要在每项上添加单引号与逗号。要是成千上面的数据,要是人为添加这些,估计大家都要疯掉了。这次我们通过插件来实现快速添加。

平时大家下载别人的插件会放在PLSQL DEV目录下的\PLSQL Developer\PlugIn里,这个文件夹旁边有一个PlusInDoc,里面有DEMO与接口的API说明。需要一点点英语水平,加上一点点C++或delphi的功底。里面有CV++的MFC和WIN32版本的DEMO,这次用C++的MFC。DEMO用的是VSC++6.0编写的,我们用到的高级VS版本直接转换即可。

对于文档的说明,说明一下要注意的地方。如说明如下:

void(*IDE_MenuState)(int ID,int Index,BOOL Enabled);

BOOL(*IDE_Connected)();

void (*IDE_GetConnectionInfo)(char **Username,char **Password,char**Database);

void(*IDE_GetBrowseInfo)(char **ObjectType,char**ObjectOwner,char**ObjectName);

void RegisterCallback(int Index,void *Addr)

{

switch(Index)

{

case 10:

(void*)IDE_MenuState = Addr;

break;

case 11:

(void*)IDE_Connected = Addr;

break;

case 12:

(void*)IDE_GetConnectionInfo = Addr;

break;

case 13:

(void*)IDE_GetBrowseInfo = Addr;

break;

}

}

这是C++的函数指针的使用,先声明一个函数指针void(*IDE_MenuState)(int ID,int Index,BOOL Enabled);注意回调函数void RegisterCallback(int Index,void *Addr),这个是PLSQL DEV调来我们的插件接口。case并不是乱写的,index对应的是文档说明的10.所以要添加别的接口时,刻把文档的序号与指针地址对应起来。

直接用VS生成DemoMFC,会得到DemoM,把这个dll放在\plsql deveploper\plugins,重启PLSQL DEV,会看到TOOL菜单下多出一些按钮。说明插件运行成功。

打开DemoM,找到MenuItemInterface函数,可以看到函数里的switch case语句,return就是插件添加的菜单按钮,所以我们只要个性一下这里,只保留两条,并添加如下代码。里面用到的接口在都有说明。

IDE_GetSelectedText—获取PLSQL DEV选择的文本。

IDE——GetEditorHandle—获取PLSQL DEV编辑的句柄。

ToIn—自定义的转换bion,把/r/n替换成,(,/r/n).

SetSelection—设置PLSQL DEV选择的文本内容。

重新生成dll,替换原来的即可。

在此我们就完成了自己的插件。想要更深入的打造,大家就要自行研究那个接口的说明了。

下面是我自己写的插件。

其中第一个导出数据库的视图和包。主要用到的是我们在开发的过程中,经常要把svn和生产环境的包和视图对比,认清修改了什么。所以要先把生产环境的包和视图导出来。然后用BEYOUNG COMPARE来作对比。而导出包和视图要用人工操作的话,我负责的项目比较,会浪费大量时间的。感兴趣的朋友可以找我分享源代码。


责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“打造自己的PLSQLDEV插件”边界阅读