儲存過程語句如下:(區分大小寫)
mysql>delimiter $$
mysql>create procedure sp(age_i int)
->begin
->select *
->from * first
->where age=age_i;
->end $$
mysql>delimiter ;
在mysql裡呼叫這個儲存函式 mysql>call sp(12);
+----+--------+------+------+
|id | name | age | *** |
------+--------+------+-------+
3 mou 12 f
現在想用
c語言呼叫這個儲存過程。**如下。
#include
#include
#include
#include
//#include "winsock2.h"
void main()
else
printf("/n");//換行
} if(mysql_errno(&my_connection))
} }
mysql_free_result(res_ptr); }
mysql_close(&my_connection); }
出現錯誤:
select error: procedure abccs.sp can』t return a result set in the given context
有兩個錯誤原因,一是儲存過程的引數設定不對,它的預設形式是in,而我的目的是需要它返回結果給呼叫它的函式,所以應該是out或inout。二是mysql_query()語句。
儲存過程的正確定義是:
mysql->delimiter $$
mysql->create procedure p(in age_i int,out ming varchar(25))
->begin
->select name into ming from first where age=age_i;
->end $$
mysql->delimiter ;
c語言**:
#include
#include
#include
#include
void main()
else
printf("/n");//
換行}
if(mysql_errno(&my_connection))}}
mysql_free_result(res_ptr);//釋放資源
}mysql_close(&my_connection);//關閉連線
}
MySQL呼叫儲存過程
使用儲存過程,可以使程式執行效率更高,安全性更好,增強程式的可重用性和維護性 儲存過程有多種呼叫方法 儲存過程必須使用call語句呼叫,並且,儲存過程和資料庫相關,如果,要執行其他資料庫中的儲存過程,需要指定資料庫名稱 語法格式 call sp name parameter sp name,為儲存過...
C 呼叫儲存過程
string sconnectionstring server local sqlexpress database forum trusted connection true 04 using sqlconnection conn new sqlconnection sconnectionstrin...
C 呼叫儲存過程
這次專案的數量級在1000萬,所以需要對資料的操作進行優化,儲存過程可以大大減少資料通訊量,其他的優化倒不知道在 有優化的地方 首先要在sqlserver裡面新建儲存過程 右鍵新建即可 使用的命令是 create proc your proc name create proc dbo doinser...