简化以下各式篮球架

简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)_ASP教程_编程技术
您的位置: &
& 简化你的ASP编写工作 (原数据库操作类clsdbCtrl.asp)
首先,认为ASP已经过时的人,请忽略此帖,谢谢。俺这里只是提供一种思路,希望能给很多还在学习和使用ASP的朋友一种方便。尽管俺现在也很少用ASP了,但俺相信只要能满足应用,就没有什么过时不过时的,也许它的语言没那么高级,但做出来的应用不一定就低级,呵呵。& & EasyASP是一个方便快速开发ASP的类,其中包含了一个数据库控制类(原clsDbCtrl.asp,对原代码作了优化和修改,包含对数据库的各类操作及存储过程的调用,全部封装在Easp.db中,使用起来会更方便,调用也更简单)。而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作。目前只提供了VBScript版,JScript版将来可能会提供。详细说明请下载帮助手册,里面有非常详细的使用方法说明及源码范例。& & 后续更新请关注:=================================================================EasyASP v1.5 (更新)新增功能:1、将数据库控制类(原clsDbCtrl.asp)封装入Easp类,均通过Easp.db调用,也可独立使用。2、新增MSSQL存储过程调用方法,可灵活调用存储过程并返回返回值、记录集及出参。3、新增db.CreatConn方法,可以根据自定义的连接字符串连接数据库。4、新增db.Json方法,可以将数据库记录集按Json格式输出。5、新增db.Rand和db.RandStr方法,可以生成一个不重复的随机数或者随机字符串6、新增数据库操作各方法的简写方法,更节约书写代码时间。7、在Easp类中新增大量的实用方法,如安全获取值、防Sql注入、服务器端表单验证等。其它更新:1、优化db.AutoId自动获取编号,效率提高20倍以上,数据量越大越明显。2、修改db.OpenConn数据库连接方法,更符合日常描述习惯。3、修改db.GetRecord取记录集方法,参数更少。修正条件使用数组报错的Bug。4、修改并优化db.DeleteRecord删除记录方法,目前只有两个参数了。5、修改了错误调试方法,增加Debug全局属性控制错误显示。更新说明:& & 以前写了一个clsDbCtrl.asp数据库控制类(《》),收到一些反馈,还有朋友发来邮件告诉我一些改进的方法,很感谢他们。而我在原帖的跟帖中看到一条留言说“有记参数的时间,SQL语句早都写完了”,更是直接指出了其中的尴尬,的确,尽管VBS没有arguments属性,但用太多的参数也不是个好主意。所以我花了些时间把这个类的许多代码都重写了一下,在保证功能只能更强不能更弱的前提下,一个方法最多只有3个参数了。另外新增加了一个调用MSSQL存储过程的方法,可以灵活的调用存储过程并根据需要返回一个或多个记录集、输出参数及返回值,当然,吸取教训了,这个方法只有两个参数。现在都封装在这个新的名叫EasyASP的家伙中了,顾名思义,无非是想一切都简单点。& & 另外还有一个更尴尬的,那就是VBScript并不是面向对象的语言,所以这个类其实说穿了也只是一些过程和方法的封装,方便使用而已,所以其中大部分的方法和过程都可以提出来单独使用。当然,如果有需要,也可以把它封装成wsc或者dll组件使用。=================================================================使用说明=================================================================1、使用方法:(1) Easp类的所有调用都已包含在easp.asp中,所以只需要在页首引入该文件,如:
复制内容到剪贴板
代码:&!--#include file="inc/easp/easp.asp" --&或:
复制内容到剪贴板
代码:&!--#include virtual="/inc/easp/easp.asp"--&(2) 该类已经实例化,无需再单独实例化,直接使用Easp.前缀调用即可,如:
复制内容到剪贴板
代码:Easp.wn("Test String")&&或&&Easp.db.AutoId("Table:ID")(3) 如要同时操作多个数据库,请实例化新的easpdb对象,如:
复制内容到剪贴板
代码:Dim db2 : Set db2 = New EasyASP_db&&db2.dbConn = db2.OpenConn(0,dbase,server)2、参数约定:(1) 数组参数:由于VBScript没有arguments属性,不能使用动态参数,所以,在本类涉及到数据库数据的代码中,使用了Array(数组)来达到这一效果。本类中的部分参数可以使用数组(参数说明中有注明),但使用数组时应参照以下格式:
复制内容到剪贴板
代码:Array("Field1:Value1", "Field2:True", "Field3:100") 对,有点像json的格式,如果涉及到变量,那就这样:
复制内容到剪贴板
代码:Array("Field1:" & Value1, "Field2:" & Value2, "Field3:" & Value3)可以这样说,本类中的几乎所有与数据库字段相关的内容都可以用以上的数组格式来设置条件或者是获取内容,包括调用存储过程要传递的参数。而这个类里最大的优点就是在使用时不用去考虑字段的类型,在字段后跟一个冒号,接着跟上相应的值就行了。如果你经常手写ASP程序的话,你很快就会感受到运用这种方式的魅力,除了数据类型不用考虑之外,它也很方便随时添加和删除条件。这里举个例子说明这个用法:比如添加新记录的方法:
复制内容到剪贴板
代码:Easp.db.AddRecord "Table", Array("FieldsA:测试数据","FieldsB:"&Now(),"FieldsC:True")参数只有两个,一个是表名,另一个就是这样的数组参数。如果要改变数据库结构,则修改上面的程序代码就非常简单了。(2) 共用参数(用特殊符号分隔): 也是考虑到要尽量减少参数,如果有些参数在很多时候都可以没有的话,那就没有必要专门为它增加一个参数。在本类里采用了特殊符号如冒号(分隔一个参数中的多个值来达到传递多个参数的效果。举几个例子说明一下,同时也可以预览一下采用本类的一些优势:比如建立MSSQL数据库连接对象的方法:
复制内容到剪贴板
代码:Set Conn = Easp.db.Open(0,"Database","User:Password@ServerAddress")很一目了然对不对,这里就用:和@分隔了几个参数而放在同一个参数里了。另外如果是Access数据库有密码则在第3个参数中输入就行了,没有其它参数了。再比如获取记录集的方法:
复制内容到剪贴板
代码:Set rs = Easp.db.GetRecord("Table:FieldsA,FieldsB,FieldsC:20","ID & 10","ID Desc")其中第1个参数中包含了表名,要取的字段和要取的记录数,因为字段和记录数很多时候是可以省略的,所以俺索性把参数也省略了,这样要记的参数要少很多滴。再比如本类里有一个GetUrl()的获取本页面地址的方法,很多地方都见过是吧,但是本类里这个方法带一个参数,通过这个参数可以取得很多结果,看例子:& & 比如本页面的实际地址为:
复制内容到剪贴板
代码:/news/index.asp?type=public&feed=on&page=23接下来是使用不同参数返回的结果:
复制内容到剪贴板
代码:& & 方法& && && && &&&返回结果& & GetUrl("")& && &&&/news/index.asp?type=public&feed=on&page=23& & GetUrl(0)& && && &/news/index.asp& & GetUrl(1)& && && &/news/index.asp?type=public&feed=on&page=23& & GetUrl("page")& & /news/index.asp?page=23& & GetUrl("-page")& &/news/index.asp?type=public&feed=on& & GetUrl(":")& && & /news/?type=public&feed=on&page=23& & GetUrl(":-feed,-page")&&/news/?type=public
无需更多说明了吧,呵呵。本类中灵活使用共用参数的地方还有很多,这也是EasyASP的一大特色,大家自己看手册吧。
方法和属性概览:(1) 数据库操作:属性:Easp.db.dbConn& && && && & (读写) 设置和获取当前数据库连接对象Easp.db.DatabaseType& && & (只读) 查询当前使用的数据库类型Easp.db.Debug& && && && &&&(读写) 设置和查询错误调试开关Easp.db.dbErr& && && && &&&(只读) 查询错误信息方法:Easp.db.OpenConn& && && &&&根据模板建立数据库连接对象Easp.db.CreatConn& && && & 根据自定义字符串建立数据库连接对象Easp.db.AutoID& && && && & 根据表名获取自动编号Easp.db.GetRecord& && && & 根据条件获取记录集Easp.db.wGetRecord& && && &输出获取记录集的SQL语句Easp.db.GetRecordBySQL& &&&根据自定义SQL语句获取记录集Easp.db.GetRecordDetail& & 获取某一记录的详细信息Easp.db.AddRecord& && && & 添加一条新的记录Easp.db.wAddRecord& && && &输出添加新记录的SQL语句Easp.db.UpdateRecord& && & 根据条件更新记录Easp.db.wUpdateRecord& && &输出更新记录的SQL语句Easp.db.DeleteRecord& && & 根据条件删除记录Easp.db.wDeleteRecord& && &输出删除记录的SQL语句Easp.db.ReadTable& && && & 根据条件获取指定字段数据Easp.db.Json& && && && && &根据记录集生成Json格式数据Easp.db.doSP& && && && && &调用一个存储过程并返回多种数据Easp.db.Rand& && && && && &生成一个不重复的随机数Easp.db.RandStr& && && && &生成一个不重复的随机字符串Easp.db.C& && && && && && &关闭记录集并释放资源(2) 字符串处理:Easp.w& && && && && && && &输出字符串Easp.wn& && && && && && &&&输出字符串和一个HTML换行("&br/&")Easp.we& && && && && && &&&输出字符串并终止程序Easp.isN& && && && && && & 判断字符串是否为空值Easp.js& && && && && && &&&输出JavaScript代码Easp.alert& && && && && &&&弹出js消息框并返回上页Easp.alertUrl& && && && &&&弹出js消息框并跳转到新页Easp.jsEncode& && && && &&&转换字符串为安全的JavaScript字符串Easp.CutString& && && && & 截取字符串并以自定义符号代替被截部分Easp.HtmlEncode& && && && &HTML加码函数Easp.HtmlDecode& && && && &HTML解码函数Easp.HtmlFilter& && && && &过滤HTML标签Easp.RandStr& && && && && &生成指定长度的随机字符串Easp.R& && && && && && && &获取Request值并转换为SQL安全字符串Easp.Ra& && && && && && &&&安全获取Request值并在错误时弹出js消息框Easp.Test& && && && && && &根据正则表达式验证数据合法性(3) 时间日期处理:Easp.DateTime& && && && &&&格式化时间日期Easp.DiffHour& && && && &&&返回一个日期时间变量和现在相比相差的小时数Easp.DiffDay& && && && && &返回一个日期时间变量和现在相比相差的天数Easp.GetScriptTime& && && &根据时间戳返回精确到毫秒的脚本执行时间(4) 数字处理:Easp.Rand& && && && && && &生成一个随机数Easp.toNumber& && && && &&&转换数字为指定小数位数的格式Easp.toPrice& && && && && &转换数字为货币格式Easp.toPercent& && && && & 转换数字为百分比格式(5) Cookie及Application处理:Easp.SetCookie& && && && & 设置一个Cookies值Easp.GetCookie& && && && & 获取一个Cookies值Easp.RemoveCookie& && && & 删除一个Cookies值Easp.SetApp& && && && && & 设置一个Application值Easp.GetApp& && && && && & 获取一个Application值Easp.RemoveApp& && && && & 删除一个Application值(6) 其它:Easp.IfThen& && && && && & 判断三元表达式Easp.rr& && && && && && &&&服务器端跳转页面Easp.GetUrl& && && && && & 获取当前页面的URI地址Easp.GetIP& && && && && &&&获取访问者IPEasp.noCache& && && && && &设置页面不缓存Easp.close& && && && && &&&关闭对象并释放资源Easp.CheckForm& && && && & 服务器端表单验证不合法弹出js消息框Easp.CheckDataFrom& && && &验证提交数据来源Easp.CheckDataFromA& && &&&验证数据来源不合法则弹出js消息框Easp.CheckSql& && && && &&&防SQL注入强验证Easp.CheckSqlA& && && && & 防SQL注入强验证不合法则弹出js消息框
以下是引用片段:Easp.db.doSP&方法 调用一个SQL存储过程并返回数据 语法 [[Set&]obj&=&][Easp.]db.doSP(spName:spType,&spParams) 参数 obj& &&&&&&存储过程返回的值、输出参数集合或记录对象& spName& &&&&&&要调用的存储过程名称& spType& &&&&&&要调用的存储过程的类型,可以是以下值:& &&&&&&0&或者&省略&-&没有参数或者只有输入参数的存储过程& &&&&&&1&或者&"OUT"&-&带有输出参数的存储过程& &&&&&&2&或者&"RS"&-&没有输出参数且返回一个或多个记录集的存储过程& &&&&&&3&或者&"ALL"&-&既有输出参数又返回一个或多个记录集的存储过程& spParams& &&&&&&要传递给存储过程的输入或输出参数,如是数组应遵循"数组参数约定"(稍有不同,请看示例)。& &&&&&&在数组中参数的名称中请遵循以下格式:& &&&&&&输入参数&:&@+参数名+冒号(:)+值& &&&&&&输出参数&:@@+参数名& &&&&&&注意:参数的顺序要同存储过程中的顺序完全一致& 注释 调用此方法将调用一个MS&SQL&Server的存储过程并可返回一个或多个记录集、输出参数或返回值。返回的值可能是对象、数组或字符串,详细请看以下的示例。& 示例 由于存储过程内容不同,返回数据的不同,输入输出参数要求的不同,所以从几种情况来看用此方法调用存储过程: 1、没有输入输出参数,不返回记录集的存储过程的调用:& 复制内容到剪贴板& 代码: Dim&mySP mySP&=&Easp.db.doSP("myTestSP","") Easp.w&mySP&’输出返回值 2、仅有输入参数,无输出参数,不返回记录集的存储过程的调用:& 复制内容到剪贴板& 代码: mySP&=&Easp.db.doSP("myTestSP",Array("@param1:"&&&Value1,&"@param2:"&&&Value2)) ’或者用更简单的方式,只把值作为Array参数的项目即可(仅应用于这一种情况): ’mySP&=&Easp.db.doSP("myTestSP",Array(Value1,Value2)) Easp.w&mySP&’输出返回值 3、有或者没有输入参数,有输出参数,不返回记录集的存储过程的调用:& 复制内容到剪贴板& 代码: Set&mySP&=&Easp.db.doSP("myTestSP:1",Array("@inParam1:"&&&Vlaue1,"@inParam2:"&&&Value2,&"@@outParam1",&"@@outParam2")) Easp.wn&mySP("return")&’输出返回值 Easp.wn&mySP("@@outParam1")&’输出指定的输出参数值 Easp.close(mySP) 4、有或者没有输入参数,无输出参数,只返回记录集的存储过程的调用:& 复制内容到剪贴板& 代码: Set&mySP&=&Easp.db.doSP("myTestSP:2",Array("@param1:"&&&Value1,&"@param2:"&&&Value2)) While&Not&mySP.Eof&’输出记录集内容 &&&&Easp.wn&"ID:"&&&mySP(0) &&&&Easp.wn&"Name:"&&&mySP(1) &&&&mySP.moveNext() Wend Easp.db.C(mySP) 5、有或者没有输入参数,有输出参数,也要返回记录集的存储过程的调用:& 复制内容到剪贴板& 代码: mySP&=&Easp.db.doSP("myTestSP:3",Array("@inParam1:"&&&Vlaue1,"@inParam2:"&&&Value2,&"@@outParam1",&"@@outParam2")) ’mySP返回的将是一个数组,第一个元素是记录集对象,第二个元素是参数和返回值 Dim&rs&:&Set&rs&=&mySP(0) ’这里可以操作rs记录集对象了 ’...&... Easp.wn&mySP(1)("return")&’输出返回值 Easp.wn&mySP(1)("@@outParam2")&’输出指定参数值 再次提醒注意:参数的顺序要同存储过程中的顺序完全一致。但参数名没有强制要求要和存储过程中一样,只是为了代码便于阅读,建议你这么做(输出参数除外,因为这里需要两个@,存储过程中只需要一个@)。 另外,如果你要返回多个记录集对象,可以用这种方式来对获取的多个记录集进行操作:& 复制内容到剪贴板& 代码: Set&rs&=&Easp.db.doSP("myTestSP:rs",Array("@param1:"&&&Value1,&"@param2:"&&&Value2)) While&Not&rs.Eof&’输出记录集内容 &&&&Easp.wn&"ID:"&&&rs(0) &&&&Easp.wn&"Name:"&&&rs(1) &&&&Easp.wn&"-----" &&&&rs.moveNext() Wend Easp.wn&"====&Next&Recordset&====" Set&rs&=&rs.NextRecordset()&’获取下一个记录集 While&Not&rs.Eof &&&&Easp.wn&"ProductID:"&&&rs(0) &&&&Easp.wn&"Photo:"&&&rs(1) &&&&Easp.wn&"-----" &&&&rs.moveNext() Wend Easp.db.C(rs)
( 23:50:00)
相关排行总榜您好,分享的企鹅
武汉下月起公积金提取手续简化 无需提供各类申请表
长江网廖桥
公积金提取条件再放宽,手续也在进一步简化。记者昨悉,7月1日起,我市住房公积金提取业务流程将调整和优化,职工在办理提取业务时,不需要提供各类申请表。据了解,根据现行政策,如果职工要提取公积金,首先就必须填写与提取类型相符的《住房公积金提取申请表》或《住房公积金偿还商业住房贷款申请表》或《提取公积金还组合贷款(商贷部分)申请证明表》,再由所在单位和银行分别审核盖章,然后才能前往公积金各分中心和银行办理相应手续。按照7月1日起执行的新规定,职工在提取公积金时,不再提交各类申请表,但仍需提供单位开具的《武汉住房公积金提取凭证》和其他要件。然后由缴存银行或公积金中心经办柜员通过住房公积金信息管理系统打印提取信息确认单,职工签字确认后,即可办理相关手续。这样一来就免去了提交各项申请表格的麻烦。值得注意的是,职工在提取公积金偿还商业贷款和组合贷款(商贷部分)时也更加便捷。据介绍,今后,职工购买首套自住住房使用公积金偿还未结清的商业贷款时,不再需要贷款银行审核盖章,而是由银行或公积金中心直接出具个人信用报告并办理提取手续。非本市购房提取公积金偿还商贷的,也不再需要提供房屋两证的复印件。
正文已结束,您可以按alt+4进行评论
相关搜索:
看过本文的人还看了
[责任编辑:wyxinleicheng]
热门搜索:
热门排行焦点今日热评
Copyright & 1998 - 2016 Tencent. All Rights Reserved用卡诺图法化简下列各式.求大神教我第二小题,打勾的&
=A'B'C'+BC'D'+BD(A+C)+D'(A*C)=A'B'C'+BC'D'+ABD+BCD+ACD'=A'B'C'+BC'D'+AB+BCD+ACD'只有ABD一项可以化简成AB,其他项都没变另:BC'D'项换成A'C'D'其他没变也正确
为您推荐:
其他类似问题
扫描下载二维码您的举报已经提交成功,我们将尽快处理,谢谢!
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'当前位置:
>>>观察下列各式化简过程:(1)写出化简结果过程;(2)从上面的式子中,..
观察下列各式化简过程: (1)写出化简结果过程; (2)从上面的式子中,你发现了什么规律?请你用含有n的式子表示出来(n为正整数);(3)利用上面的规律,试计算:。
题型:解答题难度:中档来源:湖南省期末题
解:(1);(2);(3)。
马上分享给同学
据魔方格专家权威分析,试题“观察下列各式化简过程:(1)写出化简结果过程;(2)从上面的式子中,..”主要考查你对&&探索规律,二次根式的加减乘除混合运算,二次根式的化简&&等考点的理解。关于这些考点的“档案”如下:
现在没空?点击收藏,以后再看。
因为篇幅有限,只列出部分考点,详细请访问。
探索规律二次根式的加减乘除混合运算,二次根式的化简
探索规律的题目,通常按照一定的顺序给出一系列量,要求我们根据这些已知的量找出一般规律。揭示的规律,常常包含着事物的序列号。所以,把变量和序列号放在一起加以比较,就比较容易发现其中的奥秘。掌握探究的一般方法是解决此类问题的关键。 (1)掌握探究规律的方法,可以通过具体到抽象、特殊到一般的方法,有时通过类比、联想,还要充分利用已知条件或图形特征进行透彻分析,从中找出隐含的规律; (2)恰当合理的联想、猜想,从简单的、局部的特殊情况到一般情况是基本思路,经过归纳、提炼、加工,寻找出一般性规律,从而求解问题。 探索规律题题型和解题思路:1.探索条件型:结论明确,需要探索发现使结论成立的条件的题目;探索条件型往往是针对条件不充分、有变化或条件的发散性等情况,解答时要注意全面性,类似于讨论;解题应从结论着手,逆推其条件,或从反面论证,解题过程类似于分析法。2.探索结论型:给定条件,但无明确的结论或结论不唯一,而要探索发现与之相应的结论的题目;探索结论型题的特点是结论有多种可能,即它的结论是发散的、稳定的、隐蔽的和存在的;探索结论型题的一般解题思路是:(1)从特殊情形入手,发现一般性的结论;(2)在一般的情况下,证明猜想的正确性;(3)也可以通过图形操作验证结论的正确性或转化为几个熟悉的容易解决的问题逐个解决。3.探索规律型:在一定的条件状态下,需探索发现有关数学对象所具有的规律性或不变性的题目;图形运动题的关键是抓住图形的本质特征,并仿照原题进行证明。在探索递推时,往往从少到多,从简单到复杂,要通过比较和分析,找出每次变化过程中都具有规律性的东西和不易看清的图形变化部分。4.探索存在型:在一定的条件下,需探索发现某种数学关系是否存在的题目.而且探索题往往也是分类讨论型的习题,无论从解题的思路还是书写的格式都应该让学生明了基本的规范,这也是数学学习能力要求。探索存在型题的结论只有两种可能:存在或不存在;存在型问题的解题步骤是:①假设存在;②推理得出结论(若得出矛盾,则结论不存在;若不得出矛盾,则结论存在)。&解答探索题型,必须在缜密审题的基础上,利用学具,按照要求在动态的过程中,通过归纳、想象、猜想,进行规律的探索,提出观点与看法,利用旧知识的迁移类比发现接替方法,或从特殊、简单的情况入手,寻找规律,找到接替方法;解答时要注意方程思想、函数思想、转化思想、分类讨论思想、数形结合思想在解题中的应用;因此其成果具有独创性、新颖性,其思维必须严格结合给定条件结论,培养了学生的发散思维,这也是数学综合应用的能力要求。二次根式的加减乘除混合运算:顺序与师叔运算的顺序一样,先乘方,后乘除,最后算加减,有括号的先算括号内的。 ①在运算过程中,多项式乘法,乘法公式和有理数(式)中的运算律在二次根式的运算中仍然适用。②二次根式的加减乘除混合运算过程中,每个根式可以看作是一个“单项式”,多个不同类的二次根式的和可以看作“多项式”。③运算结果是根式的,一般应表示为最简二次根式。二次根式的化简:先对分子、分母因式分解,能约分的就约分,能开方的就开方,或先对被开方数进行通分,然后再通过分母有理化进行化简。 二次根式混合运算掌握:1、确定运算顺序。2、灵活运用运算定律。3、正确使用乘法公式。4、大多数分母有理化要及时。5、在有些简便运算中也许可以约分,不要盲目有理化。6、字母运算时注意隐含条件和末尾括号的注明。7、提公因式时可以考虑提带根号的公因式。
二次根式化简方法:二次根式的化简是初中阶段考试必考的内容,初中竞赛的题目中也常常会考察这一内容。分母有理化:分母有理化即将分母从非有理数转化为有理数的过程,以下列出分母有理化的几种方法:(1)直接利用二次根式的运算法则:例:(2)利用平方差公式:例:(3)利用因式分解:例:(此题可运用待定系数法便于分子的分解)换元法(整体代入法):换元法即把根式中的某一部分用另一个字母代替的方法,是化简的重要方法之一。例:在根式中,令,即可得到原式=√(u2+9-6u)+√(u2+25-10u)=√(u-3)2+√(u-5)2=2u-8=2√(x+2)-8
提公因式法:例:计算巧构常值代入法:例:已知x2-3x+1=0,求的值。分析:已知形如ax2+bx+c=0(x≠0)的条件,所求式子中含有的项,可先将ax2+bx+c=0化为x+=,即先构造一个常数,再代入求值。解:显然x≠0,x2-3x+1=0化为x+=3。 原式==2.
发现相似题
与“观察下列各式化简过程:(1)写出化简结果过程;(2)从上面的式子中,..”考查相似的试题有:
150505383216442911343320574515440661

我要回帖

更多关于 各式旗杆 的文章

 

随机推荐