asp 遇到过的问题集锦,附加asp语句添加数据库和生成表,asp命令更改指定文件的文件名,asp值传递的应用091116小结

一、 if (date()-rs1("fabsj"))<3  then 发现  if (条件)then 不能分行,否则,编译时候出错了。
二、
先在cmd命令下进入命令行,然后,进入放置组件的目录,然后键入
regsvr32 component_name.dll   否则,它提示没有发现该组件模块.
例如c:\temp\regsvr32 AspEmail.dll 它会把在temp中的 aspemail.dll的特定信息注册入服务器中的注册表中。然后这个组件就可以在服务器上使用了.
要取消注册这个dll,使用命令: regsvr32 /u aspobject.dll
例如cmd进入temp目录下:c:\temp\regsvr32 /u aneiodbc.dll
2005 11  17 by hhw

三、网站设置
1、      
最好启用父路径
2、        Ntfs分区里面增强FSO地安全性

如果出现 Microsoft VBScript 运行时错误 错误代码 '800a0046' 没有权限

一般考虑:a、fso权限——看是不是服务器禁止用一些组件,或者要注册一些组件  b、代码不编译不通过-->快调试看看  c、ntfs权限->这时候,可以对web文件夹右键,在安全里面添加用户。该用户最好就是你在web站点安全时候允许默认匿名登陆的用户。如:xiner用户。当然之前要设置好xiner的密码哦。091116小结过。
 3   如何解除FSO上传程序小于200k限制?

先在服务里关闭IIS admin service服务,找到WindowsSystem32Inesrv目录下的Metabasexml并打开,找到ASPMaxRequestEntityAllowed,将其修改为需要的值。默认为204800,即200K,把它修改为5120000050M),然后重启IIS admin service服务。

4、asp语句创建mdb数据库

先声明定义

<%filename1="chengji/"&strzhen&strschool&strglade&strclass&struser&"成绩表.xls"   '可更改存放路径,以后可以调用filename1

%>

 先声明要用的rs

<%

set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,2
Set fs = server.CreateObject("scripting.filesystemobject")
filename = Server.MapPath(filename1)
if fs.FileExists(filename) then   ’如果有同名文件则要先删除
    fs.DeleteFile(filename) 
end if 

set myfile = fs.CreateTextFile(filename,true) 
strline="所在镇"&chr(9)&"学校"&chr(9)&"学号"&chr(9)&"姓名"&chr(9)&"年级"&chr(9)&"班别"&chr(9)&"成绩"
myfile.writeline strline

%>

<%
Option Explicit
dim databasename '定义数据库名称
    databasename="new_result.mdb" '数据库名称
dim databasepath '定义数据库存放路径
    databasepath=server.MapPath("chengji/") '数据库相对路径
dim databasever '定义数据库版本 2000 或者 97
databasever = "2000"
Function Createdfile(filepath,filename,ver)
Dim Ca,dbver
select case ver
case "97"
dbver = "3.51"
case "2000"
dbver = "4.0"
end select
if dbver <> "" then
Set Ca = Server.CreateObject("ADOX.Catalog")
call Ca.Create("Provider=Microsoft.Jet.OLEDB." & dbver & ";Jet OLEDB:Database Password='12345678';Data Source=" & filepath &"/"& filename )'注意路径的引用
end if
End Function
dim fs
Set fs = server.CreateObject("scripting.filesystemobject")   '如果存在同名文件则要先删除,再生成新的文件
if fs.FileExists(databasepath&"/"&databasename) then 
    fs.DeleteFile(databasepath&"/"&databasename) 
end if
Createdfile databasepath,databasename,databasever '创建数据库

%>

<%

dim conn2,creat_tab_sql,insert_sql'以下在库中建表
dim dbpath
set conn2=server.createobject("adodb.connection")
dbpath=Server.mappath("chengji/new_result.mdb")
conn2.Open "driver={Microsoft Access Driver (*.mdb)};pwd=12345678;dbq=" & dbpath
creat_tab_sql="Create table chengji (id autoincrement(1,1) primary key, zhen text, school text,xuehao text, name text,glade text, class text,chengji int,title text) "
conn2.execute (creat_tab_sql) '执行SQL,建表

%>

<%

do while not rs.eof
strline=""
strline=rs("z_name")&chr(9)&rs("s_name")&chr(9)&rs("stu_no")&chr(9)&rs("stu_name")&chr(9)&rs("stu_glade")&chr(9)&rs("stu_class")&chr(9)&rs("score")
myfile.writeline strline '输出流文件,得到excel文件

zhen=rs("z_name") '在打开的rs中,具有以下的数据,可以轻松得到
school=rs("s_name")
xuehao=rs("stu_no")
username=rs("stu_name")
glade=rs("stu_glade")
class1=rs("stu_class")
chengji=rs("score")
title=rs("subject")
insert_sql = "insert into chengji(zhen , school ,xuehao , [name] ,glade , class ,chengji ,title ) VALUES ('"&zhen&"','"&school&"','"&xuehao&"','"&username&"','"&glade&"','"&class1&"',"&chengji&",'"&title&"') "
conn2.Execute(insert_sql) '插入行操作

rs.movenext
loop
conn2.close

Response.Write "生成EXCEL文件成功,点击<a href='"&filename1&"' target='_blank'>下载</a>!" ’提供生成的excel文件下载
rs.close

%>

 

再转其他的用法, 在已有的表中,创建字段。
<%
dbs="Data Source="+server.mappath("database.mdb")+";Provider=Microsoft.Jet.OLEDB.4.0;"
set conn=server.createobject("ADODB.connection")
conn.open dbs
set cat =server.createobject("ADOX.Catalog")
Set cat.ActiveConnection = conn
set tbl=cat.tables("bbs")
set objColumn = server.createObject("ADOX.Column")
Set objColumn.parentCatalog = cat
objColumn.name = "time1"
objColumn.type = "130"
objColumn.attributes=2
tbl.columns.append objColumn
set objTable = nothing
set objCat = nothing
%>

删除字段和修改字段

<%
dbs="Data Source="+server.mappath("database.mdb")+";Provider=Microsoft.Jet.OLEDB.4.0;"
set conn=server.createobject("ADODB.connection")
conn.open dbs
set cat =server.createobject("ADOX.Catalog")
Set cat.ActiveConnection = conn
set tbl=cat.tables("bbs")
tbl.columns.delete "time"
set field=tbl.columns("time2")
field.name="time"
%>

如果需要用asp命令更改文件名则

<%

Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")    
  Set   f   =   fso.GetFile("d:\files\test.asp")  
  f.name   ="new.asp"  
  newname=f.name  
  response.write   newname     '显示为:new.asp    

%>

还有一方法:  
<%

 Set   fso   =   Server.CreateObject("Scripting.FileSystemObject")    
  fso.movefile   "d:\files\test.asp","d:\files\new.asp"  
%>

在it考试系统中,我应用asp实现在表格中 删除行功能 有该做法,是使用了值传递

display.asp表格中对应行

<td ><a href="del_stu_score.asp?id=<%=rs("stu_id")%>&score=<%=rs("score")%>&testid=<%=request("testid")%>">删除</a></td>

改行显示的只有"删除",但隐藏后面有转向到del_stu_score.asp文件中操作,并且附带传递了几个值:id,score,testid.

在del_stu_score.asp中源码

<!--#include file="xxx"-->
<%
id=request("id")
score=request("score")
test_id=request("testid")'从上页获得值
conn.execute("delete from exa_scor where userid in("&id&") and score="&score&"")'删除对应学号和分数的行
response.redirect "displayscore.asp?testid="&test_id&"" '注意test_id回送值,否则不能正常显示                   
%>

注意在asp中,值引用格式要testid="&test_id&" 单引号.否则不能传送.我以前用的asp比较少.呵呵. 

 

 

原文地址:https://www.cnblogs.com/pyman/p/1230249.html