环境:
系统:windwos server 2008 32位
数据库:mysql 5.1 for win32
ODBC:mysql 5.1 32位mysql自定义函数
fun1(num integer)
函数中对表做了更新操作ASP用ADO在执行"select fun1(10)"时出错同样的代码、数据库、ODBC驱动在32位win7上没有问题。求大神给招!
系统:windwos server 2008 32位
数据库:mysql 5.1 for win32
ODBC:mysql 5.1 32位mysql自定义函数
fun1(num integer)
函数中对表做了更新操作ASP用ADO在执行"select fun1(10)"时出错同样的代码、数据库、ODBC驱动在32位win7上没有问题。求大神给招!
DELIMITER $$
DROP FUNCTION IF EXISTS `nextval` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `nextval`(seq_name VARCHAR(50)) RETURNS int(11)
BEGIN
UPDATE tas_sequence
SET current_value = current_value + increment
WHERE name = seq_name;
RETURN currval(seq_name);
END $$
DELIMITER ;
Sql="Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=3;"
conn.CursorLocation = 3
conn.open Sqlset Rs = server.createobject ("ADODB.Recordset")
Sql = "select nextval('student_id') seq_id"
rs.open Sql,conn,3,3 '这里报错
DROP FUNCTION IF EXISTS `currval` $$
CREATE DEFINER=`root`@`localhost` FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS int(11)
BEGIN
DECLARE value INTEGER;
SET value = 0;
SELECT current_value INTO value
FROM tas_sequence
WHERE name = seq_name;
RETURN value;
END $$
DELIMITER ;
没有问题,就是实现oracle中的NEXTVAL,CURRVAL,SETVAl吧。
也奇怪我在win7上就不会出问题。可能是mysql版本和ODBC版本的问题吧。
我回去了也用5.5+5.2wODBC去试试。