曾以为windows版本的mysql存在不能使用udf的bug诸提交了一个bug报告。不过
似乎发现是我搞错了,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 win32 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 <mysql.h>
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 1.0
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 f7 for to build the dll.
- copy the my_udf.dll to the environment path directory:
\winnt\system32 for example.
- start the mysql client and issue:
c:\mysql-udf\bin>mysql -uroot -p
enter password:
welcome to the mysql monitor. commands end with ; or \g.
your mysql connection id is 2 to server version: 3.23.52-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, 0 rows affected (0.08 sec)
mysql> select my_name();
mysql> drop function my_name;
query ok, 0 rows affected (0.00 sec)
画蛇添足的作下简要中文说明。
抱歉,这并不是一个bug。下面我粘贴一个以前为某个客户做的简例,假设你有了
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器