纯编码实现Access数据库的建立或压缩
<%
'#######以下是一个类文件,下面的注解是调用类的方法################################################
'# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用
'# Access 数据库类
'# CreateDbFile 建立一个Access 数据库文件
'# CompactDatabase 压缩一个Access 数据库文件
'# 建立对象方法:
'# Set a = New DatabaseTools
'# by (萧寒雪) s.f.
'#########################################################################################
Class DatabaseTools
Public function CreateDBfile(byVal dbFileName,byVal DbVer,byVal SavePath)
'建立数据库文件
'If DbVer is 0 Then Create Access97 dbFile
'If DbVer is 1 Then Create Access2000 dbFile
On error resume Next
If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"
If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
If DbExists(SavePath & dbFileName) Then
Response.Write ("对不起,该数据库已经存在!")
CreateDBfile = False
Else
Dim Ca
Set Ca = Server.CreateObject("ADOX.Catalog")
If Err.number<>0 Then
Response.Write ("无法建立,请检查错误信息
" & Err.number & "
" & Err.Description)
Err.Clear
Exit function
End If
If DbVer=0 Then
call Ca.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName)
Else
call Ca.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & SavePath & dbFileName)
End If
Set Ca = Nothing
CreateDBfile = True
End If
End function
Public function CompactDatabase(byVal dbFileName,byVal DbVer,byVal SavePath)
'压缩数据库文件
'0 为access 97
'1 为access 2000
On Error resume next
If Right(SavePath,1)<>"\" Or Right(SavePath,1)<>"/" Then SavePath = Trim(SavePath) & "\"
If Left(dbFileName,1)="\" Or Left(dbFileName,1)="/" Then dbFileName = Trim(Mid(dbFileName,2,Len(dbFileName)))
If DbExists(SavePath & dbFileName) Then
Response.Write ("对不起,该数据库已经存在!")
CompactDatabase = False
Else
Dim Cd
Set Cd =Server.CreateObject("JRO.JetEngine")
If Err.number<>0 Then
Response.Write ("无法压缩,请检查错误信息
" & Err.number & "
" & Err.Description)
Err.Clear
Exit function
End If
If DbVer=0 Then
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.3.51;Data
Source=" & SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
Else
call Cd.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
SavePath & dbFileName,"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
SavePath & dbFileName & ".bak.mdb;Jet OLEDB;Encrypt Database=True")
End If
'删除旧的数据库文件
call DeleteFile(SavePath & dbFileName)
'将压缩后的数据库文件还原
call RenameFile(SavePath & dbFileName & ".bak.mdb",SavePath & dbFileName)
Set Cd = False
CompactDatabase = True
End If
end function
Public function DbExists(byVal dbPath)
'查找数据库文件是否存在
On Error resume Next
Dim c
Set c = Server.CreateObject("ADODB.Connection")
c.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
If Err.number<>0 Then
Err.Clear
DbExists = false
else
DbExists = True
End If
set c = nothing
End function
Public function AppPath()
'取当前真实路径
AppPath = Server.MapPath("./")
End function
Public function AppName()
'取当前程序名称
AppName = Mid(Request.ServerVariables("SCRIPT_NAME"),(InStrRev(Request.ServerVariables("SCRIPT_NAME") ,"/",-1,1))+1,Len(Request.ServerVariables("SCRIPT_NAME")))
End Function
Public function DeleteFile(filespec)
'删除一个文件
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Err.number<>0 Then
Response.Write("删除文件发生错误!请查看错误信息
" & Err.number & "
" & Err.Description)
Err.Clear
DeleteFile = False
End If
call fso.DeleteFile(filespec)
Set fso = Nothing
DeleteFile = True
End function
Public function RenameFile(filespec1,filespec2)
'修改一个文件
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Err.number<>0 Then
Response.Write("修改文件名时发生错误!请查看错误信息
" & Err.number & "
" & Err.Description)
Err.Clear
RenameFile = False
End If
call fso.CopyFile(filespec1,filespec2,True)
call fso.DeleteFile(filespec1)
Set fso = Nothing
RenameFile = True
End function
End Class
%>
----------------------------------------
一套加解密字符串的函数
<%
Function Encrypt(theNumber)
On Error Resume Next
Dim n, szEnc, t, HiN, LoN, i
n = CDbl((theNumber + 1570) ^ 2 - 7 * (theNumber + 1570) - 450)
If n < 0 Then szEnc = "R" Else szEnc = "J"
n = CStr(abs(n))
For i = 1 To Len(n) step 2
t = Mid(n, i, 2)
If Len(t) = 1 Then
szEnc = szEnc & t
Exit For
End If
HiN = (CInt(t) And 240) / 16
LoN = CInt(t) And 15
szEnc = szEnc & Chr(Asc("M") + HiN) & Chr(Asc("C") + LoN)
Next
Encrypt = szEnc
End Function
Function Decrypt(theNumber)
On Error Resume Next
Dim e, n, sign, t, HiN, LoN, NewN, i
e = theNumber
If Left(e, 1) = "R" Then sign = -1 Else sign = 1
e = Mid(e, 2)
NewN = ""
For i = 1 To Len(e) step 2
t = Mid(e, i, 2)
If Asc(t) >= Asc("0") And Asc(t) <= Asc("9") Then
NewN = NewN & t
Exit For
End If
HiN = Mid(t, 1, 1)
LoN = Mid(t, 2, 1)
HiN = (Asc(HiN) - Asc("M")) * 16
LoN = Asc(LoN) - Asc("C")
t = CStr(HiN Or LoN)
If Len(t) = 1 Then t = "0" & t
NewN = NewN & t
Next
e = CDbl(NewN) * sign
Decrypt = CLng((7 + sqr(49 - 4 * (-450 - e))) / 2 - 1570)
End Function
%>
Original number: 69
Encrypt(69) returns: JNMQMOJ8
Decrypt("JNMQMOJ8") returns: 69
Another example using variables instead:
Encrypt(Request.Form("ID"))
Encrypt(myVar)
Decrypt(Request.QueryString("id"))
Decrypt("JNMQMOJ8")
Decrypt(myVar)
-------------------------------------------------
在ASP控制数字及字母输入
方法一:
str=Request("string")
temp=Server.URLEncode(str)
if str=temp then
response.write "你输入的不是英文或数字"
end if
文法二:
str=Request("string")
for i=1 to len(str)
a=mid(string,i,1)
if ((asc(a)<"0" and asc(a)>"9" ) or (asc(a)
response.write "你输入的不是英文或数字"
end if
next i
-----------------------------------------------
access数据库表改名的一段代码
<%
Call RenameTable("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=c:\example.mdb", "test", "changed")
Sub RenameTable (conStr, oldName, newName)
'Has to be OLE DB connection
'Create object and connect to DB...
Dim objADOXDatabase
Set objADOXDatabase = Server.CreateObject("ADOX.Catalog")
objADOXDatabase.ActiveConnection = conStr
'Change the name...
objADOXDatabase.Tables(oldName).Name = newName
'Clean up...
Set objADOXDatabase = Nothing
End Sub
%>
-----------------------------------------------
禁止从站点外部提交数据
<%
server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
response.write "
| "
response.write "你提交的路径有误,禁止从站点外部提交数据请不要乱该参数!" response.write " |
response.end
end if
%>
------------------------------------------------
由于需要,于是最近写了这么一个函数,是用来查找数据库中指定字段按拼音首字母的记录用的:
Function GetSQLString(ByVal Index)
Dim Ascii(27)
Dim Line,Row,Char,strTemp
Dim i,j
Ascii(1) = "45217,45252"
Ascii(2) = "45253,45310;45485,45566;45731,45760"
Ascii(3) = "45761,45822;45985,46078;46241,46317"
Ascii(4) = "46318,46334;46497,46590;46753,46825"
Ascii(5) = "46826,46846;47009,47009"
Ascii(6) = "47010,47102;47265,47296"
Ascii(7) = "47297,47358;47521,47613"
Ascii(8) = "47614,47614;47777,47870;48033,48118"
Ascii(9) = ""
Ascii(10) = "48119,48126;48289,48382;48545,48638;48801,48894;49057,49061"
Ascii(11) = "49062,49150;49313,49323"
Ascii(12) = "49324,49406;49569,49662;49825,49895"
Ascii(13) = "49896,49918;50081,50174;50337,50370"
Ascii(14) = "50371,50430;50593,50613"
Ascii(15) = "50614,50621"
Ascii(16) = "50622,50686;50849,50905"
Ascii(17) = "50906,50942;51105,51198;51361,51386"
Ascii(18) = "51387,51445"
Ascii(19) = "51446,51454;51617,51710;51873,51966;52129,52217"
Ascii(20) = "52218,52222;52385,52478;52641,52697"
Ascii(21) = ""
Ascii(22) = ""
Ascii(23) = "52698,52734;52897,52979"
Ascii(24) = "52980,52990;53153,53246;53665,53688"
Ascii(25) = "53689,53758;53921,54014;54177,54270;54433,54480"
Ascii(26) = "54481,54526;54689,54782;54945,55038;55201,55289"
If Index = "@" Then
GetSQLString = "SELECT * FROM Article WHERE SUBSTRING(REPLACE(REPLACE(Title,'“',''),'《',''),1,1) IN ('0','1','2','3','4','5','6','7','8','9') ORDER BY Title"
Exit Function
End If
GetSQLString = "SELECT * FROM Article WHERE SUBSTRING(REPLACE(REPLACE(Title,'“',''),'《',''),1,1) IN (" & "'" & Index & "'"
strTemp = Ascii(Asc(UCase(Index)) - 64)
If strTemp <> "" Then
Line = Split(strTemp, ";")
For i = 0 To UBound(Line)
Row = Split(Line(i), ",")
For j = Row(0) To Row(1)
Char = Chr(j - 65536)
GetSQLString = GetSQLString & ",'" & Char & "'"
Next
Next
End If
GetSQLString = GetSQLString & ") ORDER BY Title"
End Function
Dim Connection,Recordset
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
Connection.Open "......"
Recordset.Open GetSQLString("a"),Connection
... ...
虽然也许麻烦,但是冥思苦想小弟我也只能想出来这么多了,大家看看提提意见吧!
---------------------------------------------
将你的网站设置为客户的信任站点--WSH方案
ar SiteName="Acmnet"
SetTrustSite(SiteName);
WScript.Echo("You have accept 'http://acmnet/' as your Trusted Site");
function SetTrustSite(StrSiteName)
{
var WshShell=WScript.CreateObject("WScript.Shell");
WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\"+StrSiteName+"\\http", 2 ,"REG_DWORD");
TrustedSite_value=WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\Domains\\"+StrSiteName+"\\http");
delete WshShell;
}
-------------------------------------------
列出你的所有Session变:
<%@ Language=VBScript %>
<% Option Explicit %>
<%
Response.Write "在你的程序中一共使用了 " & Session.Contents.Count & _
" 个Session变量
"
Dim strName, iLoop
For Each strName in Session.Contents
'判断一个Session变量是否为数组
If IsArray(Session(strName)) then
'如果是数组,那么罗列出所有的数组元素内容
For iLoop = LBound(Session(strName)) to UBound(Session(strName))
Response.Write strName & "(" & iLoop & ") - " & _
Session(strName)(iLoop) & "
"
Next
Else
'如果不是数组,那么直接显示
Response.Write strName & " - " & Session.Contents(strName) & "
"
End If
Next
%>
------------------------------------------
处理驱动器和文件夹
使用 FileSystemObject (FSO) 对象模式,可以有计划地处理驱动器和文件夹,就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹,获取有关驱动器和文件夹的信息,等等。
获取有关驱动器的信息
可以用 Drive 对象来获得有关各种驱动器的信息,这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容:
驱动器的总容量,以字节为单位(TotalSize 属性)
驱动器的可用空间是多少,以字节为单位(AvailableSpace 或 FreeSpace 属性)
哪个号被赋给了该驱动器(DriveLetter 属性)
驱动器的类型是什么,如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘(DriveType 属性)
驱动器的序列号(SerialNumber 属性)
驱动器使用的文件系统类型,如 FAT、FAT32、NTFS 等等(FileSystem 属性)
驱动器是否可以使用(IsReady 属性)
共享和/或卷的名字(ShareName 和 VolumeName 属性)
驱动器的路径或根文件夹(Path 和 RootFolder 属性)
请考察示例代码,来领会如何在 FileSystemObject 中使用这些属性。
Drive 对象用法示例
使用 Drive 对象来收集有关驱动器的信息。在下面的代码中,没有对实际的 Drive 对象的引用;相反,使用 GetDrive 方法来获得现有 Drive 对象的引用(在这个例子中就是 drv)。
下面示例示范了如何在 VBScript 中使用 Drive 对象:
Sub ShowDriveInfo(drvPath)
Dim fso, drv, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
s = "Drive " & UCase(drvPath) & " - "
s = s & drv.VolumeName & "
"
s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
s = s & " Kb" & "
"
s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
s = s & " Kb" & "
"
Response.Write s
End Sub
下面的代码说明在 JScript 中实现同样的功能:
function ShowDriveInfo1(drvPath)
{
var fso, drv, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
drv = fso.GetDrive(fso.GetDriveName(drvPath));
s += "Drive " + drvPath.toUpperCase()+ " - ";
s += drv.VolumeName + "
";
s += "Total Space: " + drv.TotalSize / 1024;
s += " Kb" + "
";
s += "Free Space: " + drv.FreeSpace / 1024;
s += " Kb" + "
";
Response.Write(s);
}
处理文件夹
在下面的表中,描述了普通的文件夹任务和执行它们的方法。
任务 方法
创建文件夹。 FileSystemObject.CreateFolder
删除文件夹。 Folder.Delete 或 FileSystemObject.DeleteFolder
移动文件夹。 Folder.Move 或 FileSystemObject.MoveFolder
复制文件夹。 Folder.Copy 或 FileSystemObject.CopyFolder
检索文件夹的名字。 Folder.Name
如果文件夹在驱动器上存在,则找出它。 FileSystemObject.FolderExists
获得现有 Folder 对象的实例。 FileSystemObject.GetFolder
找出文件夹的父文件夹名。 FileSystemObject.GetParentFolderName
找出系统文件夹的路径。 FileSystemObject.GetSpecialFolder
请考察示例代码,来看看在 FileSystemObject 中使用了多少种这些的方法和属性。
下面的示例示范了如何在 VBScript 中使用 Folder 和 FileSystemObject 对象,来操作文件夹和获得有关它们的信息:
Sub ShowFolderInfo()
Dim fso, fldr, s
' 获得 FileSystemObject 的实例。
Set fso = CreateObject("Scripting.FileSystemObject")
' 获得 Drive 对象。
Set fldr = fso.GetFolder("c:")
' 打印父文件夹名字。
Response.Write "Parent folder name is: " & fldr & "
"
' 打印驱动器名字。
Response.Write "Contained on drive " & fldr.Drive & "
"
' 打印根文件名。
If fldr.IsRootFolder = True Then
Response.Write "This is the root folder." & ""
"
"
Else
Response.Write "This folder isn't a root folder." & "
"
End If
' 用 FileSystemObject 对象创建新的文件夹。
fso.CreateFolder ("C:\Bogus")
Response.Write "Created folder C:\Bogus" & "
"
' 打印文件夹的基本名字。
Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "
"
' 删除新创建的文件夹。
fso.DeleteFolder ("C:\Bogus")
Response.Write "Deleted folder C:\Bogus" & "
"
End Sub
下面的示例显示如何在 JScript 中使用 Folder 和 FileSystemObject 对象:
function ShowFolderInfo()
{
var fso, fldr, s = "";
// 获得 FileSystemObject 的实例。
fso = new ActiveXObject("Scripting.FileSystemObject");
// 获得 Drive 对象。
fldr = fso.GetFolder("c:");
// 打印父文件夹名。
Response.Write("Parent folder name is: " + fldr + "
");
// 打印驱动器名字。
Response.Write("Contained on drive " + fldr.Drive + "
");
// 打印根文件名。
if (fldr.IsRootFolder)
Response.Write("This is the root folder.");
else
Response.Write("This folder isn't a root folder.");
Response.Write("
");
// 用 FileSystemObject 对象创建新的文件夹。
fso.CreateFolder ("C:\\Bogus");
Response.Write("Created folder C:\\Bogus" + "
");
// 打印文件夹的基本名。
Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "
");
// 删除新创建的文件夹。
fso.DeleteFolder ("C:\\Bogus");
Response.Write("Deleted folder C:\\Bogus" + "
");
}
-------------------------------------------------------
asp导入word和excel
注意:两个函数中的“data“是网页中要导出的table的 id
导出到Excel代码
导出到Word代码
Sub buildDoc
set table = document.all.data
row = table.rows.length
column = table.rows(1).cells.length
Set objWordDoc = CreateObject("Word.Document")
'objWordDoc.Application.Documents.Add theTemplate, False
objWordDoc.Application.Visible=True
Dim theArray(20,10000)
for i=0 to row-1
for j=0 to column-1
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
next
next
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询结果集") //显示表格标题
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")
Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range
With rngPara
.Bold = True //将标题设为粗体
.ParagraphFormat.Alignment = 1 //将标题居中
.Font.Name = "隶书" //设定标题字体
.Font.Size = 18 //设定标题字体大小
End With
Set rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range
Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
for i = 1 to column
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
next
For i =1 to column
For j = 2 to row
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
Next
Next
End Sub
-------------------------------------------------------
如何将数据库中的二进制流文件生成到硬盘上?
<%
dim conn, rs
set conn = server.createObject("adodb.connection")
conn.open "Provider=OraOLEDB.Oracle;Data Source=oracle.mydomain.com;User ID=scott;PASSWORD=tiger;Persist Security Info=True"
set rs = conn.execute("SELECT blobcolumn FROM blobtable WHERE id = 7")
'Write it to the browser
response.binaryWrite rs.fields("blobcolumn").value
'Write it to disk
dim stream
set stream = server.createObject("adodb.stream")
stream.type = adTypeBinary
stream.open
stream.write(rs.fields("blobcolumn").value)
stream.saveToFile folderAndFileName, adSaveCreateOverWrite
stream.close
%>
----------------------------------------------------
强制ie下载代码:
示例:
下载source/aaa.zip文件
download.asp:
<%
Response.Buffer = true
Response.Clear
dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
’*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
‘******************************************************************
If Dname<>"" Then
'******************************下载文件存放的服务端目录
url=server.MapPath("../source")&"\"&Dname
‘***************************************************
End If
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Set fl=Nothing
Set fso=Nothing
%>
<%
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile url
Select Case lcase(Right(flName, 4))
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".txt"
ContentType = "text/plain"
Case Else
ContentType = "application/octet-stream"
End Select
Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
Response.AddHeader "Content-Length", flsize
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush
response.Clear()
objStream.Close
Set objStream = Nothing
%>
-----------------------------------------
如何利用SQL Server发送邮件?
在SQL Server中,提供了通过Exchange或Outlook收发邮件的扩展存储过程。下面简单地介绍一下:
一、启动SQL Mail:
xp_startmail @user,@password
其中,@user和@password都是可选的。
也可打开Enterprise Manager中的Support Services,在SQL Mail上单击右键打开右键菜单,然后按Start来启动
二、停止SQL Mail
xp_stopmail
也可用上述方法中的菜单里的Stop来停止
三、发送邮件
xp_sendmail {[@recipients =] 'recipients [;...n]'}
[,[@message =] 'message']
[,[@query =] 'query']
[,[@attachments =] attachments]
[,[@copy_recipients =] 'copy_recipients [;...n]'
[,[@blind_copy_recipients =] 'blind_copy_recipients [;...n]'
[,[@subject =] 'subject']
[,[@type =] 'type']
[,[@attach_results =] 'attach_value']
[,[@no_output =] 'output_value']
[,[@no_header =] 'header_value']
[,[@width =] width]
[,[@separator =] 'separator']
[,[@echo_error =] 'echo_value']
[,[@set_user =] 'user']
[,[@dbuse =] 'database']
参数说明:
序号 参 数 说 明 备 注
1 @recipients 收件人。多人中间用逗号分开 必需
2 @message 要发送的信息
3 @query 确定执行并依附邮件的有效查询 除触发器中的插入表及删除表外,此查询能引用任何对象
4 @attachments 附件
5 @copy_recipients 抄送
@blind_copy_recipients 密送
@subject 标题
@attach_results 指定查询结果做为附件发送
@no_header 不发送查询结果的列名
@set_user 查询联接的用户名 默认为Guset
@dbuse 查询所用的数据库 默认为缺省数据库
四、阅读邮件收件箱中的邮件
xp_readmail [[@msg_id =] 'message_number'] [, [@type =] 'type' [OUTPUT]]
[,[@peek =] 'peek']
[,[@suppress_attach =] 'suppress_attach']
[,[@originator =] 'sender' OUTPUT]
[,[@subject =] 'subject' OUTPUT]
[,[@message =] 'message' OUTPUT]
[,[@recipients =] 'recipients [;...n]' OUTPUT]
[,[@cc_list =] 'copy_recipients [;...n]' OUTPUT]
[,[@bcc_list =] 'blind_copy_recipients [;...n]' OUTPUT]
[,[@date_received =] 'date' OUTPUT]
[,[@unread =] 'unread_value' OUTPUT]
[,[@attachments =] 'attachments [;...n]' OUTPUT]]
[,[@skip_bytes =] bytes_to_skip OUTPUT]
[,[@msg_length =] length_in_bytes OUTPUT]
[,[@originator_address =] 'sender_address' OUTPUT]]
参数说明:
序号 参 数 说 明 备 注
1 @originator 发件人
2 @subject 主题
3 @message 信息
4 @recipients 收件人
5 @skip_tytes 读取邮件信息时跳过的字节数 用于顺序获取邮件信息段
6 @msg_length 确定所有信息的长度 通常与5一起处理长信息
五、处理下一个邮件:
xp_findnextmsg [[@msg_id =] 'message_number' [OUTPUT]]
[,[@type =] type]
[,[@unread_only =] 'unread_value']]
六、删除邮件:
xp_deletemail {'message_number'}
如果不指定邮件编号则删除收件箱中的所有邮件
七、自动处理邮件:
sp_processmail [[@subject =] 'subject']
[,[@filetype =] 'filetype']
[,[@separator =] 'separator']
[,[@set_user =] 'user']
[,[@dbuse =] 'dbname']
---------------------------------------------------
分行模块,自动识别英文和型号数
Function cuttextlen(intext, lens)
If Len(intext) <= lens Then
cuttextlen = intext
Else
tmptext = intext
GetTexts = ""
Do While Not Len(tmptext) <= lens
GetTexts = GetTexts + Left(tmptext, lens)
tmptext = Right(tmptext, Len(tmptext) - lens)
Do While (Asc(Left(tmptext, 1)) >= 65 And Asc(Left(tmptext, 1)) <= 90) Or (Asc(Left(tmptext, 1)) >= 97 And Asc(Left(tmptext, 1)) <= 122) Or (Asc(Left(tmptext, 1)) >= 45 And Asc(Left(tmptext, 1)) <= 57)
GetTexts = GetTexts + Left(tmptext, 1)
tmptext = Right(tmptext, Len(tmptext) - 1)
'If Len(tmptext) <= lens Then Exit Do
Loop
GetTexts = GetTexts & "
"
Loop
cuttextlen = GetTexts & tmptext
End If
End Function
---------------------------------------------------
如何利用ASP将一段包含html的标签的文本转换成纯文本,并且去掉其中的所有空格和换行?难啊!
这有何难?替换换行和空格用replace函数,去除HTML标记用下面的函数
<%
function str_replace(s_string,start_char,end_char,place_str)
start_pos=instr(s_string,start_char)
if start_pos>0 then
end_pos=instr(start_pos,s_string,end_char)
if end_pos>0 then
s_string=left(s_string,start_pos-1)&place_str&right(s_string,len(s_string)-end_pos-len(end_char)+1)
call str_replace(s_string,start_char,end_char,place_str)
end if
end if
str_replace=s_string
end function
%>
用法str_replace(HTML文本,"<",">","")
以上函数由于采用的是递归的方式,因此只能处理2000字符以下的文本,要处理更大的问题,改用for循环即可。

