信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 18647|回复: 114
打印 上一主题 下一主题

[转帖]ASP编程常用的代码

  [复制链接]

该用户从未签到

升级  30.8%

跳转到指定楼层
楼主
发表于 2006-2-22 14:06:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<p><font color="#006699">1. ASP与Access数据库连接: </font></p><p>&lt;% <br/>dim conn,mdbfile <br/>mdbfile=server.mappath("数据库名称.mdb") <br/>set conn=server.createobject("adodb.connection") <br/>conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&amp;mdbfile <br/>%&gt; </p><p><br/><font color="#006699">2. ASP与SQL数据库连接: </font></p><p>&lt;% <br/>dim conn <br/>set conn=server.createobject("ADODB.connection") <br/>con.open "ROVIDER=SQLOLEDB;DATA SOURCE=SQL服务器名称或IP地址;UID=saWD=数据库密码;DATABASE=数据库名称 <br/>%&gt; </p>
踩过的脚印
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 顶 踩

该用户从未签到

升级  30.8%

沙发
 楼主| 发表于 2006-2-22 14:06:35 | 只看该作者
<p>建立记录集对象: </p><p>set rs=server.createobject("adodb.recordset") <br/>rs.open SQL语句,conn,3,2 </p><p></p><p><font color="#006699">3. SQL常用命令使用方法: </font></p><p>(1) 数据记录筛选: </p><p>sql="select * from 数据表 where 字段名=字段值 order by 字段名 " <br/>sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 " <br/>sql="select top 10 * from 数据表 where 字段名 order by 字段名 " <br/>sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)" <br/>sql="select * from 数据表 where 字段名 between 值1 and 值2" </p><p>(2) 更新数据记录: </p><p>sql="update 数据表 set 字段名=字段值 where 条件表达式" <br/>sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" </p><p>(3) 删除数据记录: </p><p>sql="delete from 数据表 where 条件表达式" <br/>sql="delete from 数据表" (将数据表所有记录删除) </p><p>(4) 添加数据记录: </p><p>sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)" <br/>sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) </p><p>(5) 数据记录统计函数: </p><p>AVG(字段名) 得出一个表格栏平均值 <br/>COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 <br/>MAX(字段名) 取得一个表格栏最大的值 <br/>MIN(字段名) 取得一个表格栏最小的值 <br/>SUM(字段名) 把数据栏的值相加 </p><p>引用以上函数的方法: </p><p>sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" <br/>set rs=conn.excute(sql) </p><p>用 rs("别名") 获取统的计值,其它函数运用同上。</p>

该用户从未签到

升级  30.8%

藤椅
 楼主| 发表于 2006-2-22 14:06:55 | 只看该作者
<p>(5) 数据表的建立和删除: </p><p>CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) </p><p>例:CREATE TABLE tab01(name varchar(50),datetime default now()) </p><p>DROP TABLE 数据表名称 (永久性删除一个数据表) </p><p></p>(6) 记录集对象的方法: <p>rs.movenext 将记录指针从当前的位置向下移一行 <br/>rs.moveprevious 将记录指针从当前的位置向上移一行 <br/>rs.movefirst 将记录指针移到数据表第一行 <br/>rs.movelast 将记录指针移到数据表最后一行 <br/>rs.absoluteposition=N 将记录指针移到数据表第N行 <br/>rs.absolutepage=N 将记录指针移到第N页的第一行 <br/>rs.pagesize=N 设置每页为N条记录 <br/>rs.pagecount 根据 pagesize 的设置返回总页数 <br/>rs.recordcount 返回记录总数 <br/>rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 <br/>rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 <br/>rs.delete 删除当前记录,但记录指针不会向下移动 <br/>rs.addnew 添加记录到数据表末端 <br/>rs.update 更新数据表记录 </p><p><br/>判断所填数据是数字型</p><p>if not isNumeric(request("字段名称")) then <br/>response.write "不是数字" <br/>else <br/>response.write "数字" <br/>end if</p>

该用户从未签到

升级  30.8%

板凳
 楼主| 发表于 2006-2-22 14:08:48 | 只看该作者
<strong><p>1.Access数据库的DSN-less连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="&amp; _<br/>Server.MapPath("数据库所在路径")</p><p>2.Access OLE DB连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=Microsoft.Jet.OLEDB.4.0;"&amp; _<br/>"Data Source=" &amp; Server.MapPath("数据库所在路径")</p><p>3.SQL server连接方法:</p><p>set adocon=server.createobject("adodb.recordset")<br/>adocon.Open"Driver={SQL Server};Server=(Local);UID=***WD=***;"&amp; _<br/>"database=数据库名;"</p><p>4.SQL server OLE DB连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"&amp; _<br/>"user ID=***assword=***;"&amp; _<br/>"inital Catalog=数据库名"</p><p>5.Oracle 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"</p><p>6.Oracle OLE DB 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"</p><p>7.dBase 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"</p><p>8.mySQL 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={mysql};database=yourdatabase;uid=username;pwd=yourpassword;option=16386;"</p><p>9.Visual Foxpro 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"</p><p>10.MS text 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&amp;_<br/>"extensions=asc,csv,tab,txtersist SecurityInfo=false;"</p><p>11.MS text OLE DB 连接方法:</p><p>set adocon=Server.Createobject("adodb.connection")<br/>adocon.open"rovider=microsof.jet.oledb.4.0;data source=your_path;"&amp;_<br/>"Extended Properties'text;FMT=Delimited'"</p></strong>

该用户从未签到

升级  30.8%

报纸
 楼主| 发表于 2006-2-22 14:09:11 | 只看该作者
常用的四种SQL命令:<p>1.查询数据记录(Select)<br/>语法:Select 字段串行 From table Where 字段=内容<br/>例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:<br/>select * from book where author=’cancer’<br/>"*"是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,</p><p>如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,<br/>如:</p><p>select * from book where id=1<br/>select * from book where pub_date=#2002-1-7# (Access)<br/>select * from book where pub_date=’2002-1-7’ (SQL Server)</p><p>提示:<br/>日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法</p><p>另外如果是查询传入的变量,则如下:</p><p>strau=request.form("author")<br/>strsql="select * from book where author=’"&amp;strau&amp;"’"</p><p>如果查询的是数字,则:</p><p>intID=request.form("id")<br/>strsql="select * from book where id="&amp;intID</p><p>在很多数据库中,如:oracle,上面的语句是可以写成:<br/>strsql="select * from book where id='"&amp;intID&amp;"'"的。<br/>但是字符型一定不能按照数字格式写,需要注意。</p><p>2.添加记录(Insert)<br/>语法:Insert into table(field1,field2,....) Values (value1,value2,....)<br/>例子:添加一作者是"cancer"的记录入book表:<br/>insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)<br/>同样,如果用到变量就如下:</p><p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>strname=request.form("bookname")<br/>strsql="insert into book (bookno,author,bookname) values (’"&amp;strno&amp;"’,’"&amp;strau&amp;"’,’"&amp;strname&amp;"’)"</p><p>3.用Recordset对象的Addnew插入数据的方法:<br/>语法:</p><p>rs.addnew<br/>rs("field1").value=value1<br/>rs("field2").value=value2<br/>...<br/>rs.update</p><p>4.修改数据记录(Update)<br/>语法:update table set field1=value1,field2=value2,...where fieldx=valuex<br/>例子:update book set author=’babycrazy’ where bookno=’CF001’<br/>如果用到变量就如下:</p><p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>strsql="update book set author=’"&amp;strau&amp;"’ where bookno=’"&amp;strno"’"</p><p>5.Recordset对象的Update方法:<br/>语法:</p><p>rs("field1").value=value1<br/>rs("field2").value=value2<br/>...<br/>rs.update</p><p>注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。</p><p><br/></p>

该用户从未签到

升级  30.8%

地板
 楼主| 发表于 2006-2-22 14:09:38 | 只看该作者
例子:<p>strno=request.form("bookno")<br/>strau=request.form("author")<br/>set adocon=server.createobject("adodb.connection")<br/>adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" &amp; _<br/>Server.Mappath=("/cancer/cancer.mdb")<br/>strsql="select * from book where bookno=’"&amp;strno&amp;"’"<br/>set rs=server.createobject("adodb.recordset")<br/>rs.open strsql,adconn,1,3<br/>if not rs.eof then ’如果有此记录的话<br/>rs("author").value=strau<br/>rs.update<br/>end if<br/>rs.close<br/>set rs=nothing<br/>adocon.close<br/>set adocon=nothing</p><p>6.删除一条记录(Delete)<br/>语法:Delete table where field=value<br/>例子:删除book表中作者是cancer的记录</p><p>delete book where author=’cancer’</p><p>(注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)</p>

该用户从未签到

升级  30.8%

7
 楼主| 发表于 2006-2-22 14:10:00 | 只看该作者
<strong>一、Request<br/></strong>  Request对象把客户信息保存在几个集合中,供ASP应用使用。通用的访问方法为:Request.Collection("membername")<br/>  当你不指定集合名时,以(1)QueryString,(2)Form,(3)Cookie和(4)ServerVariable<br/>的顺序搜索所有集合,当发现第一个匹配的变量时,就认定他是要引用的成员。当然,为了提高效率,你最好显式指定是那个集合中的成员。<br/>  QueryString集合<br/>  当HTML表单使用GET方法向ASP文件传递数据时,数据被保存在集合QueryString中。其成员可以具有与之相关的多个值,也就是说,同一个表单中,多个元素可以有相同的名字,下面的代码访问这些数据:<br/>&lt;%For each item in Request.QueryString("Name")<br/>Response.write Item &amp;"&lt;br&gt;"<br/>Next %&gt;<br/>  Form集合<br/>  当表单用POST方法时,数据被保存在Form集合中。<br/>  ServerVariable集合<br/>  保存了随HTTP请求一起传送HTTP头的信息,可以通过他获取有关浏览器的信息,主要成员有:<br/>REMOTE_ADDR 远程主机IP地址<br/>REMOTE_HOST 远程主机名称<br/>REMOTE_USER 客户名称<br/>REQUEST_METHOD 请求方法(如POST,GET,HEAD)<br/>SERVER_NAME 服务器名<br/>SERVER_PROTOCOL 服务器版本号(如HTTP/1。0)<p>  <strong>二、Response对象</strong><br/>  用来控制向客户返回的HTML的内容,有若干属性和方法。下面介绍我认为重要的:<br/>  Buffer属性<br/>  如果为True,则Response的内容要写入缓冲区,当脚本处理完时再发给客户。<br/>  Status属性<br/>传递HTTP Response报文的状态。服务器返回的状态代码由三位数字组成,可以用于测试阶段和转换控制到其他站点(即Forward)<br/>  Write方法<br/>  向客户输出HTML,可以是任何合法的HTML脚本。<br/>  Redirect方法<br/>  使浏览器重新定向到另外一个URL上,如:<br/>&lt;%browsetype=Request.ServerVariables("HTTP_USER_AGENT")<br/>IF Left(browsetype,11)="Mozilla/2.0" then<br/>Response.Redirect "FancyStart.asp"<br/>Else<br/>Response.Redirect "OldStart.asp"<br/>End if%&gt;<br/>  Clear方法<br/>  如果设Buffer属性为True,则Clear方法清楚所有缓冲区内容。<br/>  Flush方法<br/>  将缓冲内容立即发送给客户。<br/>  End方法<br/>  当Active Server遇到该方法时,立即停止处理ASP文件,如果有缓冲,立即发送内容到客户。<br/>  BinaryWrite方法<br/>  输出二进制数据</p>

该用户从未签到

升级  30.8%

8
 楼主| 发表于 2006-2-22 14:10:13 | 只看该作者
<strong>三、Request对象和Response对象的Cookies集合<br/></strong>  1.写入Cookies<br/>  Response.Cookies("Cookie名称")[("键名称").属性]=值<br/>  如果该Cookie已经存在,则值被新值替代,否则,创建该cookie<br/>  例如:<br/>&lt;% Response.Cookies("NewCookie")="New Cookie Value" %&gt;<br/>  2.读取Cookies<br/>  如:<br/>&lt;%=Request.Cookies("NewCookie")%&gt;<br/>  Cookie还有一些属性,请参见有关资料。<p>  <strong>四、Application对象</strong><br/>  Active Server应用程序是虚拟目录及其子目录下的所有文件,即一个WEB。可以使用Application对象在应用软件的所有用户中共享信息,并可以在服务器运行期间持久地保存数据。他有一些控制访问应用层数据的方法和事件。<br/>  Application本身没有内置属性,可以有用户定义:Application("属性名")=值<br/>  保存在Application对象中的数据可以被Application的所有用户读取。如用来做访问记数:Application("aVisits")=Application("aVisits")+1<br/>  方法有两个:<br/>  Lock:<br/>  当用户调用Lock时,只有当前用户能够编辑或增加Application对象的属性。<br/>  Unlock:<br/>  一定要记住,调用了Lock,完成时一定要调用Unlock.<br/>  事件也有两个:<br/>  Application_OnStart事件:应用程序启动时调用。<br/>  Application_OnStart事件:应用程序终止时调用。<br/>  这两个事件再加上Session的两个事件的处理程序都放在文件Global.asp中,一个Web应用只有一个Global.asa文件,且放在该应用的根目录下。一个Global.asp文件的例子如下:<br/>&lt;Script Language="VBScript" Runat="Server"&gt;<br/>Sub Application_OnStart<br/>Dim laChats(15)<br/>Application("gaChats")=maChats<br/>Application("giCounter")=0<br/>End Sub</p>

该用户从未签到

升级  30.8%

9
 楼主| 发表于 2006-2-22 14:10:29 | 只看该作者
<strong>五、Session对象<br/></strong>Active Server使用会话设置为使用应用程序的单个用户持久保持数据。当用户请求Active Server应用程序中ASP文件的URL时,要启动Session。在缺省情况下,如果没有用户请求,则服务器只保留Session20分钟。用户也可以通过设Session的属性TimeOut来改变。或显示地调用Session.Abandon方法来释放Session对象。<br/>  SessionID属性<br/>  唯一标识一个会话的标识符。<br/>  TimeOut属性<br/>  定义Session保留的时限,单位为分钟,如Session.TimeOut=10<br/>  像Application一样,Session也可由用户来定义属性。<br/>  Session的唯一方法是Abandon,用来取消用户的Session对象,并释放其占用的服务器资源。如:&lt;%Session.Abandon%&gt;<br/>  事件有Session_OnStart和Session_OnEnd,其处理程序应放在文件Glabal.asa中。<p>  <strong>六、Server对象</strong><br/>  1.HTMLEncode方法<br/>  对特定的字符串进行HTML编码,如你本来要显示下列内容:<br/>The Underline tag(&lt;u&gt;&lt;/u&gt;) is used to underline the surrounded text.<br/>  但很可能实际显示成:<br/>The Underline tag() is used to underline the surrounded text.<br/>  为了避免这种情况,可以调用Server对象的HTMLEncode方法,如:<br/>&lt;%<br/>Response.Write Server.HTMLEncode("The Underline tag(&lt;U&gt;&lt;/U&gt;) is used to underline the surrounded text.")<br/>%&gt;<br/>  2.URLEncode方法<br/>  根据URL规则对字符串进行编码。当字符串数据以URL格式传递到服务器时,串中间不能有空格,不能有特殊字符,这时,你就必须用URL编码。<br/>  3.CreateObject方法<br/>  用于创建已注册到服务器机器上的ActiveX组件例程,这恐怕是最重要的一个方法了:<br/>  句法如下:<br/>Server.CreateObject("ComponentName")<br/>  可以作为例程启动的组件可以是ActiveX能够使用的所有内置组件,实际上是存在于服务器上的任何ActiveX组件。比如,要使用金融计算,步骤如下:<br/>  1.创建对象<br/>&lt;%<br/>set x=server.createobject("extend.financial");<br/>%&gt;<br/>  2.调用对象的方法<br/>&lt;%<br/>set x=server.createobject("extend.financial")<br/>response.write Format(x.futval(.07/12,200,-500),"###,###,##0.00")<br/>%&gt;<br/>  3.释放例程<br/>&lt;%<br/>set x=Nothing<br/>%&gt;</p>

该用户从未签到

升级  30.8%

10
 楼主| 发表于 2006-2-22 14:10:42 | 只看该作者
<strong>七、FileSystem和TextStream对象<br/></strong>  FileSystem和TextStream对象可用于建立对文件系统的访问,并提供顺序访问文件的机制。FileSystem没有属性,只有两个方法,第一个方法是CreateTextFile方法,可以在宿主机上创建新的文本文件,并返回TextStream对象以提供对新创建文件的访问机制。第二个是OpenTextFile方法,用于打开文本文件供顺序访问并返回一个TextStream对象。如:<p>&lt;%<br/>set fsFilesys=CreateObject("Scripting.FileSystemObject")<br/>set tsCoffee=fsFilesys.CreateTextFile("c:\coffe.txt",True)<br/>tsCoffee.WriteLine("Man,I Could use some coffee.")<br/>tsCoffee.Close<br/>%&gt;<br/>  TextStream对象的使用有:<br/>  AtEndOfLine:如果文件当前字符处在行的末尾则返回true<br/>  AtEndOfScreen:如果当前字符在文件的末尾则返回true<br/>  Column:返回当前字符的列号<br/>  Line:返回当前字符的行号<br/>  TextStream对象的方法为:<br/>  Close:关闭并释放TextStream对象<br/>  Read:从一个文件中读取给定个数的字符到一个变量中<br/>  ReadAll:读取文件的全部内容到一个变量中<br/>  ReadLine:读取给定行号的内容到一个变量中<br/>  Skip:跳过给定个数的字符<br/>  SkipLine:跳过给顶的行书<br/>  Write:写如字符串<br/>  WriteLine:写入以换行结束的字符串<br/>  WriteBlankLines:写入给顶数量的空格<br/></p>
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

GMT+8, 2025-7-5 21:07

Software by Discuz! X3.2

© 2001-2013 SKIN BY DSVUE

快速回复 返回顶部 返回列表