`
wang_zhi_peng2007
  • 浏览: 251370 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SYBASE ASE12.5中存储过程的建立和调用

 
阅读更多

一、建立存储过程(三个存储过程:up_sendgroup2->up_sendsms_ex2->up_getsmsrepdisplay)

1、建立存储过程up_getsmsrepdisplay

CREATE PROCEDURE up_getsmsrepdisplay(    
@i_sessionid         varchar(100),    
@o_displayall         varchar(100) output    
)    
AS      
BEGIN    
declare @displayone varchar(100)     
declare @counter        int    
    
set @counter=1    
declare cur_smsdisplay cursor for    
select displayname from ncomsmsreptemp    
where sessionid=@i_sessionid    
    
open cur_smsdisplay     
fetch cur_smsdisplay into @displayone     
while(@@sqlstatus=0 and @counter<=3)     
begin     
   set @displayone=ltrim(rtrim(@displayone))    
   if(@counter=1)    
    set @o_displayall=@displayone    
   else    
    set @o_displayall=@o_displayall+','+@displayone    
    
   set @counter=@counter+1    

   fetch cur_smsdisplay into @displayone     
end     
close cur_smsdisplay 
    
if @counter>4    
   set @o_displayall=@o_displayall+'...'    
END

 

 

2、建立存储过程up_sendsms_ex2

CREATE PROCEDURE [dbo].[up_sendsms_ex2]       
-- Add the parameters for the stored procedure here      
@sessionid       Varchar(100),     -- ncomsmsreptemp.sessionid      
@MsgText     Varchar(1024),    -- Example:This is Test Message!      
        @Priority    Int               -- Values: 1=LOW 2=Normal 3=HIGH      
AS      
BEGIN      
declare @SMSID      varchar(100)      
declare @TextSize   int      
       Declare @AccountID Varchar(100)      
DECLARE @displayallname varchar(100)     
         
    --Check SP PASS IN Arguments & Set it's to Default:      
    If (@Priority<>1 and @Priority<>2 and @Priority<>3)      
       SET @Priority=2         --Default Priority is Normal(2)       
      
    --Prepare Some Fields' Values:      
    SET @SMSID=NewID() -- GET NEW GUID      
    SET @TextSize=len(@MsgText)      
    SET @AccountID='sysmobile' --SET in Table 'nComSMSAccount',Must be Exists!!      
      
   --GET DISPLAYALLNAME     
   set @displayallname=''     
   execute up_getsmsrepdisplay @i_sessionid=@sessionid,@o_displayall=@displayallname   output 
     
    --Add SMS Master Information:      
    INSERT INTO ncomsms      
              (smsid,      
               smstype,      
               direction,      
               accountid,      
               fromdisplay,      
               owner,      
               priority,      
               usetemplate,      
               templateid,      
               msgtype,      
               msgtext,      
               pushurl,      
               msgsize,      
               todisplay,      
               boxtype,      
               pirorboxtype,      
               writetime,      
               sendstate,      
               retrycount,      
               sendresult       
              )      
      SELECT @SMSID,      
             1,           --SMSType: 1=Normal SMS 2=Flash SMS 3=WAPPUSH (Must set pushurl)      
             2,           --Direction: 1=Receive 2=SEND OUT      
             @AccountID, --Sender's Account ID      
             ncomsmsaccount.displayname,      
             ncomsmsaccount.childgatecode,      
             @Priority,      
             0,           --Use template? 0=Not USE 1=USE a Template      
             -1,          --template id      
             0,           --MsgType 0=AutoSelect 1=English 2:Chinese      
             @MsgText,      
             '',          --Not Use WAPPUSH      
             @TextSize,      
             @displayallname,     
             2,           -- BoXType: 1=WRITING 2=SENDING 3=SEND 4=RECEIVED 5=DELETED      
             NULL,        --Piror Box Type      
             getdate(),   --WriteTime       
             0,           --Send State 0=Is Ready 1=In Sending Queue      
             0,           --Retry Count      
             0            --Send Result -1:Failed 0:NO_SET 1:SUCCESS 2:Partly SUCCESS      
      FROM ncomsmsaccount      
      where accountid=@AccountID      
     if @@error <>0 return -1      
      
     Return 1 --Return SUCCESS      
END

 

 

3、建立存储过up_sendgroup2

CREATE PROCEDURE up_sendgroup2       
-- Add the parameters for the stored procedure here      
AS      
BEGIN      
declare @msgtext varchar(1024)     
declare @sessionid    varchar(100)      
     
SET @sessionid    =NewID() -- GET NEW GUID      
SET @msgtext =‘存储过程测试'+CAST(GETDATE() as varchar(30))    
     
   exec dbo.up_sendsms_ex2 @sessionid,@msgtext,2     
     
END

 

调用存储过程up_getsmsrepdisplay如下,这是有输入参数和返回参数的情况:

declare @sessionid varchar(100) 
declare @displayall varchar(100) 
select @sessionid ="1001" 
execute up_getsmsrepdisplay @i_sessionid=@sessionid ,@o_displayall=@displayall output
select @displayall


如果没有参数,直接使用execute执行即可,比如要执行up_sendgroup2就可以直接使用

execute up_sendgroup2
 

 

分享到:
评论

相关推荐

    Sybase ASE 12.5 Adaptive Server Enterprise中的Java.pdf

    在Sybase ASE 12.5中,可以通过JDBC连接来创建、调用Java存储过程。 - **创建Java存储过程**:首先需要编写Java类并编译成.class文件,然后通过SQL语句将这些文件加载到数据库中,最后定义存储过程的输入输出参数。...

    Sybase12.5 ODBC驱动

    在本例中,它是为Sybase ASE 12.5定制的,意味着它实现了与该数据库服务器交互所需的特定协议和函数调用。 在实际应用中,配置Sybase ASE 12.5 ODBC驱动通常包括以下步骤: 1. 安装驱动:将`Sybase_ODBC12.5.jar`...

    sybase12.5 odbc.rar

    3. **Sybase ODBC驱动**:在“sybase12.5 odbc”中,这个驱动程序是专门为Sybase ASE 12.5版本设计的,用于在Windows环境中建立ODBC数据源,让Windows应用程序能够通过ODBC接口与Sybase数据库进行通信。这通常涉及到...

    Sybase 12.5 ADO.NET 客户端DLL

    总的来说,这个资源提供了在.NET环境中使用Sybase 12.5数据库所需的关键组件,通过ADO.NET接口,开发者可以方便地在Visual Studio中构建与Sybase ASE的交互功能,实现数据的读取、写入和管理。了解并熟练运用这些...

    ASE v12.5 参考手册

    其次,"ASE v12.5 参考手册 Vol.2 命令.pdf" 详细列出了ASE中的各种SQL命令和系统过程,包括DML(数据操作语言)如SELECT, INSERT, UPDATE, DELETE,以及DDL(数据定义语言)如CREATE, ALTER, DROP等。此外,还可能...

    ASE v12.5 安装指南

    ASE v12.5的安装指南是一份非常宝贵的资源,它为系统管理员提供了详细的步骤和最佳实践,帮助他们在各种操作系统环境中成功部署和管理ASE数据库服务器。无论你是初次接触ASE还是经验丰富的DBA,这份指南都能为你的...

    Sybase 12.5各版本新功能完全展示

    ASE 12.5.0.3 还提供了一个命令行调试工具 sqldbgr,该工具可用于调试存储过程和触发器,极大地提高了开发效率和问题定位能力。 ### ASE 12.5.1 新功能 #### 动态数据缓存 Sybase 12.5.1 支持动态改变数据缓存的...

    Sybase 12.5.4 Driver for JDBC

    其中,URL中的`TDS`表示Tabular Data Stream,是Sybase ASE使用的网络协议。 4. 执行SQL查询或操作,可以通过`Statement`或`PreparedStatement`对象完成。 5. 处理结果集,如`ResultSet`对象,获取并处理查询结果...

    PB12.5程序部署所需DLL

    3. 连接Sybase数据库所需组件:PowerBuilder 12.5支持多种数据库系统,包括Sybase SQL Anywhere、 Adaptive Server Enterprise (ASE)等。为了与这些数据库进行通信,PB12.5需要特定的DLL,如Sybase的ODBC驱动程序、...

    pb程序运行的基本安装环境

    1. 安装前关闭所有杀毒软件和防火墙,以防安装过程中被误报或中断。 2. 确保操作系统已安装所有必要的更新和补丁。 3. 安装过程中的组件选择应根据实际需求进行,如只做开发工作,可以选择不安装运行时库。 4. 安装...

Global site tag (gtag.js) - Google Analytics