没有合适的资源?快使用搜索试试~ 我知道了~
首页PL/SQL Developer插件开发指南(2.10版):创建扩展功能的API详解
PL/SQL Developer插件开发指南(2.10版):创建扩展功能的API详解
需积分: 0 0 下载量 56 浏览量
更新于2024-07-16
收藏 133KB PDF 举报
本资源是关于PL/SQL Developer的插件开发文档,版本为2.10,它是针对PL/SQL Developer这款集成开发环境(IDE)的一项扩展功能。随着2.10版本的引入,PL/SQL Developer提供了插件接口,旨在方便开发者在外挂式地添加新的功能到该工具中。这些插件主要用于包含不适合内建的特定公司或产品特性的功能,比如定制化的工具或者商业应用(即使有商业用途也不必担心许可证问题)。 插件开发的核心是一个动态链接库(DLL),这意味着使用支持创建DLL的编程语言,如C++,就可以构建PL/SQL Developer插件。在PL/SQL Developer启动时,它会在预设的目录下搜索*.dll文件,只要这些文件包含了关键函数,就会被自动加载。如果发现一个或多个插件,用户可以在配置菜单中激活或停用它们。 插件接口采用C++风格设计,这意味着如果你使用的是非C++语言,例如Delphi,你需要确保你能够适配这种接口,可能需要进行一些额外的工作来确保代码的兼容性。此外,文档还提到了PL/SQL Developer官方可能会在其网站上发布一些插件供用户免费使用,同时也会为愿意推广的商业或非商业插件提供支持。 这份文档详细解释了如何利用PL/SQL Developer提供的API来开发插件,包括编程模型、加载机制以及与IDE集成的方式。这对于那些希望扩展PL/SQL Developer功能,提升工作效率,或希望开发具有商业价值的插件的开发者来说,是一份宝贵的参考资料。开发者可以根据自己的需求和技术背景,利用这份文档指导实践,定制个性化的PL/SQL Developer增强工具。
资源详情
资源推荐
was successful.
Plug-In Export functions
RegisterExport
Available in version 500
C++ char* RegisterExport()
Delphi function RegisterExport: PChar
Use this function if you want to add an export option for (result) grids. The name you
return will be the name that is displayed in the popup menus (next to html, xml, …).
See the chapter about adding export options.
ExportInit
Available in version 500
C++ BOOL ExportInit()
Delphi function ExportInit: Boolean
First call after an export request.
You can ask the user for a filename and/or initialize variables.
Return False if you want to cancel the export.
ExportFinished
Available in version 500
C++ void ExportFinished()
Delphi procedure ExportFinished;
The export has finished.
ExportPrepare
Available in version 500
C++ BOOL ExportPrepare()
Delphi function ExportPrepare: Boolean
This function allows you to prepare for the actual data.
All values received with Exportdata before this function is called are column headers,
and all values received after ExportPrepare is data.
The return value allows you to signal if the prepare was processed correctly.
ExportData
Available in version 500
C++ BOOL ExportData(char *Value)
Delphi function ExportData(Value: PChar): Boolean
One cell of data, this can be the column description or the actual data.
If you need one or more of these functions, export them from the Plug-In DLL. When a function is
exported, PL/SQL Developer will call it. All these functions are very straightforward, the description
should give you enough information.
Callback functions
Callback functions are functions within PL/SQL Developer that you can use in your Plug-In. They need
to be “activated” by the RegisterCallback function, so you need to export this function from your Plug-
In DLL.
Plug-In Callback function
RegisterCallback
C++ void RegisterCallback(int Index, void *Addr)
Delphi procedure RegisterCallback(Index: Integer; Addr: Pointer)
There are several functions in PL/SQL Developer that you can use from your Plug-In.
With this function you can get access to the callback functions you need.
The Index is related to a specific callback function while the Addr parameter holds the
address to this function.
If you want to use PL/SQL Developer callback functions you need to create a declaration of these
functions and assign them an address via the RegisterCallback function. RegisterCallback is called for
every callback function, identified by a unique index, and passes the corresponding function address.
In Delphi this would look like this:
Var
IDE_MenuState: procedure(ID, Index: Integer; Enabled: Bool); cdecl;
IDE_Connected: function: Bool; cdecl;
IDE_GetConnectionInfo: procedure(var Username, Password, Database: PChar); cdecl;
IDE_GetBrowserInfo: procedure(var ObjectType, ObjectOwner, ObjectName: PChar); cdecl;
procedure RegisterCallback(Index: Integer; Addr: Pointer); cdecl;
begin
case Index of
10 : @IDE_MenuState := Addr;
11 : @IDE_Connected := Addr;
12 : @IDE_GetConnectionInfo := Addr;
13 : @IDE_GetBrowserInfo := Addr;
end;
end;
In C++ this would look like this:
void (*IDE_MenuState)(int ID, int Index, BOOL Enabled);
BOOL (*IDE_Connected)();
void (*IDE_GetConnectionInfo)(char **Username, char **Password, char **Database);
void (*IDE_GetBrowserInfo)(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_GetBrowserInfo = Addr;
break;
}
}
The previous example only defined four callback functions. Below you will find the complete list of all
callback functions, with index, name and a brief description:
SYSTEM Info functions
1
SYS_Version
C++ int SYS_Version()
Delphi function SYS_Version: Integer
Returns the PL/SQL Developer main and subversion, for example 210
for version 2.1.0. This might be useful if you want to use functions that
are not available in all versions.
2
SYS_Registry
C++ char* SYS_Registry()
Delphi function SYS_Registry: PChar
Returns the registry root name of PL/SQL Developer in
HKEY_CURRENT_USER (usually “Software\PL/SQL Developer”). If you
want to save your settings in the registry, you can create a section within
the PL/SQL Developer section.
Note: In PL/SQL Developer 3.1, the registry section is moved to:
(“Software\Allround Automations\PL/SQL Developer”)
3
SYS_RootDir
C++ char* SYS_RootDir()
Delphi function SYS_RootDir: PChar
The directory where PL/SQL Developer is installed, for example
“C:\Program Files\PLSQL Developer”.
4
SYS_OracleHome
C++ char* SYS_OracleHome()
Delphi function SYS_OracleHome: PChar
The Oracle directory, for example “C:\Orawin95”
5
SYS_OCIDLL
Available in version 300
C++ char* SYS_OCIDLL()
Delphi function SYS_OCIDLL: PChar
Returns the path of the OCI DLL that is used by PL/SQL Developer. If
剩余31页未读,继续阅读
kaiixing
- 粉丝: 13
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功