技巧
6、处理数据库日期值
1099
如果说包含引号的字符串会带来问题的话,那么对我们的某些读者来说向数据库传递日期数据更是容易出错。下面我们根据所用数据库系统的类型分别解释如何正确地完成这一任务。
问:
如何使用ASP向数据库传递日期数据?
答:
答案与所用数据库类型有关。假设我们使用名为“strDate”的变量保存日期数据,如果使用Access数据库,那么生成字符串的代码为:
strSQL = " 合法的SQL命令 " & "#" & strDate & "#"
如果使用的是SQL Server、Sybase、Oracle等数据库,则代码为:
strSQL = "合法的SQL命令" & "'" & strDate & "'"
注意两者的区别在于发送日期数据所用的分隔符。Access使用“#”,而其他数据库使用的是单引号“'”。
7、检查Cookie是否启用
用户已经禁用Cookie?看来,这个用户不那么信任你。不过,既然他这么乐意搞小动作,你也不妨来一下。使用下面介绍的方法,你可以检查用户是否已经禁用了Cookie,然后礼貌地告诉他如果要使用网站的全部功能,那么他必须启用Cookie。
问:
如何才能知道用户是否关闭了Cookie?
答:
要检查用户是否已经关闭了Cookie,可按如下步骤进行:
设置一个Cookie。
重定向页面。
在重定向页面中读取Cookie。
如果存在Cookie,则用户已经启用了Cookie;否则,说明用户禁用了Cookie。
通过查询字符串确定当前位于步骤1还是3。
代码实例如下:
Dim strCookie, strTry
strCookie = Request.Cookies("MyCookie")
strTry = Request.QueryString("Try")
If strCookie = "" Then
' Check to see if this is a redirect
' after setting the cookie
If strTry = "" Then
Response.Cookies("MyCookie") = "Set"
' Redirect to this page and try again.
Response.Redirect(Request.ServerVariables("SCRIPT_NAME")
& "?Try=Yes")
Else
' User/Browser didn't accept cookies
' Do something...
End If
Else
' -- Hooray! User is accepting cookies
' -- Delete our cookie: by setting its
' -- expiry date to waaaay back
Response.Cookies("MyCookie").Expires = "January 1, 1980"
' Do something...
End If
8、检查文件是否存在
如果你通过ASP来管理文件,在处理某个文件之前必须确认一下该文件确实存在。下面介绍的简单代码可用于验证文件是否存在。
问:
我想访问某个数据库中的PDF文件,并在HTML页面中创建对这些文件的链接。在刷新链接之前,我想要验证文件是否确实存在。如何在ASP中实现验证功能?
答:
在ASP中可以使用FileSystemObject的FileExists方法验证文件是否存在。
Dim fs, strFileNameAndPath
strFileNameAndPath = Your file name
' -- Use file name and path
' -- from the database. Remember to map it
' -- to the Web Server's point of view.
' -- Use Server.MapPath for help.
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(strFileNameAndPath) Then
' -- 文件存在
else
' -- 文件不存在
end if