您现在的位置是: 首页 > InkFx 技术 > Laura.SqlForever 2013

『练手』003 Laura.SqlForever如何扩展 兼容更多数据库引擎
ShuXiaolong 2016-11-28 612人围观
3 条评论
简介 003 Laura.SqlForever如何扩展 兼容更多数据库引擎 数据库引擎插件 在 界面上的体现 导航窗体 的 工具栏 中的 引擎下拉列表 导航窗体 的 树形控件 中的 引擎主节点
     003 Laura.SqlForever如何扩展 兼容更多数据库引擎

     

    数据库引擎插件 在 界面上的体现

           导航窗体 的 工具栏 中的 引擎下拉列表

           导航窗体 的 树形控件 中的 引擎主节点

           登录窗体 的 登陆面板

     

    综上

    扩展一个 数据库引擎 最终 会有三个 地方的 UI体现

    而 工具栏,菜单栏,右键菜单,子节点 则有 另外的扩展 方式

     

    具体代码





     

    代码详解

    以上图代码为例:

    特性 中: Caption 将在 界面展示 时 显示的文本

           Key     程序内部 处理时 的键值(不区分大小写)

           DbEngineType       当前引擎的类型(和 当前类名 保持一致)

           Image     数据库引擎 图标(不指定 其实也没有关系)



     

    数据类型转换接口

           >这里就不列出 接口需要实现 的函数,只顺带说说 这个接口存在的思想:

    >Laura.SqlForever 能够实现 跨数据库 的 结构迁移 数据迁移;

    >但是 不同的数据库引擎 数据类型 各不相同;

    >于是 Laura.SqlForever 实现了 统一类型:所有 数据库类型 和 统一类型 的 互转 是跨数据库类型的核心思想;

     

    操作数据库结构接口

           >包括 读取 数据库 库结构,表结构  &  创建 数据库 库结构,表结构;

     

    登陆面板获取函数 GetLoginPanel()

           >该函数 将 返回一个 UI控件,这个 控件最终 被显示 到 登录窗体中;

     

    创建主数据库节点函数 CreateDataEngineNode()

           >该函数 将 返回一个 TreeNode控件,这个 主节点具体的子节点 Laura.SqlForever 不予干涉;

     

    数据库引擎 树形节点 扩展

    Laura.SqlForever 对 树形控件 主引擎的节点 其实不予干涉 —— 开发者 有 自己的自由;

    但是 Laura.SqlForever 对 树形控件 的 节点扩展 也提供了 额外封装:

           >以简化 扩展代码 的复杂度

           >封装 多线程,在节点 展开时 才 异步获取数据,改善用于体验

           >具体 是 DbTreeNode  DbFolderTreeNode 两个 基类

    具体代码




    代码 就 不予详解

    >上面 IDataTableFolderNode 只是一个 标记接口(没有任何 函数),加上 这个接口 的节点 将具备 Laura.SqlForever 内置 的 右键菜单项 新建表(N) …”

    >不继承 IDataTableFolderNode 也不会影响 程序运行,只不过 这个节点 将失去一个 右键菜单项 而已 —— 而你,可以选择 不使用 内置的右键菜单,自己扩展 右键菜单项;

           >    

    这里的 “新建表(N)…”是 内置右键菜单项 (只针对 IDataTableFolderNode 节点)

    这里的 “刷新(F)”是 内置的右键菜单项(针对 任何 节点)

     

     

     

    Ps.   具体更多 详细信息,可以参见 Laura.SqlForever 的详细源码

    Laura.SqlForever 完全开源,任何 企业或个人 都可以 剪切,复制,删除,更改 Laura.SqlForever 的任何代码片段。

     

     

     

                                                                 舒小龙

                                                            2014-02-12 16:38

     

     

     

第一时间获取智能手机行业新鲜资讯和商业动态,可以访问站长的微博「InkFx」, 如果需要站长陪聊也可以在微信里添加好友,搜索「Shu_Xiaolong」, 还可以通过加入QQ群:「C#实验室」,和网友一起交流技术、共同进步。

文章评论

图文推荐

InkFx博客 有部分文章来源于互联网,版权归属于原作者。本站所有转载文章言论不代表本站观点。
如是侵犯了原作者的权利,请发邮件联系站长(514286339@qq.com),站长收到后立即删除。