World Of ιζσεα.

The Dark Time Will Pass

 

NetTiers学习笔记05---使用自定义存储过程

1. 设置自定义存储过程的前缀 {0}==表名, {1}==存储过程前缀(可有可无),
我这里是ups_{0}_  == usp_表名_方法名





2.建立存储过程,名称为usp_tblUsers_GetByUserName




3.GetByUserName方法将出现在UsersProvider下



到这一步就完成了,值得注意的是,存储过程的写法有一定讲究
关键是那个as, 一定要顶格...前面不能有东西...为了这个...我白白浪费了1个小时....

btw, 如果存储过程的返回类型,不是预期的类型(如:表,int等),则返回模板中选择的类型 DataSet 或iDataReader
也可以通过以下方法访问
   DataRepository.Provider.ExecuteDataSet();
   DataRepository.Provider.ExecuteNonQuery();
   DataRepository.Provider.ExecuteReader();
   DataRepository.Provider.ExecuteScalar();

posted on 2007-07-09 01:20 Ψιζσεα. 阅读(1077) 评论(7)  编辑 收藏 所属分类: 技术.NetTiers

评论

#1楼  2007-07-10 10:59 David [未注册用户]

as, 一定要顶格...前面不能有东西?
哈哈,确实够妖的!   回复  引用    

#2楼  2007-07-10 11:04 Amy [未注册用户]

太棒了, 虽然我不懂, 但想到我当年钻研delphi的劲头了.   回复  引用    

#3楼  2007-07-20 16:21 luwind [未注册用户]

偶发现一个bug,nettiers对带输出参数的存储过程存在问题,需要手工修改输出参数的返回代码   回复  引用    

#4楼 [楼主] 2007-07-20 19:30 iCaca      

@luwind
你用的NetTiers是什么版本的?   回复  引用  查看    

#5楼  2007-07-26 16:57 luwind [未注册用户]

偶用的v2.0.1.471,你可以试下   回复  引用    

#6楼 [楼主] 2007-07-26 23:31 iCaca      

存储过程
ALTER procedure [dbo].[usp_tbl_sys_Exceptions_WriteLogToDatabase]
(
    @EventId                int,
    @Priority                int,
    @Title                    varchar(500),
    @Message                varchar(4000),
    @machineName            varchar(100),
    @Timestamp                smalldatetime,
    @Severity                varchar(100),
    @AppDomainName            varchar(1000),
    @ProcessId                int,
    @ProcessName            varchar(500),
    @Win32ThreadId            int,
    @ThreadName                varchar(500),
    @formattedmessage        varchar(4000),
    @LogId                    int    out
)
as
begin
    insert into tbl_sys_Exceptions
    (
        EventId,
        Priority,
        Title,
        Message,
        Machine,
        Timestamps,
        Severity,
        ApplicationDomain,
        ProcessId,
        ProcessName,
        Win32ThreadId,
        ThreadName,
        ExtendedProperties
    )
    values
    (
        @EventId,
        @Priority,
        @Title,
        @Message,
        @machineName,
        @Timestamp,
        @Severity,
        @AppDomainName,
        @ProcessId,
        @ProcessName,
        @Win32ThreadId,
        @ThreadName,
        @formattedmessage
    )
    set @LogId=@@identity
   
   
end

生成的代码
public virtual  void WriteLogToDatabase(System.Int32 eventId, System.Int32 priority, System.String title, System.String message, System.String machineName, System.DateTime timestamp, System.String severity, System.String appDomainName, System.Int32 processId, System.String processName, System.Int32 win32ThreadId, System.String threadName, System.String formattedmessage, ref System.Int32 logId)
 
类型是ref的
 
我的版本是v2.2.0.603
  回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-07-10 15:40 编辑过

相关链接:
 

导航

统计

与我联系

搜索

 

常用链接

留言簿

我参加的小组

我的标签

随笔分类(50)

随笔档案(17)

新闻档案(1)

相册

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜