2012-05-23

asp遇到相关问题集锦

1.acess 转换成sql 2005数据,用2005直接导入的时候丢了好多数据,结果想了一个折中的办法,用access升迁数据直接转换成sql数据库,竟然成功一大半了。
2.asp链接sql 2005相关代码
<%
Response.Buffer = True
'On Error Resume Next
Dim Conn,Connstr
Dim Sqldatabase,Sql_pass_word,Sql_User_ID,Sql_Data_Source
Sqldatabase="test" '填写数据库的名称
Sql_pass_word="123456" '数据库的密码
Sql_User_ID="sa" '数据库的用户名
Sql_Data_Source="(local)" '数据库的地址
Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=SQLOLEDB.1;Password='"&Sql_pass_word&"';Persist Security Info=False;User ID='"&Sql_User_ID&"';Initial Catalog='"&Sqldatabase&"';Data Source='"&Sql_Data_Source&"'"
Conn.Open Connstr
Function CloseDB
Conn.close
Set conn = Nothing
End Function
Function CloseRs
Rs.Close
Set Rs = Nothing
End Function
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "数据库连接出错,请检查连接字串。"
Response.End
End If
%>
3.jmail包装成函数的代码
<%
Function SendMail(MailDomain, LoginName, LoginPass, Subject, Email, Sender, Content, Fromer)
set jmail=CreateObject("jmail.Message")
jmail.Charset ="gb2312"
jmail.silent = true
jmail.From = Fromer
jmail.FromName = Sender
jmail.AddRecipient Email
jmail.MailDomain= MailDomain
jmail.MailServerUserName = LoginName
jmail.MailServerPassWord = LoginPass
jmail.subject=Subject
jmail.body= Content
On Error Resume Next
jmail.Send(MailDomain)
jmail.close()
set jmail=nothing
If Err Then
SendMail = Err.Description
Err.Clear
Else
End If
End Function%>
<%
response.write SendMail("smtp.exmail.qq.com","service@test.cn","test","subject","test@qq.com","test","sss45454s","service@test.cn")
%>
4.从utf-8的数据传到gb2312里面,用Escape才是王道。
<%
Function vbsEscape(str)
dim i,s,c,a
s=""
For i=1 to Len(str)
c=Mid(str,i,1)
a=ASCW(c)
If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
s = s & c
ElseIf InStr("@*_+-./",c)>0 Then
s = s & c
ElseIf a>0 and a<16 Then
s = s & "%0" & Hex(a)
ElseIf a>=16 and a<256 Then
s = s & "%" & Hex(a)
Else
s = s & "%u" & Hex(a)
End If
Next
vbsEscape = s
End Function
Function vbsUnEscape(str)
dim i,s,c
s=""
For i=1 to Len(str)
c=Mid(str,i,1)
If Mid(str,i,2)="%u" and i<=Len(str)-5 Then
If IsNumeric("&H" & Mid(str,i+2,4)) Then
s = s & CHRW(CInt("&H" & Mid(str,i+2,4)))
i = i+5
Else
s = s & c
End If
ElseIf c="%" and i<=Len(str)-2 Then
If IsNumeric("&H" & Mid(str,i+1,2)) Then
s = s & CHRW(CInt("&H" & Mid(str,i+1,2)))
i = i+2
Else
s = s & c
End If
Else
s = s & c
End If
Next
vbsUnEscape = s
End Function
%>
5.获取当前网址全部内容的代码
<%
Function GethttpUrl()
Dim ScriptAddress,Servername,qs
ScriptAddress = CStr(Request.ServerVariables("SCRIPT_NAME"))
Servername = CStr(Request.ServerVariables("Server_Name"))
qs=Request.QueryString
if qs<>"" then
GethttpUrl ="https://"& Servername & ScriptAddress &"?"&qs
else
GethttpUrl ="https://"& Servername & ScriptAddress
end if
End Function
%>
待续。。。。

完