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]
yearyy, yyyy
quarterqq, q
month mm, m
dayofyear dy, y
day dd, d
weekwk, ww
hourhh
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]
则会报错,且查询中止。
(待权威确认)

[六]
...

以上只是本人今天换数据库时总结到的一些东西,
当然还有其他的很多,我没碰到的,建议大家补充。

另外我还想到一个方法,如果数据库可能会更换类型的话,可以
在ASP代码中加上如这样:
if inStr(constr,"Microsoft Access") > 0 then
sqlstr=[Microsoft Access][sql代码]
else
sqlstr=[Microsoft Sql Server][sql代码]
end if
(constr--连接字符串)
这样即使改了数据库,也不用改数据库查询更新代码了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值