标签的CLASS属性代码用本模块替换'本模块基于CSS来改变单元格背景色,你也可以直接设置背景色来实现斑马线
RecordCounter=Recordcounter+1
IfRecordCounterMod2=1Then
Response.Write"altRow1"
Else
Response.write"altRow2"
EndIf
%>
●显示字符串前20个字符并在结尾处添加“……”
<%
DimCutShort
CutShort=rsYourRecordset.Fields.Item("YourField").Value
Response.WriteLEFT(CutShort,20)&"........"
%>
●如果动态图片为空,用默认图片代替
<%
DimPicShow
PicShow=rsShowHide.Fields.Item("shMainPix").Value
IFPicShow<>""THEN%>
">
<%ELSE%>
<%EndIf%>
●如果数据为空,用默认提示信息代替。
<%
DimstrShowHide
strShowHide=rsYourRecordset.Fields.Item("YourDataField").Value
IFstShowHide<>""THEN%>
数据为空
<%ENDIF%>
纯编码实现Access数据库的建立或压缩
<%
'#######以下是一个类文件,下面的注解是调用类的方法################################################
'#注意:
如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用
'#Access数据库类
'#CreateDbFile建立一个Access数据库文件
'#CompactDatabase压缩一个Access数据库文件
'#建立对象方法:
'#Seta=NewDatabaseTools
'#by(萧寒雪)s.f.
'#########################################################################################
ClassDatabaseTools
PublicfunctionCreateDBfile(byValdbFileName,byValDbVer,byValSavePath)
'建立数据库文件
'IfDbVeris0ThenCreateAccess97dbFile
'IfDbVeris1ThenCreateAccess2000dbFile
OnerrorresumeNext
IfRight(SavePath,1)<>"\"OrRight(SavePath,1)<>"/"ThenSavePath=Trim(SavePath)&"\"
IfLeft(dbFileName,1)="\"OrLeft(dbFileName,1)="/"ThendbFileName=Trim(Mid(dbFileName,2,Len(dbFileName)))
IfDbExists(SavePath&dbFileName)Then
Response.Write("对不起,该数据库已经存在!
")
CreateDBfile=False
Else
DimCa
SetCa=Server.CreateObject("ADOX.Catalog")
IfErr.number<>0Then
Response.Write("无法建立,请检查错误信息
"&Err.number&"
"&Err.Description)
Err.Clear
Exitfunction
EndIf
IfDbVer=0Then
callCa.Create("Provider=Microsoft.Jet.OLEDB.3.51;DataSource="&SavePath&dbFileName)
Else
callCa.Create("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&SavePath&dbFileName)
EndIf
SetCa=Nothing
CreateDBfile=True
EndIf
Endfunction
PublicfunctionCompactDatabase(byValdbFileName,byValDbVer,byValSavePath)
'压缩数据库文件
'0为access97
'1为access2000
OnErrorresumenext
IfRight(SavePath,1)<>"\"OrRight(SavePath,1)<>"/"ThenSavePath=Trim(SavePath)&"\"
IfLeft(dbFileName,1)="\"OrLeft(dbFileName,1)="/"ThendbFileName=Trim(Mid(dbFileName,2,Len(dbFileName)))
IfDbExists(SavePath&dbFileName)Then
Response.Write("对不起,该数据库已经存在!
")
CompactDatabase=False
Else
DimCd
SetCd=Server.CreateObject("JRO.JetEngine")
IfErr.number<>0Then
Response.Write("无法压缩,请检查错误信息
"&Err.number&"
"&Err.Description)
Err.Clear
Exitfunction
EndIf
IfDbVer=0Then
callCd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;DataSource="&SavePath&dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
Source="&SavePath&dbFileName&".bak.mdb;JetOLEDB;EncryptDatabase=True")
Else
callCd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&
SavePath&dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&
SavePath&dbFileName&".bak.mdb;JetOLEDB;EncryptDatabase=True")
EndIf
'删除旧的数据库文件
callDeleteFile(SavePath&dbFileName)
'将压缩后的数据库文件还原
callRenameFile(SavePath&dbFileName&".bak.mdb",SavePath&dbFileName)
SetCd=False
CompactDatabase=True
EndIf
endfunction
PublicfunctionDbExists(byValdbPath)
'查找数据库文件是否存在
OnErrorresumeNext
Dimc
Setc=Server.CreateObject("ADODB.Connection")
c.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&dbPath
IfErr.number<>0Then
Err.Clear
DbExists=false
else
DbExists=True
EndIf
setc=nothing
Endfunction
PublicfunctionAppPath()
'取当前真实路径
AppPath=Server.MapPath("./")
Endfunction
PublicfunctionAppName()
'取当前程序名称
AppName=Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME"),"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME")))
EndFunction
PublicfunctionDeleteFile(filespec)
'删除一个文件
Dimfso
Setfso=CreateObject("Scripting.FileSystemObject")
IfErr.number<>0Then
Response.Write("删除文件发生错误!
请查看错误信息
"&Err.number&"
"&Err.Description)
Err.Clear
DeleteFile=False
EndIf
callfso.DeleteFile(filespec)
Setfso=Nothing
DeleteFile=True
Endfunction
PublicfunctionRenameFile(filespec1,filespec2)
'修改一个文件
Dimfso
Setfso=CreateObject("Scripting.FileSystemObject")
IfErr.number<>0Then
Response.Write("修改文件名时发生错误!
请查看错误信息
"&Err.number&"
"&Err.Description)
Err.Clear
RenameFile=False
EndIf
callfso.CopyFile(filespec1,filespec2,True)
callfso.DeleteFile(filespec1)
Setfso=Nothing
RenameFile=True
Endfunction
EndClass
%>
现在已可以压缩有密码的数据库,代码如下,但是压缩之后的数据库密码就没有了!
如何解决?
<%
ConstJET_3X=4
FunctionCompactDB(dbPath,boolIs97)
Dimfso,Engine,strDBPath
strDBPath=left(dbPath,instrrev(DBPath,"\"))
Setfso=CreateObject("Scripting.FileSystemObject")
Iffso.FileExists(dbPath)Then
SetEngine=CreateObject("JRO.JetEngine")
IfboolIs97="True"Then
Engine.CompactDatabase"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&dbpath,_
"Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:
DatabasePassword='XXXXXXXX';DataSource="&strDBPath&"temp.mdb;"_
&"JetOLEDB:
EngineType="&JET_3X
Else
Engine.CompactDatabase"Provider=Microsoft.Jet.OLEDB.4.0;JetOLEDB:
DatabasePassword='XXXXXXXX';DataSource="&dbpath,_
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&strDBPath&"temp.mdb"
EndIf
fso.CopyFilestrDBPath&"temp.mdb",dbpath
fso.DeleteFile(strDBPath&"temp.mdb")
Setfso=nothing
SetEngine=nothing
CompactDB="你的数据库,"&dbpath&",已经压缩成功!
"&vbCrLf
Else
CompactDB="数据库名称或路径不正确.请重试!
"&vbCrLf
EndIf
EndFunction
%>
asp编程有用的例子
(一)
1.如何用Asp判断你的网站的虚拟物理路径
答:
使用Mappath方法
ThePhysicalpathtothisvirtualwebsiteis:
<%=Server.MapPath("\")%>
2.我如何知道使用者所用的浏览器?
答:
使用theRequestobject方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
IfInstr(strBrowser,"MSIE")<>0Then
Response.redirect("ForMSIEOnly.htm")
Else
Response.redirect("ForAll.htm")
EndIf
3.如何计算每天的平均反复访问人数
答:
解决方法
<%startdate=DateDiff("d",Now,"01/01/1990")
ifstrdate<0thenstartdate=startdate*-1
avgvpd=Int((usercnt)/startdate)%>
显示结果
<%response.write(avgvpd)%>
thatisit.thispagehavebeenviewedsinceNovember10,1998
4.如何显示随机图象
<%dimp,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
%>
显示
">
5.如何回到先前的页面
答:
">preivouspage
或用图片如:
">
6.如何确定对方的IP地址
答:
<%=Request.serverVariables("REMOTE_ADDR)%>
7.如何链结到一副图片上
答:
<%@Languages=vbscript%>
<%response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
%>
8.强迫输入密码对话框
答:
把这句话放载页面的开头
<%response.status="401notAuthorized"
response.end
%>
9.如何传递变量从一页到另一页
答:
用HIDDEN类型来传递变量
<%formmethod="post"action="mynextpage.asp">
<%foreachiteminrequest.form%>
"type="HIDDEN"
value="<%=server.HTMLEncode(Request.form(item))%>">
<%next%>
10.为何我在asp程序内使用msgbox,程序出错说没有权限
答:
由于asp是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你(呵呵)没有权限。
但是ASP和客户端脚本结合倒可以显示一个对话框,asfollows:
<%yourVar="测试对话框"%>
<%scriptlanguage='javascript'>
alert("<%=yourvar%>")
11.有没有办法保护自己的源代码,不给人看到
答:
可以去下载一个微软的WindowsscriptEncoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。
。
。
不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有scriptengine5(装一个ie5就有了)才能执行。
12.怎样才能将querystring从一个asp文件传送到另一个?
答:
前者文件加入下句:
Response.Redirect("second.asp?
"&Request.ServerVariables("QUERY_STRING"))
13.global.asa文件总是不起作用?
答:
只有web目录设置为webapplication,global.asa才有效,并且一个webapplication的根目录下global.asa才有效。
IIS4可以使用InternetServiceManager设置applicationsetting怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
14.怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:
InternetSevicesManager->选择defaultwebsite->右鼠键->菜单属性->主目录->应用程序设置(ApplicationSetting)->点击按钮"配置"->appmapping->点击按钮"Add"->executablebrowse选择\WINNT\SYSTEM32\INETSRV\ASP.DLLEXTENSION输入htmmethodexclusions输入PUT.DELETE全部确定即可。
但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。
15.如何注册组件
答:
有两种方法。
第一种方法:
手工注册DLL这种方法从IIs3.0一直使用到IIs4.0和其它的WebServer。
它需要你在命令行方式下来执行,进入到包含有DLL的目录,并输入:
regsvr32component_name.dll例如c:
\temp\regsvr32AspEmail.dll它会把dll的特定信息注册入服务器中的注册表中。
然后这个组件就可以在服务器上使用了,但是这个方法有一个缺陷。
当使用这种方法注册完毕组件后,该组件必须要相应的设置NT的匿名帐号有权限执行这个dll。
特别是一些组件需要读取注册表,所以,这个注册组件的方法仅仅是使用在服务器上没有MTS的情况下,要取消注册这个dll,使用:
regsvr32/uaspobject.dllexamplec:
\temp\regsvr32/uaneiodbc.dll
第二种方法:
使用MTS(MicrosoftTransactionServer)MTS是IIS4新增特色,但是它提供了巨大的改进。
MTS允许你指定只有有特权的用户才能够访问组件,大大提高了网站服务器上的安全性设置。
在MTS上注册组件的步骤如下:
1)打开IIS管理控制台。
2)展开transactionserver,右键单击"pkgsinstalled"然后选择"newpackage"。
3)单击"createanemptypackage"。
4)给该包命名。
5)指定administrator帐号或则使用"interactive"(如果服务器经常是使用administrator登陆的话)。
6)现
展开阅读全文
相关搜索