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;