DataRabbit 轻量的数据访问框架(07) -- ISP

系统 1498 0
(完全限定类名: DataRabbit.Relation.ISPAccesser

虽然 IRelationAccesser 可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
存储过程不仅可以有返回值,还可以有[in,out]参数,在对存储过程的调用进行封装之前,首先必须抽象存储过程的参数表示。DataRabbit使用 SPParameter 来表示存储过程的参数。
DataRabbit 轻量的数据访问框架(07) -- ISPAccesser
注意,Name属性表示参数名,该参数名不需要带前缀(如"@"),DataRabbit在调用存储过程时会依据数据库的类型自动为其添加合适的参数前缀。

我们可以从DataRabbit的入口点IDataAccesser中获取ISPAccesser引用:
ISPAccesser spAccesser = dataAccesser.GetSPAccesser( null );

ISPAccesser接口中提供了两个方法以实现对存储过程的调用,其定义如下:
public interface ISPAccesser:ITransactionAccesser
{
/// <summary>
/// ExcuteNoneQuery执行命令式的存储过程,可以输出out参数。
/// </summary>
/// <paramname="spName"> 存储过程名称 </param>
/// <paramname="parms"> 所有的[in]和[in,out]参数 </param>
/// <paramname="outVals"> out参数的"名称-值"字典 </param>
void ExcuteNoneQuery( string spName, IList < SPParameter > parms, out IDictionary < string , object > outVals);

/// <summary>
/// ExcuteNoneQuery执行查询式的存储过程,可以输出out参数。
/// </summary>
/// <paramname="spName"> 存储过程名称 </param>
/// <paramname="parms"> 所有的[in]和[in,out]参数 </param>
/// <paramname="outVals"> out参数的"名称-值"字典 </param>
DataSet ExcuteQuery( string spName, IList < SPParameter > parms, out IDictionary < string , object > outVals);
}
代码的注释已经很好的解释了一切,就不再赘言了。

假设,我们现在要调用 复制SqlServer数据库 一文中描述的存储过程,可以这样做:
IList < SPParameter > paraList = new List < SPParameter > ();
SPParameter para1
= new SPParameter ( " newDbName " ,ParameterDirection.Input, " EASNew9 " );
paraList.Add(para1);
SPParameter para2
= new SPParameter ( " dbDataDirPath " ,ParameterDirection.Input, @" C:/ProgramFiles/MicrosoftSQLServer/MSSQL/Data/ " );
paraList.Add(para2);
SPParameter para3
= new SPParameter ( " soureDbName " ,ParameterDirection.Input, " AutoSchedulerSystem " );
paraList.Add(para3);
SPParameter para4
= new SPParameter ( " soureBackupFilePATH " ,ParameterDirection.Input, @" d:/sqlDatabase/AutoSchedulerSystem2 " );
paraList.Add(para4);
IDictionary
< string , object > outParas = null ;

spAccesser
.ExcuteNoneQuery( " CopyDB " ,paraList, out outParas);


转到: DataRabbit 轻量的数据访问框架 -- 序

DataRabbit 轻量的数据访问框架(07) -- ISPAccesser


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论