电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

使用VB調用Oracle程序包內的存儲過程返回結果集

瀏覽:79日期:2023-11-19 16:13:19
在實際的項目開發中我們需要通過VB(或其他語言工具)調用Oracle程序包內的存儲過程返回結果集.這里以短信運營平臺中的一個調用為例來說明這個過程,希望對你有所幫助.--一.使用SQL*Plus創建以下項目: --1.建表('OW_SMP'為方案名稱,下同)CREATE TABLE 'OW_SMP'.'SM_Send_SM_List'( SerialNo INT; PRIMARY KEY,;;--序列號 ServiceID VARCHAR(50),;;;;;--服務ID(業務類型) SMContent VARCHAR(1000),;;;;--短信內容 SendTarget VARCHAR(20),;;;;;--發送目標; Priority SMALLINT,;;;;;;--發送優先級 RCompleteTimeBegin DATE,;;;--要求完成日期(開始) RCompleteTimeEnd DATE,;;;;--要求完成日期(結束) RCompleteHourBegin SMALLINT,;;;--要求完成時間(開始) RCompleteHourEnd SMALLINT,;;;;--要求完成時間(結束) RequestTime DATE,;;;;;--發送請求時間 RoadBy SMALLINT,;;;;;;--發送通道(0:GSM模塊,1:短信網關) SendTargetDesc VARCHAR(100),;;;--發送目標描述 FeeValue FLOAT,;;;;;;;--本條短信信息費用(單位:分) 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' BEFOREINSERT ON 'SM_SEND_SM_LIST' FOR EACH ROW begin select SendSNo.nextval into :new.serialno from dual;end;--3.插入數據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_NowByMinutein 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_RCompleteTimeEndout tRCompleteTimeEnd, v_RCompleteHourBegin out tRCompleteHourBegin, v_RCompleteHourEndout tRCompleteHourEnd, v_RequestTime;;;;;out tRequestTime, v_RoadBy;;out tRoadBy, v_SendTargetDesc;;out tSendTargetDesc, v_FeeValueout 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條在指定時間內的待發短信 (v_NowByMinutein 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_RCompleteTimeEndout tRCompleteTimeEnd, v_RCompleteHourBegin out tRCompleteHourBegin, v_RCompleteHourEndout tRCompleteHourEnd, v_RequestTime;;;;;out tRequestTime, v_RoadBy;;out tRoadBy, v_SendTargetDesc;;out tSendTargetDesc, v_FeeValueout 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調用OW_SMP_Package.GetSendSM存儲過程:Sub GetSendSM() Dim; cmd as New ADODB.Command Dim rs as New ADODB.RecordSet cmd.ActiveConnection = GetConnection'獲得數據庫連接 cmd.CommandText = '{call ow_smp_package.GetSendSM(? ,{resultset 1000,v_SerialNo,v_ServiceID,v_SMContent,v_SendTarget,v_Priority,v_RCompleteTimeBegin,v_RCompleteTimeEnd,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') '對結果集的處理在這里增加代碼 Rs.MoveNext Wend Rs.Close set Rs=nothing set cmd=nothingEnd Sub
標簽: Oracle 數據庫
主站蜘蛛池模板: 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 团建-拓展-拓展培训-拓展训练-户外拓展训练基地[无锡劲途] | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | 阜阳在线-阜阳综合门户| sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 干洗店加盟_洗衣店加盟_干洗店设备-伊蔻干洗「武汉总部」 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 西安耀程造价培训机构_工程预算实训_广联达实作实操培训 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 氨水-液氨-工业氨水-氨水生产厂家-辽宁顺程化工 | 篮球架_乒乓球台_足球门_校园_竞技体育器材_厂家_价格-沧州浩然体育器材有限公司 | 澳威全屋定制官网|极简衣柜十大品牌|衣柜加盟代理|全屋定制招商 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 天空彩票天下彩,天空彩天空彩票免费资料,天空彩票与你同行开奖,天下彩正版资料大全 | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 哈尔滨治「失眠/抑郁/焦虑症/精神心理」专科医院排行榜-京科脑康免费咨询 一对一诊疗 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 留学生辅导网-在线课程论文辅导-留学生挂科申诉机构 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 广州各区危化证办理_危险化学品经营许可证代办 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 臭氧实验装置_实验室臭氧发生器-北京同林臭氧装置网 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 步入式高低温测试箱|海向仪器 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 |