您现在的位置是:首页
>
windows驱动开发 在Windows上的MySQL UDF开发应用
在Wi dow 上的MySQL UDF开发应用 曾以为Wi dow 版本的MySQL存在不能使用UDF的BUG诸提交了一个 ug报告 不过似乎发现是我搞错了 MySQL的技术支持人员给了非常完美的

在Windows上的MySQL UDF开发应用
曾以为Windows版本的MySQL存在不能使用UDF的BUG诸提交了一个bug报告 不过似乎发现是我搞错了 MySQL的技术支持人员给了非常完美的解答 同大家分享一下 下边是原文回复 用户你好 抱歉 这并不是一个bug 下面我粘贴一个以前为某个客户做的简例 假设你有了VC++ 源码分发 并且有一个正常运行的MySQL服务器 我将创建一个UDF它将一个名字: 注意:例子非常简陋 目的是让你了解该如何处理手头的UDF 打开 mysqld dsw 工作区 添加新项目到这个工作区 Project name: my_udf // 项目名称:my_udf 选择 Win Dynamic Link Library // Win 动态连接库 点击 OK 选择 An Empty DLL project // 一个空DLL项目 点击 Finish 点击 OK 添加新文件 my_udf cpp 到项目中: #include #include #include extern C { char *my_name(UDF_INIT *initid UDF_ARGS *args char *is_null char *error); // 兼容C } char *my_name(UDF_INIT *initid UDF_ARGS *args char *is_null char *error) { char * me = my name ; return me; // 调用此UDF将返回 my name } 按 Ctrl+N 来创建一个新文件 选择 text 类型 File name: my_udf def file://文件名:my_udf def 按照下边的内容编辑文件 LIBRARY UDF_EXAMPLE DESCRIPTION Example Using UDF with VC++ VERSION EXPORTS my_name 右击my_udf项目并选择Settings 点 C/C++ 选项卡 选择 General 添加宏 HAVE_DLOPE 到预处理器定义 选择 Preprocessor 添加头文件路径: Additional Include directories 例如: /include 按 F 去编译成 DLL 复制 my_udf dll 到环境变量path定义过的目录 比如 winntsystem 打开mysql客户端 C:mysql udfbin>mysql uroot p Enter password: Wele to the MySQL monitor Commands end with ; or g Your MySQL connection id is to server version: max nt Type help; or h for help Type c to clear the buffer mysql> CREATE FUNCTION my_name RETURNS STRING SONAME my_udf dll ; Query OK rows affected ( sec) mysql> select my_name(); mysql> drop function my_name; Query OK rows affected ( sec) 以下是MySQL技术人员的回信原文 Sorry this isn t a bug Below I pasted a sample I did sometime ago for another user: Ok Assuming you have VC++ and the source distribution and a server running I will create a UDF that returns a name: Note: the sample is ugly but the purpose here is to show you how to handle the UDF Open the mysqld dsw workspace Add New project to the workspace Project name: my_udf Select Win Dynamic Link Library Click OK Select An Empty DLL project Click Finish Click OK Add a new file called my_udf cpp to the project: #include #include #include extern C { char *my_name(UDF_INIT *initid UDF_ARGS *args char *is_null char *error); } char *my_name(UDF_INIT *initid UDF_ARGS *args char *is_null char *error) { char * me = my name ; return me; } Type Ctrl+N for to create a new file Select text type File name: my_udf def Edit the above file with the below contents: LIBRARY UDF_EXAMPLE DESCRIPTION Example Using UDF with VC++ VERSION EXPORTS my_name Right Click the my_udf project and select Settings Click the C/C++ tab Select General in the Category Combo Add the macro HAVE_DLOPEN to the PreProcessor definition Select Preprocessor in the Category Combo Add the include path to the text box: Additional Include directories e g: /include Press F for to build the DLL Copy the my_udf dll to the environment path directory: winntsystem for example Start the mysql client and issue: C:mysql udfbin>mysql uroot p Enter password: Wele to the MySQL monitor Commands end with ; or g Your MySQL connection id is to server version: max nt Type help; or h for help Type c to clear the buffer mysql> CREATE FUNCTION my_name RETURNS STRING SONAME my_udf dll ; Query OK rows affected ( sec) mysql> select my_name(); mysql> drop function my_name; Query OK rows affected ( sec) lishixinzhi/Article/program/MySQL/201311/29409 很赞哦! (1025)
相关文章
- 数据库软件发展 软件开发中有很多数据库,如何自己设计一个数据库,不是创建数据库,而是用开发语言编写一个数据库。
- 数据库的应用实例 Visual C#实现DB2数据库的编程例子
- 数据库开发工具 Visual C++开发工具与调试技巧整理[2]
- 数据库开发工具 Visual C++开发工具与调试技巧整理[1]
- 消息队列事务 消息队列在VB.NET数据库开发中的应用
- 常用控件 使用VB.NET开发自定义Windows控件
- 程序开发是干什么的 基于Oracle的高性能动态SQL程序开发
- windows资源管理器是啥 Windows群集开发:6)编写资源DLL
- vswindows窗体 .net中Windows窗体间的数据交互(一)
- vs中怎么创建一个数据库 在.NET中使用MySql数据库
爱学记

微信收款码
支付宝收款码