国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

使用VB調(diào)用Oracle程序包內(nèi)的存儲(chǔ)過(guò)程返回結(jié)果集

2024-07-21 02:24:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

商業(yè)源碼熱門下載www.html.org.cn


       在實(shí)際的項(xiàng)目開發(fā)中我們需要通過(guò)vb(或其他語(yǔ)言工具)調(diào)用oracle程序包內(nèi)的存儲(chǔ)過(guò)程返回結(jié)果集.這里以短信運(yùn)營(yíng)平臺(tái)中的一個(gè)調(diào)用為例來(lái)說(shuō)明這個(gè)過(guò)程,希望對(duì)你有所幫助.

--一.使用sql*plus創(chuàng)建以下項(xiàng)目:
--1.建表("ow_smp"為方案名稱,下同)

create table "ow_smp"."sm_send_sm_list"(
    serialno int  primary key,  --序列號(hào)
    serviceid varchar(50),     --服務(wù)id(業(yè)務(wù)類型)
    smcontent varchar(1000),    --短信內(nèi)容
    sendtarget varchar(20),     --發(fā)送目標(biāo)   
    priority smallint,      --發(fā)送優(yōu)先級(jí)
    rcompletetimebegin date,   --要求完成日期(開始)
    rcompletetimeend date,    --要求完成日期(結(jié)束)
    rcompletehourbegin smallint,   --要求完成時(shí)間(開始)
    rcompletehourend smallint,    --要求完成時(shí)間(結(jié)束)
    requesttime date,     --發(fā)送請(qǐng)求時(shí)間
    roadby smallint,      --發(fā)送通道(0:gsm模塊,1:

短信網(wǎng)關(guān))
    sendtargetdesc varchar(100),   --發(fā)送目標(biāo)描述
    feevalue float,       --本條短信信息費(fèi)用(

單位:分)
    pad1 varchar(50),
    pad2 varchar(100),
    pad3 varchar(200),
    pad4 varchar(500),
    pad5 varchar(1000)
);
--2.建立自增序列
create sequence "ow_smp"."sendsno";
create or replace trigger "ow_smp"."bfinert_sm_send" before
insert on "sm_send_sm_list"
    for each row begin
  select sendsno.nextval into :new.serialno from dual;
end;
--3.插入數(shù)據(jù)
insert sm_send_sm_list (smcontent) values('happy new year to jakcy!');
insert sm_send_sm_list (smcontent) values('happy new year to wxl!');
--4.建立程序包和包體

create or replace  package "ow_smp"."ow_smp_package"            
            is
      type tserialno is table of sm_send_sm_list.serialno%type
        index by binary_integer;
      type tserviceid is table of sm_send_sm_list.serviceid%type
        index by binary_integer;
      type tsmcontent is table of sm_send_sm_list.smcontent%type
        index by binary_integer;
      type tsendtarget is table of sm_send_sm_list.sendtarget%type
        index by binary_integer;
      type tpriority is table of sm_send_sm_list.priority%type
        index by binary_integer;
      type trcompletetimebegin is table of sm_send_sm_list.rcompletetimebegin%type
        index by binary_integer;
      type trcompletetimeend is table of sm_send_sm_list.rcompletetimeend%type
        index by binary_integer;         
      type trcompletehourbegin is table of sm_send_sm_list.rcompletehourbegin%type
        index by binary_integer;
      type trcompletehourend is table of sm_send_sm_list.rcompletehourend%type
        index by binary_integer;     
      type trequesttime is table of sm_send_sm_list.requesttime%type
        index by binary_integer;    
      type troadby is table of sm_send_sm_list.roadby%type
        index by binary_integer;   
      type tsendtargetdesc is table of sm_send_sm_list.sendtargetdesc%type
        index by binary_integer;
      type tfeevalue is table of sm_send_sm_list.feevalue%type
        index by binary_integer;
      type tpad1 is table of sm_send_sm_list.pad1%type
        index by binary_integer;      
      type tpad2 is table of sm_send_sm_list.pad2%type
        index by binary_integer;      
      type tpad3 is table of sm_send_sm_list.pad3%type
        index by binary_integer;      
      type tpad4 is table of sm_send_sm_list.pad4%type
        index by binary_integer;      
      type tpad5 is table of sm_send_sm_list.pad5%type
        index by binary_integer;
      type tcount is table of number
        index by binary_integer;
 
       procedure getsendsm
              (v_nowbyminute   in number,
               v_serialno      out tserialno,
               v_serviceid     out tserviceid,
               v_smcontent     out tsmcontent,
               v_sendtarget     out tsendtarget,
               v_priority      out tpriority,
               v_rcompletetimebegin out trcompletetimebegin,
               v_rcompletetimeend   out trcompletetimeend,
               v_rcompletehourbegin out trcompletehourbegin,
               v_rcompletehourend   out trcompletehourend,
               v_requesttime        out trequesttime,
               v_roadby             out troadby,
               v_sendtargetdesc     out tsendtargetdesc,
               v_feevalue           out tfeevalue,
               v_pad1               out tpad1,
               v_pad2               out tpad2,
               v_pad3               out tpad3,
               v_pad4               out tpad4,
               v_pad5               out tpad5,
               v_count            out tcount
               );

 end;
/
create or replace  package body "ow_smp"."ow_smp_package"       
            is
      procedure getsendsm --獲得前1000條在指定時(shí)間內(nèi)的待發(fā)短信
              (v_nowbyminute   in number,
               v_serialno      out tserialno,
               v_serviceid     out tserviceid,
               v_smcontent     out tsmcontent,
               v_sendtarget     out tsendtarget,
               v_priority      out tpriority,
               v_rcompletetimebegin out trcompletetimebegin,
               v_rcompletetimeend   out trcompletetimeend,
               v_rcompletehourbegin out trcompletehourbegin,
               v_rcompletehourend   out trcompletehourend,
               v_requesttime        out trequesttime,
               v_roadby             out troadby,
               v_sendtargetdesc     out tsendtargetdesc,
               v_feevalue           out tfeevalue,
               v_pad1               out tpad1,
               v_pad2               out tpad2,
               v_pad3               out tpad3,
               v_pad4               out tpad4,
               v_pad5               out tpad5,
               v_count            out tcount)
               
      is
          cursor sendsm_cur is
                  select * from sm_send_sm_list
                  where rcompletehourbegin<=v_nowbyminute and

rcompletehourend>=v_nowbyminute and (rcompletetimebegin is null or

rcompletetimebegin<=sysdate) 
                  and (rcompletetimeend is null or rcompletetimeend>=sysdate-1)
                  and  rownum<1001;
                 
          smcount number default 1;
      begin
          for sm in sendsm_cur
          loop
                  v_serialno(smcount):=sm.serialno;
                  v_serviceid(smcount):=sm.serviceid;
                  v_smcontent(smcount):=sm.smcontent;
                  v_sendtarget(smcount):=sm.sendtarget;
                  v_priority(smcount):=sm.priority;
                  v_rcompletetimebegin(smcount):=sm.rcompletetimebegin;
                  v_rcompletetimeend(smcount):=sm.rcompletetimeend;
                  v_rcompletehourbegin(smcount):=sm.rcompletehourbegin;
                  v_rcompletehourend(smcount):=sm.rcompletehourend;
                  v_requesttime(smcount):=sm.requesttime;
                  v_roadby(smcount):=sm.roadby;
                  v_sendtargetdesc(smcount):=sm.sendtargetdesc;
                  v_feevalue(smcount):=sm.feevalue;
                  v_pad1(smcount):=sm.pad1;
                  v_pad2(smcount):=sm.pad2;
                  v_pad3(smcount):=sm.pad3;
                  v_pad4(smcount):=sm.pad4;
                  v_pad5(smcount):=sm.pad5;                 
                  if smcount=1 then
                    select count(*)
                    into v_count(smcount)
                    from  sm_send_sm_list
                    where rcompletehourbegin<=v_nowbyminute and

rcompletehourend>=v_nowbyminute and (rcompletetimebegin is null or

rcompletetimebegin<=sysdate) 
                    and (rcompletetimeend is null or rcompletetimeend>=sysdate-1)
                    and rownum<1001;
                  end if;
                  smcount:= smcount + 1;
          end loop;       
      end;
end;
/

二.使用vb調(diào)用ow_smp_package.getsendsm存儲(chǔ)過(guò)程:

sub getsendsm()
  dim  cmd as new adodb.command
  dim rs as new adodb.recordset
  cmd.activeconnection = getconnection'獲得數(shù)據(jù)庫(kù)連接
  cmd.commandtext = "{call ow_smp_package.getsendsm(?,{resultset

1000,v_serialno,v_serviceid,v_smcontent,v_sendtarget,v_priority,v_rcompletetimebegin,v_rcomp

letetimeend,v_rcompletehourbegin,v_rcompletehourend,v_requesttime,v_roadby,v_sendtargetdesc,

v_feevalue,v_pad1,v_pad2,v_pad3,v_pad4,v_pad5,v_count})}"
  cmd.commandtype = adcmdtext
  cmd.parameters.append .createparameter("v_nowbyminute", adinteger, adparaminput, , 900)
     
  rs.cursortype = adopenstatic
  rs.locktype = adlockreadonly
  set rs.source = cmd
  rs.open  
  while not rs.eof
      msgbox "sendsm data:serialno: " & rs("v_serialno") & ",smcontent: " & rs

("v_smcontent") & ",count: " & rs("v_count")
      '對(duì)結(jié)果集的處理在這里增加代碼
      rs.movenext
   wend
   rs.close  
   set rs=nothing
   set cmd=nothing
end sub

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 汝州市| 股票| 金山区| 凉城县| 北碚区| 民县| 浦北县| 康定县| 桃江县| 乌鲁木齐市| 无棣县| 富裕县| 景泰县| 邵东县| 玉门市| 武夷山市| 广南县| 新巴尔虎左旗| 会宁县| 延川县| 师宗县| 连城县| 怀化市| 鹤岗市| 简阳市| 宾川县| 温宿县| 松阳县| 左贡县| 藁城市| 宁武县| 昌图县| 枣强县| 沾益县| 江山市| 精河县| 神池县| 郸城县| 辉县市| 色达县| 海南省|