在Access自身的帮助中看到了Create Procedure语句。
测试了老半天,终于发现了诀窍:
必须使用OleDb连接才能使用Create Procedure语句。
ODBC连接不支持该语句,提示Create Table语法错误。
创建了存储过程后,使用Office Access工具打开数据库,在“对象 - 查询”中能够看到你创建的存储过程。
创建存储过程的语法:
CODE
Create Procedure YourProc
(
@param1 varchar(254),
@param2 int
)
As
(
select * from Table1 where ID>@param2 and username=@param1
)
查询数据时只需要使用:
Rs.Open "YourProc 参数1,参数2,参数3", Conn
或者
Conn.Execute("exec YourProc 参数1,参数2,参数3")
第二个例子:
直接在库里创建,参考:
//**************************************************************
// Stored Procedure ListBySubject_Sample
// CREATE procedure ListBySubject_Sample
// (
// @SubjectID Integer
// )
// AS
// SELECT top 5 BookID, BookTitle, Author, Price, Retail
// FROM Products
// where SubjectID = @SubjectID
// RETURN
//
// GO
//**************************************************************
SqlDataReader GetSpecials_Procedure(SqlConnection currentConnection)
{
SqlDataReader myDataReader;
Object my_DBNull;
try {
my_DBNull = Convert.DBNull;
SqlDataReader myReader;
int subjectidin = 21;
SqlCommand myCommand = new SqlCommand();
myCommand.Connection = currentConnection;
myCommand.CommandType = CommandType.StoredProcedure;
myCommand.CommandText = "LISTBYSUBJECT_SAMPLE";
myCommand.Parameters.Add(new SqlParameter("@SubjectID",
SqlDbType.Int, 4, ParameterDirection.Input,
true,0,0,"",DataRowVersion.Default, my_DBNull) );
//set @SubjectID parameter value to 21 (Specials)
myCommand.Parameters[0].Value = subjectidin;
myDataReader = myCommand.ExecuteReader();
return (myDataReader);
}
catch (SqlException e) {
throw e;
}
}