MySql 存储过程的语法,该怎么解决

MySql 存储过程的语法

项目原来用ms sql,现在改为mysql

用c++ 写的项目,ado连接数据库。

从来没用过mysql,听说只需要更改连接字符串,就使用ado的其他部分不用修改了。

在此之前先创建数据库和存储过程:

数据库创建没什么问题。

存储过程就这么也通不过:

drop procedure if exists proc_tblModelInfo_Insert

create procedure proc_tblModelInfo_Insert(

out ID int,

PersonID int,

FilePath nvarchar(256)

)

begin

  insert into ModelInfo(‘PersonID’,’FilePath’) values(PersonID,FilePath)

  set ID = (select max(‘id’) from ModelInfo)

end;

mysql通不过

求语法,谢谢了

原帖:

http://topic.csdn.net/u/20120525/17/b3a84486-dfa1-4964-aaa2-6e080b4b7ee7.html?seed=195229220&r=78679788#r_78679788

发错论坛,移动到这,两边都给分哈。



DELIMITER $$

DROP PROCEDURE IF EXISTS proc_tblModelInfo_Insert$$

CREATE PROCEDURE proc_tblModelInfo_Insert(

OUT ID INT,

PersonID INT,

FilePath NVARCHAR(256)

)

BEGIN

INSERT INTO ModelInfo(`PersonID`,`FilePath`) VALUES(PersonID,FilePath);

SET ID = (SELECT MAX(`id`) FROM ModelInfo);

END$$

DELIMITER ;



SQL code

drop procedure if exists proc_tblModelInfo_Insert
create procedure proc_tblModelInfo_Insert(
out ID int,
PersonID int,
FilePath nvarchar(256)
)
begin

  insert into ModelInfo(`PersonID`,`FilePath`) values(PersonID,FilePath);
  set ID = (select max(`id`) from ModelInfo);

end


mysql 写存储过程 一般要先定义定界付 

用 DELEMITER

drop procedure if exists proc_tblModelInfo_Insert
DELIMITER $$
create procedure proc_tblModelInfo_Insert(
out ID int,
vPersonID int,
vFilePath nvarchar(256)
)
begin
 insert into ModelInfo(PersonID,FilePath) values(vPersonID,vFilePath);
 set ID = (select max('id') from ModelInfo);
END$$
DELIMITER ;

提问时请把错误信息一同贴出以供别人分析。

问题说明越详细,回答也会越准确!参见如何提问。(提问的智慧)

细节问题,多加注意
在drop procedure if exists proc_tblModelInfo_Insert 后面加分号测不过找我!
应该这下面这样
===============================
drop procedure if exists proc_tblModelInfo_Insert ; //这里需要以分号结束好的
DELIMITER $$

create procedure proc_tblModelInfo_Insert(
out ID int,
vPersonID int,
vFilePath nvarchar(256)
)
begin
 insert into ModelInfo(PersonID,FilePath) values(vPersonID,vFilePath);
 set ID = (select max('id') from ModelInfo);
END $$
DELIMITER ;
=========================================================


drop procedure if exists proc_tblModelInfo_Insert
delimiter$$
create procedure proc_tblModelInfo_Insert(
out ID int,
PersonID int,
FilePath nvarchar(256)
)
begin
insert into ModelInfo('PersonID','FilePath') values(PersonID,FilePath)
set ID = (select max('id') from ModelInfo)
end $$
delimiter;
delimiter$$



drop procedure if exists proc_tblModelInfo_Insert
delimiter$$
create procedure proc_tblModelInfo_Insert(
out ID int,
PersonID int,
FilePath nvarchar(256)
)
begin
insert into ModelInfo('PersonID','FilePath') values(PersonID,FilePath)
set ID = (select max('id') from ModelInfo)
end $$
delimiter;

MySql 存储过程的语法,该怎么解决

相关文章:

你感兴趣的文章:

标签云: