您好,现在也遇到ASP+access转换成ASP+sql 2000的问题,请您帮我解答一下。
您好,现在也遇到ASP+access转换成ASP+sql2000的问题,由于这个教材管理系统比较复杂,涉及公共文件调用的问题,有很多地方都不知道应该怎样修改才能用。现在需...
您好,现在也遇到ASP+access转换成ASP+sql 2000的问题,由于这个教材管理系统比较复杂,涉及公共文件调用的问题,有很多地方都不知道应该怎样修改才能用。现在需修改的教材管理系统是在(http://www.fangka.net/Download.html)可以下载,文件名为“ISchool教材征订系统 V2009 Build 1022 ”,只要把access数据库转换成sql2000,原来的asp文件也可以用的。麻烦帮忙一下。
'==============================
'函 数 名:DB_Conn
'作 用:数据库连接函数
'参 数:
'==============================
Private Sub DB_Conn()
On Error Resume Next
Set Conn = Server.CreateObject("Adodb.Connection")
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(SiteDB)
Conn.Open ConnStr
If Err Then
Call AspErr()
End If
End Sub
它原本asp连接access数据库的代码,应该怎样改成连接sql2000数据库。 展开
'==============================
'函 数 名:DB_Conn
'作 用:数据库连接函数
'参 数:
'==============================
Private Sub DB_Conn()
On Error Resume Next
Set Conn = Server.CreateObject("Adodb.Connection")
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(SiteDB)
Conn.Open ConnStr
If Err Then
Call AspErr()
End If
End Sub
它原本asp连接access数据库的代码,应该怎样改成连接sql2000数据库。 展开
4个回答
展开全部
<%
'Option Explicit
Response.Buffer = True
Dim StarTime, EndTime
Dim Conn, DBPath, DB, ConnStr, MyRootPath, QQWryPath
Dim SqlNowString
Const IsDeBug = 2 ' 取值非0时是调试模式,1只显示数据库查询的错误信息,2会显示所有错误信息
' -------------------------------------------------------------------------------------------------------------------------
' 可修改设置:======================== 用于定义服务器端对象创建 =============================
' 这里所有的内容都是本系统要用到的组件对象,集合在这里是为了大家修改方便,同时也是为了解决杀毒软件误报的问题
' 例如:有的服务器端FSO组件进行过改名,那么您可以在这里定义自己的FSO组件对象名称
' 例如:一些杀毒软件,根据特征码"ADODB.Stream"来判断是否Asp木马,如果您修改成"ADO" & "DB.Str" & "eam",那么就可以躲避查杀
' -------------------------------------------------------------------------------------------------------------------------
Const ServerObject_001 = "ADODB.Connection" ' +必须 数据库链接对象
Const ServerObject_002 = "ADODB.RecordSet" ' +必须 数据库记录集操作对象
Const ServerObject_003 = "ADODB.Stream" ' +必须 文件流操作组件
Const ServerObject_004 = "Scripting.Dictionary" ' +必须 内置 字典对象
Const ServerObject_005 = "Scripting.FileSystemObject" ' +必须 内置 文件系统组件
Const ServerObject_006 = "JMail.Message" ' -可选 JMail邮件收发组件
Const ServerObject_007 = "CDONTS.NewMail" ' -可选 CDONTS邮件收发组件
Const ServerObject_008 = "Persits.MailSender" ' -可选 AspEmail邮件收发组件
Const ServerObject_009 = "CDO.Message" ' -可选 内置 Window 2003 New SendMailCom Object
Const ServerObject_010 = "CDO.Configuration" ' -可选 内置 CDO的Configuration对象
Const ServerObject_011 = "Persits.Upload" ' -可选 AspUpload 3.0 组件
Const ServerObject_012 = "Persits.UploadProgress" ' -可选 AspUpload 3.0 组件 上传进度对象 此组件在iXs_UpLoadAspUp3.asp有单独项目,要修改请同时修改
Const ServerObject_013 = "SoftArtisans.FileUp" ' -可选 SA-FileUp 4.0 组件
Const ServerObject_014 = "DvFile.Upload" ' -可选 DvFile.Upload 1.0 组件
Const ServerObject_015 = "CreatePreviewImage.cGvbox" ' -可选 CreatePreviewImage 组件
Const ServerObject_016 = "Persits.Jpeg" ' -可选 AspJpeg 1.2 组件
Const ServerObject_017 = "SoftArtisans.ImageGen" ' -SoftArtisans ImgWriter V1.21组件
Const ServerObject_018 = "MSXML2.XMLHTTP" ' +必须 MSXML2.XMLHTTP 对象
Const ServerObject_019 = "JRO.JetEngIne" ' +必须 JRO.JetEngIne 对象,在本系统中应用于数据库压缩,只要有数据库链接对象,这个也应该存在
' -------------------------------------------------------------------------------------------------------------------------
StarTime = Timer()
' -------------------------------------------------------------------------------------------------------------------------
' 可修改设置一:========================定义数据库类别,1为SQL数据库,0为Access数据库=============================
Const IsSqlDataBase = 0
If IsSqlDataBase = 1 Then
' 必修改设置二:========================SQL数据库设置=============================================================
' sql数据库连接参数:数据库名(SqlDatabaseName)、用户密码(SqlPassword)、用户名(SqlUsername)、
' 连接名(SqlLocalName)(本地用local,外地用IP)
'Const SqlDatabaseName = "sq_euhuawen" ' 数据库名
'Const SqlUsername = "sq_euhuawen" ' 用户名
'Const SqlPassword = "889912346" ' 用户密码
'Const SqlDatabaseName = "sq_whkxorgcn" ' 数据库名
'Const SqlUsername = "sq_whkxorgcn" ' 用户名
'Const SqlPassword = "whkxorgcn" ' 用户密码
Const SqlDatabaseName = "kx" ' 数据库名
Const SqlUsername = "sa" ' 用户名
Const SqlPassword = "123456" ' 用户密码
Const SqlLocalName = "127.0.0.1" ' 连接名
' ================================================================================================================
SqlNowString = "GetDate()"
Else
' 必修改设置三:========================Access数据库设置==========================================================
' 免费用户第一次使用请在这里修改数据库地址和名称
DB = "data/#webdata.mdb"
' ============================================================================================
SqlNowString = "Now()"
End If
' ============================================
' 函数名称:ConnectionDatabase
' 函数功能:为全站创建主数据库连接
' ============================================
Function ConnectionDatabase()
On Error Resume Next
If IsSqlDataBase = 1 Then
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
Else
'第一次使用请修改本处数据库地址并相应修改data目录中数据库名称
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(lg_DataPath & DB)
End If
Set Conn = Server.CreateObject(ServerObject_001)
Conn.Open ConnStr
If Err Then
Err.Clear
Set Conn = Nothing
Response.Write("数据库连接错误,请检查连接字符串。")
'Response.Write("The database connection error , please check the connection character string .")
Response.End()
End If
End Function
' ============================================
' 函数名称:CloseDB
' 函数功能:为全站关闭主数据库连接
' ============================================
Function CloseConn()
If IsObject(Conn) Then Conn.Close:Set Conn=Nothing
End Function
' ============================================
' 爱雪儿网站管理核心类(简化)
' ============================================
Dim LG
Set LG = New LG_Core
Class LG_Core
Public UpFileObject
Private Sub Class_Initialize
UpFileObject = 0 ' UpFileObject = 1 ' 设置上传组件类型(0=无组件上传类,1=AspUpLoad3.0 ,2=SA-FileUp 4.0 ,3=DvFile.UpLoad V1.0
End Sub
' ============================================
' 函数名称:Execute
' 函数功能:使用数据库连接对象执行SQL命令
' 其他说明:该函数可以容错
' 传入参数:
' 1、Command:需要执行的命令
' 返回结果:返回执行的数据库连接对象
' ============================================
Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase()
On Error Resume Next
'Response.Write("执行查询:" & Command & "<hr>")
Set Execute = Conn.Execute(Command)
If Err Then
If IsDeBug = 0 Then
Response.Write("刚才执行的查询出现错误,请认真检查您的语句。")
Else
Response.Write("查询语句为:" & Command & "<br>")
Response.Write("错误信息为:" & Err.Description & "<br>")
End If
Err.Clear
Set Execute = Nothing
Response.End()
End If
End Function
' ============================================
' 获取 Recordset 对象
' ============================================
Public Function OpenRs(Command, Num1, Num2)
On Error Resume Next
If Not IsObject(Conn) Then ConnectionDatabase()
Set OpenRs = Server.CreateObject(ServerObject_002)
'Response.Write("执行查询:" & Command & "<br>")
OpenRs.Open Command, Conn, Num1, Num2
If Err Then
If IsDeBug = 0 Then
Response.Write("创建 Recordset 对象失败,请认真检查您的语句。")
Else
Response.Write("查询语句为:" & Command & "<br>")
Response.Write("错误信息为:" & Err.Description & "<br>")
End If
Err.Clear
Response.End
End If
End Function
' ============================================
' 函数名称:ReqNum
' 函数功能:检测获取的字符是否为数字
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:数字
' ============================================
Public Function ReqNum(StrName, DefaultValue)
ReqNum = Trim(Request(StrName))
If ReqNum <> "" And Not IsNull(ReqNum) Then
If Not IsNumeric(ReqNum) Then
Response.Write("参数 " & StrName & " 必须为数字!\n\n请重新输入!")
Else
ReqNum = CLng(ReqNum)
End If
Else
ReqNum = DefaultValue
End If
End Function
' ============================================
' 函数名称:ReqStr
' 函数功能:从客户端获取字符串变量
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:字符串
' ============================================
Public Function ReqStr(StrName, DefaultValue)
Dim Str, i
' 循环读取数据,以兼容大数据提交(注:需要在客户端使用脚本对数据进行分解)
For i = 1 To Request(StrName).Count
Str = Str & Request(StrName)(i)
Next
' 过滤非安全字符
Str = Replace(Trim(Request(StrName)), Chr(0), "")
Str = Replace(Str, "'", "''")
' 替换空数据
If Str = "" Or IsNull(Str) Then Str = DefaultValue
ReqStr = Str
End Function
' ============================================
' 获取真实的IP地址 并整形为15位
' ============================================
Public Property Get ReqIP()
ReqIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ReqIP = "" Or IsNull(ReqIP) Then ReqIP = Request.ServerVariables("REMOTE_ADDR")
' 如果包含代理,则取其真实IP地址
If InStr(ReqIP, ",") Then ReqIP = Split(ReqIP, ",")(0)
ReqIP = CStr(ReqIP)
End Property
' ============================================
' 按照指定的正则表达式替换字符
' ============================================
Public Function ReFilter(p_Patrn, p_Str, p_Type, ReplaceWith)
Dim RegEx
Set RegEx = New RegExp
If p_Type = 1 Then
RegEx.Global = True
Else
RegEx.Global = False
End If
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
ReFilter = RegEx.Replace(p_Str, ReplaceWith)
End Function
' ============================================
' 按照指定的正则表达式返回字符
' ============================================
Public Function ReSearch(p_Patrn, p_Str, p_Type, Spacer)
Dim RegEx, Match, Matches , RetStr, i
i = 0
Set RegEx = New RegExp
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
RegEx.Global = True
Set Matches = RegEx.Execute(p_Str)
For Each Match In Matches
i = i + 1
If p_Type = 0 Then
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
Else
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
If p_Type = i Then Exit For
End If
Next
ReSearch = RetStr
End Function
End Class
'ASP通用防注入代码
'您可以把该代码COPY到头文件中.也可以单独作
'为一个文件存在,每次调用使用
'作者:易恒
Dim GetFlag Rem(提交方式)
Dim ErrorSql Rem(非法字符)
Dim RequestKey Rem(提交数据)
Dim ForI Rem(循环标记)
Dim PostI Rem(非Get方式的时候是否需要过滤.True=需要.False=不要)
PostI = False
ErrorSql = "'~'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare"
ErrorSql = split(ErrorSql,"~")
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
GetFlag=True
Else
GetFlag=False
End If
If GetFlag Then
For Each RequestKey In Request.QueryString
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0 Then
call lgRequestKey()
End If
Next
Next
Else
If PostI Then
For Each RequestKey In Request.Form
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0 Then
call lgRequestKey()
End If
Next
Next
End If
End If
sub lgRequestKey()
dim url : url ="http://" + Request.ServerVariables("SERVER_NAME") + ":" + Request.ServerVariables("SERVER_PORT") + request.ServerVariables("script_name")+"?"+request.ServerVariableS("QUERY_STRING")
'response.Cookies("RequestKey")("url")=""
'response.Cookies("RequestKey")("ip")=""
if request.Cookies("RequestKey")("url")=url and request.Cookies("RequestKey")("ip")=lg_getIP() then
title="请不要连续操作!"
else
dim Sql
sql = "SELECT * FROM [Request_Info]"
Set rs = LG.OpenRs(sql, 1, 3)
rs.AddNew()
rs("Key") = url
rs("IP") = lg_getIP() 'ip
rs("WinOS") = lg_System() '系统
rs("NavigatorInfo") = lg_Browser() '浏览器
rs("LoginTime") = now() '时间
rs.Update()
rs.Close()
set rs = nothing
response.Cookies("RequestKey")("url")=url
response.Cookies("RequestKey")("ip")=lg_getIP()
end if
response.write "<style>body {background:#fff;margin:auto;text-align:center;}.box1 {line-height:32px;font-size:14px;margin:60px;clear:both;}</style><div class='box1'>非法参数!"&title&"<br />你的操作已记录!<br /><a href='javascript:window.close();'>关闭</a></div>"
response.end
end sub
'response.Write("http://" + Request.ServerVariables("SERVER_NAME") + ":" + Request.ServerVariables("SERVER_PORT") + request.ServerVariables("script_name")+"?"+request.ServerVariableS("QUERY_STRING"))
'**************************************************
'通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
'**************************************************
Private Function lg_getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
lg_getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
'**************************************************
'通用函数:浏览器判断
'**************************************************
Function lg_Browser()
dim Info,Browser
Info=Request.ServerVariables("Http_User_Agent") ''在这里初始化了Info,在实际应用中可以作为其他变量赋值
If InStr(Info,"MSIE 6")>0 Then
Browser="Internet Explorer 6.0"
ElseIf InStr(Info,"MSIE 5.5")>0 Then
Browser="Internet Explorer 5.5"
ElseIf InStr(Info,"MSIE 5.0")>0 Then
Browser="Internet Explorer 5.0"
ElseIf InStr(Info,"MSIE 4")>0 Then
Browser="Internet Explorer 4.0"
Else
Browser="未知的浏览器!"
End if
lg_Browser="您的浏览器是:"&Browser&""
End Function
'**************************************************
'通用函数:操作系统判断
'**************************************************
Function lg_System()
dim Info,System
Info=Request.ServerVariables("Http_User_Agent")
If InStr(Info,"NT 5.1")>0 Then
System="Windows XP"
ElseIf InStr(Info,"NT 5.0")>0 Then
System="Windows 2000"
ElseIf InStr(Info,"NT 4")>0 Then
System="Windows NT"
ElseIf InStr(Info,"98")>0 Then
System="Windows 98"
ElseIf InStr(Info,"Me")>0 Then
System="Windows Me"
ElseIf InStr(Info,"95")>0 Then
System="Windows 95"
Else
System="未知的操作系统!"
End if
lg_System="您的操作系统是:"&System&""
End Function
%>
'Option Explicit
Response.Buffer = True
Dim StarTime, EndTime
Dim Conn, DBPath, DB, ConnStr, MyRootPath, QQWryPath
Dim SqlNowString
Const IsDeBug = 2 ' 取值非0时是调试模式,1只显示数据库查询的错误信息,2会显示所有错误信息
' -------------------------------------------------------------------------------------------------------------------------
' 可修改设置:======================== 用于定义服务器端对象创建 =============================
' 这里所有的内容都是本系统要用到的组件对象,集合在这里是为了大家修改方便,同时也是为了解决杀毒软件误报的问题
' 例如:有的服务器端FSO组件进行过改名,那么您可以在这里定义自己的FSO组件对象名称
' 例如:一些杀毒软件,根据特征码"ADODB.Stream"来判断是否Asp木马,如果您修改成"ADO" & "DB.Str" & "eam",那么就可以躲避查杀
' -------------------------------------------------------------------------------------------------------------------------
Const ServerObject_001 = "ADODB.Connection" ' +必须 数据库链接对象
Const ServerObject_002 = "ADODB.RecordSet" ' +必须 数据库记录集操作对象
Const ServerObject_003 = "ADODB.Stream" ' +必须 文件流操作组件
Const ServerObject_004 = "Scripting.Dictionary" ' +必须 内置 字典对象
Const ServerObject_005 = "Scripting.FileSystemObject" ' +必须 内置 文件系统组件
Const ServerObject_006 = "JMail.Message" ' -可选 JMail邮件收发组件
Const ServerObject_007 = "CDONTS.NewMail" ' -可选 CDONTS邮件收发组件
Const ServerObject_008 = "Persits.MailSender" ' -可选 AspEmail邮件收发组件
Const ServerObject_009 = "CDO.Message" ' -可选 内置 Window 2003 New SendMailCom Object
Const ServerObject_010 = "CDO.Configuration" ' -可选 内置 CDO的Configuration对象
Const ServerObject_011 = "Persits.Upload" ' -可选 AspUpload 3.0 组件
Const ServerObject_012 = "Persits.UploadProgress" ' -可选 AspUpload 3.0 组件 上传进度对象 此组件在iXs_UpLoadAspUp3.asp有单独项目,要修改请同时修改
Const ServerObject_013 = "SoftArtisans.FileUp" ' -可选 SA-FileUp 4.0 组件
Const ServerObject_014 = "DvFile.Upload" ' -可选 DvFile.Upload 1.0 组件
Const ServerObject_015 = "CreatePreviewImage.cGvbox" ' -可选 CreatePreviewImage 组件
Const ServerObject_016 = "Persits.Jpeg" ' -可选 AspJpeg 1.2 组件
Const ServerObject_017 = "SoftArtisans.ImageGen" ' -SoftArtisans ImgWriter V1.21组件
Const ServerObject_018 = "MSXML2.XMLHTTP" ' +必须 MSXML2.XMLHTTP 对象
Const ServerObject_019 = "JRO.JetEngIne" ' +必须 JRO.JetEngIne 对象,在本系统中应用于数据库压缩,只要有数据库链接对象,这个也应该存在
' -------------------------------------------------------------------------------------------------------------------------
StarTime = Timer()
' -------------------------------------------------------------------------------------------------------------------------
' 可修改设置一:========================定义数据库类别,1为SQL数据库,0为Access数据库=============================
Const IsSqlDataBase = 0
If IsSqlDataBase = 1 Then
' 必修改设置二:========================SQL数据库设置=============================================================
' sql数据库连接参数:数据库名(SqlDatabaseName)、用户密码(SqlPassword)、用户名(SqlUsername)、
' 连接名(SqlLocalName)(本地用local,外地用IP)
'Const SqlDatabaseName = "sq_euhuawen" ' 数据库名
'Const SqlUsername = "sq_euhuawen" ' 用户名
'Const SqlPassword = "889912346" ' 用户密码
'Const SqlDatabaseName = "sq_whkxorgcn" ' 数据库名
'Const SqlUsername = "sq_whkxorgcn" ' 用户名
'Const SqlPassword = "whkxorgcn" ' 用户密码
Const SqlDatabaseName = "kx" ' 数据库名
Const SqlUsername = "sa" ' 用户名
Const SqlPassword = "123456" ' 用户密码
Const SqlLocalName = "127.0.0.1" ' 连接名
' ================================================================================================================
SqlNowString = "GetDate()"
Else
' 必修改设置三:========================Access数据库设置==========================================================
' 免费用户第一次使用请在这里修改数据库地址和名称
DB = "data/#webdata.mdb"
' ============================================================================================
SqlNowString = "Now()"
End If
' ============================================
' 函数名称:ConnectionDatabase
' 函数功能:为全站创建主数据库连接
' ============================================
Function ConnectionDatabase()
On Error Resume Next
If IsSqlDataBase = 1 Then
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
Else
'第一次使用请修改本处数据库地址并相应修改data目录中数据库名称
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(lg_DataPath & DB)
End If
Set Conn = Server.CreateObject(ServerObject_001)
Conn.Open ConnStr
If Err Then
Err.Clear
Set Conn = Nothing
Response.Write("数据库连接错误,请检查连接字符串。")
'Response.Write("The database connection error , please check the connection character string .")
Response.End()
End If
End Function
' ============================================
' 函数名称:CloseDB
' 函数功能:为全站关闭主数据库连接
' ============================================
Function CloseConn()
If IsObject(Conn) Then Conn.Close:Set Conn=Nothing
End Function
' ============================================
' 爱雪儿网站管理核心类(简化)
' ============================================
Dim LG
Set LG = New LG_Core
Class LG_Core
Public UpFileObject
Private Sub Class_Initialize
UpFileObject = 0 ' UpFileObject = 1 ' 设置上传组件类型(0=无组件上传类,1=AspUpLoad3.0 ,2=SA-FileUp 4.0 ,3=DvFile.UpLoad V1.0
End Sub
' ============================================
' 函数名称:Execute
' 函数功能:使用数据库连接对象执行SQL命令
' 其他说明:该函数可以容错
' 传入参数:
' 1、Command:需要执行的命令
' 返回结果:返回执行的数据库连接对象
' ============================================
Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase()
On Error Resume Next
'Response.Write("执行查询:" & Command & "<hr>")
Set Execute = Conn.Execute(Command)
If Err Then
If IsDeBug = 0 Then
Response.Write("刚才执行的查询出现错误,请认真检查您的语句。")
Else
Response.Write("查询语句为:" & Command & "<br>")
Response.Write("错误信息为:" & Err.Description & "<br>")
End If
Err.Clear
Set Execute = Nothing
Response.End()
End If
End Function
' ============================================
' 获取 Recordset 对象
' ============================================
Public Function OpenRs(Command, Num1, Num2)
On Error Resume Next
If Not IsObject(Conn) Then ConnectionDatabase()
Set OpenRs = Server.CreateObject(ServerObject_002)
'Response.Write("执行查询:" & Command & "<br>")
OpenRs.Open Command, Conn, Num1, Num2
If Err Then
If IsDeBug = 0 Then
Response.Write("创建 Recordset 对象失败,请认真检查您的语句。")
Else
Response.Write("查询语句为:" & Command & "<br>")
Response.Write("错误信息为:" & Err.Description & "<br>")
End If
Err.Clear
Response.End
End If
End Function
' ============================================
' 函数名称:ReqNum
' 函数功能:检测获取的字符是否为数字
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:数字
' ============================================
Public Function ReqNum(StrName, DefaultValue)
ReqNum = Trim(Request(StrName))
If ReqNum <> "" And Not IsNull(ReqNum) Then
If Not IsNumeric(ReqNum) Then
Response.Write("参数 " & StrName & " 必须为数字!\n\n请重新输入!")
Else
ReqNum = CLng(ReqNum)
End If
Else
ReqNum = DefaultValue
End If
End Function
' ============================================
' 函数名称:ReqStr
' 函数功能:从客户端获取字符串变量
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:字符串
' ============================================
Public Function ReqStr(StrName, DefaultValue)
Dim Str, i
' 循环读取数据,以兼容大数据提交(注:需要在客户端使用脚本对数据进行分解)
For i = 1 To Request(StrName).Count
Str = Str & Request(StrName)(i)
Next
' 过滤非安全字符
Str = Replace(Trim(Request(StrName)), Chr(0), "")
Str = Replace(Str, "'", "''")
' 替换空数据
If Str = "" Or IsNull(Str) Then Str = DefaultValue
ReqStr = Str
End Function
' ============================================
' 获取真实的IP地址 并整形为15位
' ============================================
Public Property Get ReqIP()
ReqIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ReqIP = "" Or IsNull(ReqIP) Then ReqIP = Request.ServerVariables("REMOTE_ADDR")
' 如果包含代理,则取其真实IP地址
If InStr(ReqIP, ",") Then ReqIP = Split(ReqIP, ",")(0)
ReqIP = CStr(ReqIP)
End Property
' ============================================
' 按照指定的正则表达式替换字符
' ============================================
Public Function ReFilter(p_Patrn, p_Str, p_Type, ReplaceWith)
Dim RegEx
Set RegEx = New RegExp
If p_Type = 1 Then
RegEx.Global = True
Else
RegEx.Global = False
End If
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
ReFilter = RegEx.Replace(p_Str, ReplaceWith)
End Function
' ============================================
' 按照指定的正则表达式返回字符
' ============================================
Public Function ReSearch(p_Patrn, p_Str, p_Type, Spacer)
Dim RegEx, Match, Matches , RetStr, i
i = 0
Set RegEx = New RegExp
RegEx.Pattern = p_Patrn
RegEx.IgnoreCase = True
RegEx.Global = True
Set Matches = RegEx.Execute(p_Str)
For Each Match In Matches
i = i + 1
If p_Type = 0 Then
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
Else
RetStr = RetStr & Match.Value
If i < Matches.Count Then RetStr = RetStr & Spacer
If p_Type = i Then Exit For
End If
Next
ReSearch = RetStr
End Function
End Class
'ASP通用防注入代码
'您可以把该代码COPY到头文件中.也可以单独作
'为一个文件存在,每次调用使用
'作者:易恒
Dim GetFlag Rem(提交方式)
Dim ErrorSql Rem(非法字符)
Dim RequestKey Rem(提交数据)
Dim ForI Rem(循环标记)
Dim PostI Rem(非Get方式的时候是否需要过滤.True=需要.False=不要)
PostI = False
ErrorSql = "'~'~;~and~(~)~exec~update~count~*~%~chr~mid~master~truncate~char~declare"
ErrorSql = split(ErrorSql,"~")
If Request.ServerVariables("REQUEST_METHOD")="GET" Then
GetFlag=True
Else
GetFlag=False
End If
If GetFlag Then
For Each RequestKey In Request.QueryString
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.QueryString(RequestKey)),ErrorSql(ForI))<>0 Then
call lgRequestKey()
End If
Next
Next
Else
If PostI Then
For Each RequestKey In Request.Form
For ForI=0 To Ubound(ErrorSql)
If Instr(LCase(Request.Form(RequestKey)),ErrorSql(ForI))<>0 Then
call lgRequestKey()
End If
Next
Next
End If
End If
sub lgRequestKey()
dim url : url ="http://" + Request.ServerVariables("SERVER_NAME") + ":" + Request.ServerVariables("SERVER_PORT") + request.ServerVariables("script_name")+"?"+request.ServerVariableS("QUERY_STRING")
'response.Cookies("RequestKey")("url")=""
'response.Cookies("RequestKey")("ip")=""
if request.Cookies("RequestKey")("url")=url and request.Cookies("RequestKey")("ip")=lg_getIP() then
title="请不要连续操作!"
else
dim Sql
sql = "SELECT * FROM [Request_Info]"
Set rs = LG.OpenRs(sql, 1, 3)
rs.AddNew()
rs("Key") = url
rs("IP") = lg_getIP() 'ip
rs("WinOS") = lg_System() '系统
rs("NavigatorInfo") = lg_Browser() '浏览器
rs("LoginTime") = now() '时间
rs.Update()
rs.Close()
set rs = nothing
response.Cookies("RequestKey")("url")=url
response.Cookies("RequestKey")("ip")=lg_getIP()
end if
response.write "<style>body {background:#fff;margin:auto;text-align:center;}.box1 {line-height:32px;font-size:14px;margin:60px;clear:both;}</style><div class='box1'>非法参数!"&title&"<br />你的操作已记录!<br /><a href='javascript:window.close();'>关闭</a></div>"
response.end
end sub
'response.Write("http://" + Request.ServerVariables("SERVER_NAME") + ":" + Request.ServerVariables("SERVER_PORT") + request.ServerVariables("script_name")+"?"+request.ServerVariableS("QUERY_STRING"))
'**************************************************
'通用函数:如果不能取客户端真实IP,就会取客户端的代理IP
'**************************************************
Private Function lg_getIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
lg_getIP = Trim(Mid(strIPAddr, 1, 30))
End Function
'**************************************************
'通用函数:浏览器判断
'**************************************************
Function lg_Browser()
dim Info,Browser
Info=Request.ServerVariables("Http_User_Agent") ''在这里初始化了Info,在实际应用中可以作为其他变量赋值
If InStr(Info,"MSIE 6")>0 Then
Browser="Internet Explorer 6.0"
ElseIf InStr(Info,"MSIE 5.5")>0 Then
Browser="Internet Explorer 5.5"
ElseIf InStr(Info,"MSIE 5.0")>0 Then
Browser="Internet Explorer 5.0"
ElseIf InStr(Info,"MSIE 4")>0 Then
Browser="Internet Explorer 4.0"
Else
Browser="未知的浏览器!"
End if
lg_Browser="您的浏览器是:"&Browser&""
End Function
'**************************************************
'通用函数:操作系统判断
'**************************************************
Function lg_System()
dim Info,System
Info=Request.ServerVariables("Http_User_Agent")
If InStr(Info,"NT 5.1")>0 Then
System="Windows XP"
ElseIf InStr(Info,"NT 5.0")>0 Then
System="Windows 2000"
ElseIf InStr(Info,"NT 4")>0 Then
System="Windows NT"
ElseIf InStr(Info,"98")>0 Then
System="Windows 98"
ElseIf InStr(Info,"Me")>0 Then
System="Windows Me"
ElseIf InStr(Info,"95")>0 Then
System="Windows 95"
Else
System="未知的操作系统!"
End if
lg_System="您的操作系统是:"&System&""
End Function
%>
展开全部
access数据库转换成sql2000,如果表不是很多,我建议你手工创建sql数据库并手工建表,这样最好,你可以完全的熟悉这些表的字段,并且你还可以在在这些表的字段后面加上备注说明一下这些字段是什么意思。如果表很多,你又嫌麻烦,就找个ACCESS转sql的软件吧。百度一下有很多。
另外你要保持asp文件也可以用,这个问题不大的。access和sql2000的SQL语句基本通用,有少少区别,主要注意日期的查询,在access里日期查询的定界符是#号,而sql是单引号,还有像instr这个函数,access与sql2000都有这个函数,但其参数的顺序是不同的。
其他基本都差不多的了。
另外你要保持asp文件也可以用,这个问题不大的。access和sql2000的SQL语句基本通用,有少少区别,主要注意日期的查询,在access里日期查询的定界符是#号,而sql是单引号,还有像instr这个函数,access与sql2000都有这个函数,但其参数的顺序是不同的。
其他基本都差不多的了。
追问
这个原来asp连接access数据库的文件,请问怎样修改才能连接上转换后的sql数据库?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,将你的Access中的数据导入到SQL Server当中(过程略)
然后将 ConnStr 赋值为 "Driver={SQL Server};server=(local);uid=用户名;pwd=密码;database=数据库名"
一切就OK了。
然后将 ConnStr 赋值为 "Driver={SQL Server};server=(local);uid=用户名;pwd=密码;database=数据库名"
一切就OK了。
追问
能连接了,但是不能进行数据读取和写进,在asp也没添加和删除数据都不行。
追答
这是你在sql server当中,对应的uid没有对该数据库中的表具有操作权限的问题,我曾经也碰到过类似的问题,通过修改权限解决了。大致方法如下:
打开企业管理器,展开SQL Server(含有绿色图标),展开安全性,展开登录,找到与ConnStr中的uid对应的那项,右击它,选择属性,点击服务器角色,选择system administrators,确定。
然后你再试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(SiteDB)
换个连接字符串就行了
百度搜搜sql server字符串写法就可以
换个连接字符串就行了
百度搜搜sql server字符串写法就可以
更多追问追答
追问
其它的都不用改?
追答
不用 只有小部分sql语句有点差别 很少用到的 用的时候发现错误了就看看sql语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询