- 来源:本站 | 归类:Asp
-
我的习惯不像网络上一些人喜欢长篇大论,来显示自己的专业,也不像有写人草草贴了
代码走人。尤其是发这种基础知识的文章,因为这些文章的读者一般都是初学者,像他
们那样做的结果就是要么看的头痛要么根本看不懂。所以我采用的方法是少说废话,实
例加讲解。不说废话了,进入正题:
要想连接数据库首先要有连接字符串,不会写怎么办?好办!
1、首先新建一个空的文本文档,将扩展名改为.udl,(别问我为什么看不到扩展名啊!“我的电脑
—工具—文件夹选项—隐藏已知文件的扩展名”)!
2、双击这个udl文件,将会打开“数据连接属性”。
3、选择提供程序
A、 如果是SQL就选择MicroSoft OLE DB Provider for SQL Server,在连接中指定服务器名称,
本地的话可以直接用“.”,选择指定的用户名称和密码,记得允许保存密码,然后点测试连接,
如果成功了表示设置好了。
B、 如果是access接选择Microsoft.Jet.OLEDB.4.0。
4、确定保存。
5、用记事本打开,里面最后一行就是连接字符串。
好了,现在将连接字符串加到asp代码中,完成以下代码:
<%
ON ERROR RESUME NEXT '如果出错执行下一个语句,这句最好加上,防止别人通过暴库黑你
Dim Str
Set Conn=Server.CreateObject("ADODB.Connection") '创建一个数据库连接
Str=“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("data.mdb") '将这个替换成你的连接字符串,server.MapPath表示当前页面所在路径
Conn.Open Str '打开这个连接
%>
如果为了以后方便可以将这段代码保存到一个独立的asp文件中例如conn.asp,然后当另外一个页面
需要调用Conn这个连接的时候直接在前面用<!--#include file="conn.asp"-->把conn.asp文件
include进来。
- 关键字:ASP,数据库,Connect,连接
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
谈到数据库,ASP一般使用两种数据库,SQLSERVER和ACCESS。
其实单纯使用RS读取数据表中的记录的话在SQLSERVER与在ACCESS中并没有什么不同,不同体
现在连接数据库时使用的连接字符串,鉴于篇幅关于连接这个问题我们在这篇文章不讨论,我们将
会在下一篇文章中做详细讲解,请大家关注。
(说不定当您读到这篇文章时,那篇已经发布了,因为我正准备写)
废话不多说了,请看以下ASP代码:
假设我们的数据库有一个表:table,表table有两个字段:a,b
<!--#include file="conn.asp"-->'将数据库连接文件include进来,请关注我们的另一篇文章
<%
dim sql '定义一个数据库字符串
set rs = server.CreateObject("adodb.recordset") '创建一个adodb.recordset对象,简称rs
sql = "SELECT * FROM [table]" '给数据库字符串赋值
rs.open sql,conn,1,1 '打开这个rs,将sql执行结果填入,后面的1,1表示连接方式,尽量不要改
'其实在这一步数据库中的数据已经读进rs中了
do while not rs.eof '循环输出返回结果集中的值,rs.eof表示返回结果集结束
response.write(rs("a")) '输出a字段当前行的值
response.write(rs("b")) '输出b字段当前行的值
rs.movenext '将rs记录读取指针下移一行,这个必须加,不然就成死循环了
loop
%>
简单吧?假如要在文本框中输出,只要将文本框改成类似这样就可以了:
<input type="text" name="textfield" value=<%=rs("a")%>>
- 关键字:asp,数据库,读取,输出
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
我们知道ASP其实是弱类型的,也就是说当使用一个变量的时候不一定要对变量进行定义。
在ASP中类似"Dim a"只是将a定义成变量,而不像Visul Basic6.0那样要as....来说明变量类型。
这样在ASP中对变量的定义就显得不那么重要了,说实话,vb这种语言本身就可以不对变量
进行定义,当然在Visul Basic6.0中我们可以指定该文档为强制类型定义。但是在asp中变量
确实是没有类型的,而且也不需要定义,但是不定义变量真的无所谓么?
下面我们来做个实现。请将以下代码执行:
<%
response.write timer() & "<br>" '在程序开始执行时取一下时间,精确到1/100秒
for i=0 to 1000000 '一个大循环,为了消耗服务器时间
next
response.write timer() '在程序结尾时取一下时间,精确到1/100秒
%>
为了精确我一共测试了10次取平均执行时间为0.17秒,我的机器是core双核1.66+1G内存。
再测试下面的代码:
<%
dim i '定义i为变量
response.write timer() & "<br>"
for i=0 to 1000000
next
response.write timer()
%>
同样取平均值为0.08秒
大家看出来了吧?执行时间短了一倍。虽然ASP中可以对变量不进行定义,但是定义变量明显可以
提高代码执行效率。
原因分析:
什么叫变量?我不想说官面上的话,大白话说就是变的量(够白吧),当你定义了一个变量的话,
计算机将会为它指定一个内存区域来存放变量的值,我们往往不关心内存中到底是怎样存放变量的
值的,只需要知道变量的名称就可以了,当服务器接到我们要调用的变量的名称也就会到相应的地址
去取值供我们使用。但是当我们对变量事先没有定义的时候(仅讨论ASP),比方说我们的第一段代码
,服务器每执行到需要调用"i"的时候就会先判断这个字母代表什么?是不是一个ASP语句?得到的结论
固然不是,然后再判断它是不是一个变量(或许先判断是不是常量,总之肯定不会直接就认识它),只有
当确认它确实是个变量的时候才把它当作变量来用。当然我们往往不会用ASP去处理天文级别的数据,
不过作为一个严谨的程序员还是习惯下定义变量吧
- 关键字:ASP,变量,定义,执行效率
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
有的朋友问我为什么从网上COPY过来的ASP代码(我们是支持原创的,但是有的朋友嘛。。初学可以理解)总是出现错误。
错误代码如下:
Microsoft VBScript 编译器错误 (0x800A0408)
无效字符
这是一个典型的500.100的HTTP错误,也就是说ASP的代码中出现了不可识别的代码。
我的那位可怜的朋友花了一晚上时间都在找自己的代码哪里写错了,结果一无所获。
他把文件发给了我,从表面上看没有任何错误,其实错误就出现在:
—————ASP是无法识别全角的中文空格的。—————
简单吧?
其实很多朋友喜欢把网上别人发的ASP代码直接COPY过来不加任何修改,但是这些发代码的人有的时候会在编辑他的
帖子的时候敲入了全角的中文空格,也许他自己当时都没有注意输入法是设置在了全角状态下,但是COPY了这样的代码
的初学者可就头痛了。
题外话:别忘记括号,逗号等也要用英文半角哦!
- 关键字:ASP,无效字符,编译器错误,全角,输入法
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
最近总有朋友问我用ASP实现无组件上传,以前倒是经常用FSO上传,
但是由于FSO的功能过于强大,很多服务器关掉了FSO,所以这里我给
出不用FSO的上传代码,而且也不用其他组件,也就是大家常说的无组件
上传。
<%
FSTR = Request.QueryString("file")
'获得要上传的文件名及路径名(可以将你的action改成类似upfile.asp?file=d:g.gif调用改页面)
Set fStream= Server.CreateObject("ADODB.Stream") '创建一个流对象
fStream.Type = 1 '设置该流对象数据格式为二进制
fStream.Open '打开这个流
fStream.LoadFromFile FSTR '从得到的文件路径将文件读入流
fStream.SaveToFile Server.MapPath("pic.gif"),2'将该流写成文件
%>
请注意一定要确认你对上传目录是否有写权限
- 关键字:ASP,ADODB,无组件,上传
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
我们知道Session可以被当作全局变量用来传递参数,而大家是否知道IIS还支持一种更BT的全局变量呢?
那就是Application.
Applocation是对应于服务器的,也就是说Application("app")对任何一个访问该网站的用户,其值都是相同的。
请看以下代码:
文件appset.asp:
<%Application("app")=“这是Application”%>
文件app.asp:
<%response.write Application("app")%>
那么当有一个用户访问了appset.asp之后,任何一个用户再访问app.asp,其结果都是一样的——
显示一行:这是Application
事实上Applocation和session一样并不是某种脚本类型或者某种脚本语言特有的,而是服务器的一个特性,至少IIS是支持的。
不管你用ASP还是ASP.NET作为脚本类型,也不管你用VBScript、C#还是VB.Net作为脚本语言,只要Web服务器是IIS就支持Application和Session。
- 关键字:Applcation,asp,全局变量,服务器
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
前段时间开始做SEO,大多都是ASP网站,在天津这里,只有这个廉价的ASP才会受到客户的欢迎。
不管你把SEO本身的页面做地多么完美,一定数量且优质的反向也是必不可少的(虽然我不喜欢这个,并且这个BLOG也没有可以加过一个反响,但是,对于一些客户的网站,还是没有办法的),何况咱这水平,也没法把页面做的多完美...
刚开始做的时候,由于客户不多,就手动的在各个网站上,给需要SEO的网站加上反向,但是后来客户多了,就感觉这样的做法效率很低。很多时候,为了加一个词,就要花上几个小时,在手动连接几十个FTP,并且修改页面。
于是今天想把需要SEO的数据统计存在一个文件里,然后在各个需要被优化的网站上,通过程序来读取这个文件,并且输出相应的反向。
远程include文件是肯定不可能了,于是就写了一个XML以及读取程序,如下。
读取XML并输出超级链接的ASP代码:
<%
url = "http://www.czbin.cn/Seo_01.xml"
Set http=Server.CreateObject("Microsoft.XMLHTTP")
http.Open "GET",url,False
http.send
Set xmldom=Server.CreateObject("Microsoft.XMLDOM")
xmldom.Async=true
xmldom.ValidateOnParse=False
xmldom.Load(http.ResponseXML)
set nodeGather = xmldom.getElementsByTagName("S")
tagCount = nodeGather.length
for i = 0 to tagCount -1
nodeContent = nodeGather(i).ChildNodes(0).text
nodeValue = nodeGather(i).getAttribute("v")
Response.Write "<a href="""&nodeValue&""">"&nodeContent&"</a>"&Chr(10)
next
set nodeGather = nothing
%>
XML文件:
<?xml version="1.0" encoding="gb2312"?>
<xml>
<S v="http://www.czbin.cn">Czbin's Blog</S>
<S v="http://www.google.cn">Google</S>
<S v="http://www.Yahoo.com.cn">Yahoo中国</S>
</xml>
顺带提一下,如果不是读取远程的XML文件,ASP代码可以简化成这样:
<%
xmlconfig = "SEO_01.xml"
set xmldom = Server.CreateObject("Microsoft.xmldom")
xmldom.load(server.MapPath(xmlconfig))
set nodeGather = xmldom.getElementsByTagName("S")
tagCount = nodeGather.length
for i = 0 to tagCount -1
nodeContent = nodeGather(i).ChildNodes(0).text
nodeValue = nodeGather(i).getAttribute("v")
Response.Write "<a href="""&nodeValue&""">"&nodeContent&"</a>"&Chr(10)
next
set nodeGather = nothing
%>
- 关键字:ASP读取远程XML
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
Asp清空Session真是超级简单...相比之下我那么喜欢的Php却....
只要<%Session.Abandon%>就搞定了....
- 关键字:Asp,清空,Session
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
Asp自动跳转可以通过三种方法来实现
1,Response.Redirect函数:<%Response.Redirect("index.asp")%>
2,Meta中的REFRESH:<META HTTP-EQUIV="REFRESH" CONTENT="5; URL=index.asp">
3,输出Javascript函数:
<%
Response.write("<!--<SCRIPT LANGUAGE=""JavaScript"">")
Response.write("location.href=index.asp")
Response.write("</SCRIPT>-->")
%>
......
- 关键字:Asp,自动跳转,转向
- 操作:查看 收藏
- 来源:本站 | 归类:Asp
-
Asp运行时间在写程序,尤其是测试数据库时会经常用到,我们无论做什么程序,在制作阶段,都在bottom.asp之类的页面中加入这类代码,总是一种很不错的习惯。
<%
dim end_time,time_ijob
end_time=timer()
time_ijob=FormatNumber((end_time-startime),2)
if time_ijob<1 then
response.write "执行时间:<font color=""#ff0000"">0"&time_ijob&"</font>秒"
else
response.write "执行时间:<font color=""#ff0000"">"&time_ijob&"</font>秒"
end if
%>
- 关键字:Asp,运行时间
- 操作:查看 收藏