通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
webcomputing━ado总结报告4

http://www.iyit.net  日期:2006-5-3 19:20:02  来源:  点击:
参加讨论】 四、command对象:
  从英语字面的意思就可以看出,command是用来做命令执行和参数传递的。而command对象的批量参数传递,storedprocude执行等等灵活而强大的功能也是它受到青睐的原因。command对象主要是向sql语句、storedprocude传递参数,依靠sql server的强大功能来完成数据库的操作;而recordset对象可以说是微软从新封装了数据对象,并提供了一系列的方法和属性来简化数据库的编程。我们看下面的一个例子,它用了两种不同的方法实现了向数据库中增加一新的记录条。从中可以清楚的看到command对象与recordset对象的不同点。
方法1(command)
const adcmdtext=&h0001
const adinteger=3
const advarchar=200
const adparaminput = &h0001
set conn=server.createobject("adodb.connection")
set comm=server.createobject("adodb.command")
conn.open "driver={ microsoft access driver};dbq="& _
server.mappath("/source_asp")&"/property/employee.mdb;"
comm.activeconnection=conn
comm.commandtype=adcmdtext
comm.commandtext="insert into employee (job_id,fri_name,last_name)"& _
&"values(?,?,?)"
set param=comm.createparameter("id",adinteger,adparaminput,3,4)
comm.parameters.append param
set param=comm.createparameter("fn",advarchar,adparaminput,255,"bill")
comm.parameters.append param
set param=comm.createparameter("ln",advarchar,adparaminput,255,"gates")
comm.parameters.append param
comm.execute
conn.close

方法2(recordset)
const adcmdtable=&h0002
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
conn.open "driver={microsoft access driver (*.mdb)};dbq="& _
server.mappath("/source_asp")&"/property/employee.mdb;"
rs.activeconnection=conn
rs.open "employee",,,adcmdtable
rs.addnew
rs("job_id")=4
rs("fri_name")="bill"
rs("last_name")="gates"
rs.update
rs.close
conn.close
  从上面的例子就可以看出来了,这两个对象在处理一些问题上所用的不同的方法.recordset对象似乎更加好理解一些,因为它加入了一些在ansi sql中没有的元素,它其实是用 sql在数据库上产生一个记录集,然后用一个游标来指向这个记录集,超作该游标来遍历这个记录集。但在性能上来讲的话command的性能也相对要优越些.其可重应用性也非常的好。而且如果你是批量的加入记录的话,你也能体会到第一种方案的好处了,因为command对象就是将sql产生的记录集作为整体来处理。下面详细介绍command对象的属性、方法和集合。

   1、 createparameter方法:用来产生一个parameter对象,常用的写法为set param=comm.createparameter(name,type,direction,size,value),其中name为参数的引用名,在后面引用参数的值时会有用;type为指定参数的类型,例如整数为adinteger;direction指定参数是输入还是输出,相应的值为adparaminput和adparamoutput;size指定参数的最大长度或最大的值;value指定参数的值。可以将各个选项分开来写,下面的两种写法是等价的:
set param= comm.createparameter(name,type,direction,size,value)

set param= comm.createparameter(name,type,direction,size)
param.value=value
  下面的方法其灵活性更大。大家请注意,在使用了createparameter方法后只是建立了新的 parameter对象,还需使用parameter对象的append方法将该参数传递给command对象。
  2、 execute方法:在指定了commandtext后,并将参数传递出去后,用execute方法来完成执行。
  3、 activeconnection属性:用来指定与connection对象的连接,这里的一个技巧就是不同的command对象指向同一个connection连接。
  4、 commandtext属性:其值可以是一条sql命令句,可以是一个表名,也可以是一个storedprocedure名。
  5、 commandtype属性:它的值由commandtext相应值的给出,分别为adcmdtext,adcmdtable,adcmdstoredproc。与前面在讲connection对象的execute方法中的相应的选项的含义相同。
  6、 commandtimeout属性:设定命令执行的超时的值。
  7、 properties集合:我们不多讲了,与connection对象的property集合相差不多。
  8、 parameters集合:也就是参数对象的集合了,他有主要item方法、append方法,和count属性,用法与property对象及error对象的相应属性和方法类似,下面给出一个示例:
const adcmdtext=&h0001
const adinteger=3
const advarchar=200
const adparaminput = &h0001
set conn=server.createobject("adodb.connection")
set comm=server.createobject("adodb.command")
conn.open "driver={microsoft access driver (*.mdb)};dbq="& _
server.mappath("/source_asp")&"/property/employee.mdb;"
comm.activeconnection=conn
comm.commandtype=adcmdtext
comm.commandtext="insert into employee (job_id,fri_name,last_name)"& _
"values(?,?,?);"
set param=comm.createparameter("id",adinteger,adparaminput,3)
param.value=14
comm.parameters.append param
set param=comm.createparameter("fn",advarchar,adparaminput,255,"bill")
comm.parameters.append param
set param=comm.createparameter("ln",advarchar,adparaminput,255,"gates")
comm.parameters.append param
comm.execute
conn.close
"the folowing statments show the value of parametrs
dim i
for i=0 to comm.parameters.count-1
response.write comm.parameters.item(i)&"<br>"
next
  当然,我们在引用参数时也可以不用数字,而用前面在createparameter时定义的名字,例如:fn、id等等。另外我们可以将上面的程序的显示部分改为
dim key
for each key in comm.parameters
response.write key&"<br>"
next
  下面我想重点讲一讲storedprocedure,它的强大足以让我们对它关注,当然这其中会涉及到一些sqlserver的知识


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:webcomputing━ado总结报告3
下一篇:webcomputing━ado总结报告5
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
在frontpage 2000中插入flash动画
用frontpage 2000使图像“减肥”
提高frontpage 2002使用效率
用frontpage 2000创建网页动画
用frontpage 2000巧做样式表
用frontpage 2000制作鼠标光照特效
用frontpage轻松转换图片格式
frontpage10全透视教程(9)
frontpage10全透视教程(8)
frontpage10全透视教程(7)
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
教您显示器亮度对比度的调节
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息