为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

资料VB完成静态调用含DateTime类型存储过程

2018-04-30 8页 doc 27KB 13阅读

用户头像

is_686908

暂无简介

举报
资料VB完成静态调用含DateTime类型存储过程资料VB完成静态调用含DateTime类型存储过程 VB实现动态调用含DateTime类型存储过程 前言 VB对数据库的编程有多种方法,如:ODBC,API编程、RDO(远程数据对象)、DAO(数据访问对象)、ADO(ActiveX,数据对象)方法编程实现方便、快捷,但灵活性稍差。由于存储过程具有实现数据封装、隐藏以及代码的预编译、减少网络负载、维护方便等优点,所以被许多RDMBS和编程工具做支持。VB中的各类数据对象均都提供对存储过程的支持。所以要灵活掌握调用存储过程这一技术是十分必要。现在将VB中实现动态调用含Dat...
资料VB完成静态调用含DateTime类型存储过程
VB完成静态调用含DateTime类型存储过程 VB实现动态调用含DateTime类型存储过程 前言 VB对数据库的编程有多种方法,如:ODBC,API编程、RDO(远程数据对象)、DAO(数据访问对象)、ADO(ActiveX,数据对象)方法编程实现方便、快捷,但灵活性稍差。由于存储过程具有实现数据封装、隐藏以及代码的预编译、减少网络负载、维护方便等优点,所以被许多RDMBS和编程工具做支持。VB中的各类数据对象均都提供对存储过程的支持。所以要灵活掌握调用存储过程这一技术是十分必要。现在将VB中实现动态调用含DateTime类型的存储过程介绍给读者,让您很快掌握和运用这个方法,解决你身边的问题。, 一、,简述SQL,Server,2000,日期时间类型(含dateTime类型字段) 该类型是由有效的日期或时间组成;年-月-日,小时:分:秒.千分之秒。其格式: 请见图示1 在现阶段开发设计ERP系统项目中,尤其在创建数据库表结构时,均要考虑到DateTime字段的应用,它能记载信息发生时间段的信息,能充分反映该区间数据变化;除特殊情况下(如:网吧、游戏吧等需记录 小时、分、秒)之外,一般要考虑到日期范围即:[年、月、日]。 二、,我们以ADO为例来说明其实现步骤 现在动态调用含有DateTime字段的存储过程,以帮助理解和掌握调用存储过方法: 1>、使用Northwind的MS,SQL中的例子库(此例子SQL,Server2000自带) Create,procedure,"Employee,Sales,by,Country", @Beginning_Date,DateTime,,@Ending_Date,DateTime,AS SELECT,Employees.Country,,Employees.LastName,,Employees.FirstName, Orders.ShippedDate,,Orders.OrderID,,"Order,Subtotals".Subtotal,AS, SaleAmount FROM,Employees,INNER,JOIN, (Orders,INNER,JOIN,"Order,Subtotals",ON,Orders.OrderID,=,"Order,Su btotals".OrderID), ON,Employees.EmployeeID,=,Orders.EmployeeID WHERE,Orders.ShippedDate,Between,@Beginning_Date,And,@Ending_Date GO 2>、在VB中生成一个新工程,工程添加一个窗体,三个Command(1,2,3)按钮,一个ListView控件,两个日期DTpicker控件,两个标签Label控件,一个文本TextBox控件。 请见图示2 3>、编程的设计思路 基于SQL,Server数据库表结构定义DateTime类型的特点,我们采取截取有效日期部分,实现对这个 含有DateTime字段的存储过程动态调用,具体步骤如下: ?.定义:Dim,Dt10,DT20,as,Variant, ?.采集动态日期赋值于以上两个变量中 DT10,=,Format(Trim(DT1.Value),,"yyyy-mm-dd") DT20,=,Format(Trim(DT2.Value),,"yyyy-mm-dd"), 具备以上条件,可快捷、方便地获取动态日期区间内数据表的结果集。 下面就严格执行调用存储过程语法格式就可以了。请详见VB的代码。 4>、VB的程序代码实现动态调用的三种方法 ?.,窗体变量的设置 Option,Explicit Dim,CNN1,As,ADODB.Connection,'连接 Dim,RS,As,ADODB.Recordset,'结果集 Dim,StrCnn,As,String,'连接字符串 Dim,DT10,,DT20,As,Variant,'日期变量 Dim,i,As,Integer,'字段的计数 ?.,[基本格式]存储过程的调用 Private,Sub,Command1_Click(),'以[基本方式]调用(1)存储过程 On,Error,Resume,Next Dim,Cmd,As,ADODB.Command,'命令 Dim,Par,As,ADODB.Parameter,'参数 '声明并初始化一个ADO,的Connection对象 DT10,=,Format(Trim(DT1.Value),,"yyyy-mm-dd"),'起始日期赋值 DT20,=,Format(Trim(DT2.Value),,"yyyy-mm-dd"),'截止日期赋值 Set,Cmd,=,New,ADODB.Command,'指定cmd的当前连接CNN1 Cmd.ActiveConnection,=,CNN1 ,'指定该cmd,的当前活动连接 '设置要执行的是存储过程"[Employee,Sales,by,Country]," Cmd.CommandType,=,adCmdStoredProc,'表明cmd,为存储过程 Cmd.CommandText,=,"[Employee,Sales,by,Country],",'调用存储过程名 称 Set,Par,=,Cmd.CreateParameter("Beginning_Date",,adDBDate,,adParamI nput,,,,DT10) Cmd.Parameters.Append,Par Set,Par=,Cmd.CreateParameter("Ending_Date",,adDBDate,,adParamInput ,,,,DT20) Cmd.Parameters.Append,Par Set,RS,=,Cmd.Execute() '在Listview控件中显示RstByQuery记录集有效行 If,DT10,<,DT20,Then,'调用网格的条件 If,RS.Fields.Count,>,0,Then,'确认字段的列数, i,=,RS.Fields.Count Listrec,RS,,LV RS.Close End,If End,If End,Sub ?.,[简捷格式]存储过程的调用 Private,Sub,Command2_Click(),'以[简捷方式]调用(2)存储过程 On,Error,Resume,Next DT10,=,Format(Trim(DT1.Value),,"yyyy-mm-dd") DT20,=,Format(Trim(DT2.Value),,"yyyy-mm-dd") Set,RS,=,CNN1.Execute("[Employee,Sales,by,Country],'",&,DT10,&,"', ,'",&,DT20,&,"'") If,DT10,<,DT20,Then '在Listview控件中显示RS记录集有效行 If,RS.Fields.Count,>,0,Then i,=,RS.Fields.Count Listrec,RS,,LV RS.Close End,If End,If End,Sub ?.,[调用数据集的格式]执行存储过程 Private,Sub,Command3_Click(),'以执行[结果集方式]调用(3)存储过程 On,Error,Resume,Next Dim,Sql1,As,String DT10,=,Format(Trim(DT1.Value),,"yyyy-mm-dd") DT20,=,Format(Trim(DT2.Value),,"yyyy-mm-dd") Set,RS,=,New,Recordset '对字段进行中文提示的处理 Sql1,=,"SELECT,Employees.Country,as,'国别 ',,Employees.LastName,as,'姓名',,Employees.FirstName,as,'曾用名', Orders.ShippedDate,as,'日期',,,Orders.OrderID,as,'序号 ',,[Order,Subtotals].Subtotal,AS,'销售合计',FROM, Employees,INNER,JOIN,(Orders,INNER,JOIN,[Order,Subtotals],ON,Order s.OrderID,=,[Order,Subtotals].OrderID), ON,Employees.EmployeeID,=,Orders.EmployeeID,WHERE,Orders.ShippedDa te,Between,'",&,DT10,&,"',AND,'",&,DT20,&,"'" If,Len(Sql1),>,0,Then RS.Open,Sql1,,CNN1,,adOpenStatic,,adLockOptimistic '在Listview控件中显示RstByQuery记录集有效行 If,RS.Fields.Count,>,0,Then i,=,RS.Fields.Count Listrec,RS,,LV RS.Close End,If End,If End,Sub ?.,将结果集装入到ListView控件中 Sub,Listrec(ByRef,RS,As,Recordset,,ByRef,LV,As,ListView) Dim,head,As,ColumnHeader Dim,Item,As,ListItem Dim,K,,P,,Q,As,Integer K,=,0 '初始化listview的某些属性 LV.ToolTipText,=,"" LV.View,=,lvwReport LV.GridLines,=,True LV.LabelEdit,=,lvwManual LV.ListItems.Clear LV.ColumnHeaders.Clear For,i,=,0,To,RS.Fields.Count,-,1 '由于item.text不接受null,,故预先于空串作连接 Set,head,=,LV.ColumnHeaders.Add head.Text,=,RS.Fields(i).Name Next While,Not,RS.EOF Set,Item,=,LV.ListItems.Add Item.Text,=,"",&,RS.Fields(0).Value For,i,=,1,To,RS.Fields.Count,-,1 Item.SubItems(i),=,"",&,RS.Fields(i).Value Next K,=,K,+,1 RS.MoveNext Wend Text1.Text,=,"" Text1.Text,=,CStr(K) LV.ToolTipText,=,"有效记录条数:",+,CStr(K) End,Sub ?.工程\引用和连接SQL,Server数据库 *,本文使用ADO,需要引 用”Microsoft,ActiveX,data,Objects,2.6,Library”对象。 *,连接SQL,Server,2000数据库 Private,Sub,Form_Load(),'在窗体的LOAD事件中加入如下代码: Set,CNN1,=,New,ADODB.Connection '使用Connection对象的StrCnn属性,直接指定连接的SQL,Server数据库 StrCnn="Provider=SQLOLEDB;DataSource=NO1;UserID=sa;pwd=;Initial,Ca talog=Northwind" CNN1.Open,StrCnn,'打开连接 结束语 现已将VB中实现动态调用含DateTime类型的存储过程介绍完毕,为您提供了解决调用存储过程又一 途径,愿您在掌握SQL,Server,2000数据库调用存储过程这一技术中,畅通无阻,马到成功。 本程序的环境是Win2000中文网络版;SQL,Server,2000专业版;中文VB6.0。,
/
本文档为【资料VB完成静态调用含DateTime类型存储过程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索