2 选择数据库
mysql>use test
3 查询当前数据库有哪些存储过程
mysql>show procedure status where Db='test'
4 创建一个简单的存储过程
mysql>create procedure hi() select 'hello'
5 存储过程创建完毕,看怎么调用它
mysql>call hi()
显示结果 mysql>call hi()
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
6 一个简单的储存过程就成功了
创建存储过程mysql>delimiter $ -- delimiter $是设置 $为命令终止符号,代替默认的分号,因为分号有其他用处.
mysql>create procedure sp_test(IN pi_id int, OUT po_name varchar(10))
->begin
->select * from test.tb_test
->select tb_test.name into po_name from test.tb_test where tb_test.id = pi_id
->end
->$
Query OK, 0 rows affected (0.00 sec)
mysql>delimiter -- 恢复分号作为分隔终止符号
5.调用存储过程
mysql>set@po_name=''
Query OK, 0 rows affected (0.00 sec)
mysql>call sp_test(1,@po_name)
1、如果sql代码太长的话,要用分段执行。2、你的存诸过程是生成sql脚本产生的话,注意:在SQL里GO是可以执行的。但在Tadoquery里是不行的,所以要把GO去掉。
3、你在给Tadoquery添加SQL语句时,如果你是从控件中读取sql语句,比如adoquery1.sql.add(memo.lines[i])注意整条语句不要让拆分,就是小心自动换行。
比如:
select
变成了
sel --这里换行了
ect
那他当然报语法错误了。
你把具体的报错信息贴出来看看!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)