在用ASP开发网站时,后台数据库的选择常常有两种,一种是SQL Server,另一种就是Access,那么这两种数据库在ASP开发网站的过程中有什么不同的地方吗?本文我们就来介绍这一部分内容,希望能够对您有所帮助。
后台数据库:[Microsoft Access]与[Microsoft Sql Server]更换之后,ASP代码应注意要修改的一些地方:
一、连接问题(举例)
class="dp-xml">
- [Microsoft Access]
- constr = "DBQ=c:\data\clwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
- [Microsoft Sql Server]
- constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
二、相似函数(举例)
[1]DATEDIFF(datepart, startdate, enddate),其中“datepart”参数可选项如下:
- 设置 描述
- ————————————
- [Microsoft Access]
- 年 yyyy
- 季度 q
- 月 m
- 一年的日数 y
- 日 d
- 一周的日数 w
- 周 ww
- 小时 h
- 分钟 n
- 秒 s
- [Microsoft Sql Server]
- year yy, yyyy
- quarter qq, q
- month mm, m
- dayofyear dy, y
- day dd, d
- week wk, ww
- hour hh
- minute mi, n
- second ss, s
- millisecond ms
基本上差不多,但注意的是在写的时候,[Microsoft Access]要加引号,如:datediff('d',enddate,'2004/08/01'),[Microsoft Sql Server]则不需要,如:datediff(d,enddate,'2004/08/01')
[2][Microsoft Access]中可用如cstr等转数据类型函数,而[Microsoft Sql Server]中则用convert或cast函数,如:convert(varchar,[amount])等。
[3][Microsoft Sql Server]取当前时间用getdate等等...
三、语句
[Microsoft Sql Server]可以用
- CASE
- WHEN THEN
- WHEN THEN
- ...
- ELSE
- END
语句,而[Microsoft Access]不支持。[Microsoft Access]也不支持between语句,[Microsoft Sql Server]则可以这样写:[date] between @date1 and @date2。
四、查询表
[Microsoft Sql Server]可三个及以上表join查询,而[Microsoft Access]好像只能两个表联接查询(待权威确认),而且[Microsoft Sql Server]可用“*=”和“=*”连接符。
五、除零问题
[Microsoft Access]在碰到除数为零时,自动丢掉相关记录,而[Microsoft Sql Server]则会报错,且查询中止。删除代码:[Microsoft Access]可以这样写:delete * from [table],[Microsoft SQL Server]只能这样写:delete from [table]多*会报错。
当前日期:[Microsoft Access]用date(),[Microsoft SQL Server],用getdate()如果数据库可能会更换类型的话,可以在ASP代码中加上如这样:
- if inStr(constr,"Microsoft Access") > 0 then
- sqlstr=[Microsoft Access][sql代码]
- else
- sqlstr=[Microsoft Sql Server][sql代码]
- end if
这样即使改了数据库,也不用改数据库查询更新代码了。再加:access中有true、false的字段记录,而sql里只有smallint,对应如果在access里有“字段名=true”的,在sql里要改成“字段名=1” ,网上大部分的免费asp程序使用的是access数据库。但是access数据库作为一个中小型的单机数据库系统,在承担访问量、数据量大的网站应用时,往往就不堪重负了。
一般认为,超过50M的access数据库性能就开始明显下降,超过100M以后,出错、运行慢的问题会更加突出。尽管可以如动网7.0以后那样,从程序的角度尽量优化以图提高性能,但是不能从根本上解决问题。这时也许使用微软的SQL Server数据库就是最可能的办法,当然也可以使用其它的如Oracle、MySQL等等,但是作为改写来说,由于同为微软的产品,改写成SQL Server应该是最省力的办法。
关于SQL Server与Access数据库ASP代码的比较的相关知识就介绍到这里了,希望本次的介绍能够对您有所收获!