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

简介: (完全限定类名:DataRabbit.Relation.ISPAccesser)       虽然IRelationAccesser可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
   (完全限定类名:DataRabbit.Relation.ISPAccesser) 
   
   虽然IRelationAccesser可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
   存储过程不仅可以有返回值,还可以有[in,out]参数,在对存储过程的调用进行封装之前,首先必须抽象存储过程的参数表示。DataRabbit使用SPParameter来表示存储过程的参数。

   注意,Name属性表示参数名,该参数名不需要带前缀(如"@"),DataRabbit在调用存储过程时会依据数据库的类型自动为其添加合适的参数前缀。

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

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

        
///   <summary>
        
///  ExcuteNoneQuery 执行查询式的存储过程,可以输出out参数。
        
///   </summary>
        
///   <param name="spName"> 存储过程名称 </param>
        
///   <param name="parms"> 所有的[in]和[in,out]参数 </param>
        
///   <param name="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:\Program Files\Microsoft SQL Server\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 轻量的数据访问框架 -- 序 
目录
打赏
0
0
0
0
8
分享
相关文章
非常轻量、高性能、可集成、可扩展的流程引擎compileflow
compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。
高性能数据存储有哪些方式
高性能数据存储有哪些方式
186 0
一日一技:如何实现一个轻量插件系统
一日一技:如何实现一个轻量插件系统
167 0
一日一技:如何实现一个轻量插件系统
阿里云轻量级服务器初探
这两天突然想捣鼓捣鼓之前买的轻量级服务器 首先我参考了https://yq.aliyun.com/articles/690601?spm=a2c4e.11155435.0.0.4ea03312jPWUpt这个网页下的教程 按教程上的链接下了个Xshell,Xftp 6 两个远程控制服务器的软件,这两个软件确实也比较好用。
3970 0
C#轻量级高性能日志组件EasyLogger(六)
一、课程介绍 本次分享课程属于《C#高级编程实战技能开发宝典课程系列》中的第六部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集、整理和完善此系列课程! 一、本高级系列课程适合人群如下 1、有一定的NET开发基础。
3199 0
DataRabbit 轻量的数据访问框架(19)-- 读写分离与隔离级别
在高并发的系统中,我们常采用多数据库分散放置、读写分离、细粒度的隔离级别设定等策略来提高系统的性能。DataRabbit3.3 以及以上版本对这三种策略都给予了内置的支持。 (1)数据库分散放置:对于较大型的系统,在设计数据库时,我们可以根据业务范围将其设计为多个数据库,而不是一个,然后将这些数据库部署在不同的物理服务器上,以分担负载。
869 0
DataRabbit 轻量的ORM框架(17)-- 使用DataRabbit的最佳实践
在DataRabbit 轻量的数据访问框架(12)-- 将DataRabbit融入架构 一文中介绍了如何将DataRabbit与三层架构结合起来,但是,在实际的项目中,每一层是如何使用DataRabbit的了?本文将展示作者在项目中使用DataRabbit的标准做法。
727 0
DataRabbit 轻量的数据访问框架(10) -- IPagerManager
(完全限定类名:DataRabbit.Core.IPagerManager)   DataRabbit框架提供了对单表查询的结果进行分页的功能,这就是IPagerManager所完成的目标。我们可以从DataRabbit的入口点IDataAccesser中获取IPagerManager引用:     PagerParameters param = .
818 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等