access转mssql更换之后,ASP代码应注意要修改的一些地方
2014/2/20 11:43:57
access转mssql更换之后,ASP代码应注意要修改的一些地方:
Access与Sql Server之ASP代码比较
后台数据库:
[Microsoft Access]
与
[Microsoft Sql Server]
更换之后,ASP代码应注意要修改的一些地方:
[一]连接问题(举例)
[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
(constr--连接字符串)
这样即使改了数据库,也不用改数据库查询更新代码了。
再加:access中有true、false的字段记录,而sql里只有smallint,对应如果在access里有“字段名=true”的,在sql里要改成“字段名=1”
网上大部分的免费asp程序使用的是access数据库。但是access数据库作为一个中小型的单机数据库系统,在承担访问量、数据量大的网站应用时,往往就不堪重负了。一般认为,超过50M的access数据库性能就开始明显下降,超过100M以后,出错、运行慢的问题会更加突出。尽管可以如动网7.0以后那样,从程序的角度尽量优化以图提高性能,但是不能从根本上解决问题。
这时也许使用微软的SQL Server数据库就是最可能的办法,当然也可以使用其它的如Oracle、MySQL等等,但是作为改写来说,由于同为微软的产品,改写成SQL Server应该是最省力的
下一页
返回列表
返回首页
©2026 星辰电脑网络技术网 - 计算机服务网络信息中心(CSNIC) 电脑版
Powered by iwms