下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → Access与Sql Server之ASP代码比较__教程
Access与Sql Server之ASP代码比较__教程
日期:2007-5-9 18:53:50 人气:94     [ ]
上一页 [1] [2] [3] [4] [5] 下一页
  

后台数据库
[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应该是最省力的办法。

一、改写前提:

系统已经安装好SQL Server2000并且打上了SP3补丁;安装好Office套件里面的Access;使用一个支持纯文本编辑并且带有行号显示的编辑器,推荐Ultra Edit,当然也可以使用FrontPage2003,不过以前的版本行号显示不太好用。

个人能力要求:会基本的asp语法、access数据库的操作、SQLServer企业管理器的基本操作。

二、数据库的准备

一般来说有两种情况:
1、程序提供了SQL数据库格式:有一个MDF文件,或者提供了创建SQL数据库的SQL脚本文件(后缀名为.sql)。
如果有mdf文件,可以用企业管理器直接附加上,如果提供的是sql脚本文件,那么就先用企业管理器自己创建一个sql数据库,然后数据库用企业管理器中的查询分析器运行这个脚本创建数据库表。
这样建立的数据库基本不用再去改写什么了。
2、更多的是没有提供SQL数据库或脚本文件的,这时,就要自己来做这一切了,这也是我们这个帖子主要解决的问题。一般这样的程序会提供一个access数据库,这样你就用企业管理器导入access数据库,导入后需要改写下面一些东西:
对照原来的access,改写下面的部分:
(1)sql数据库表是没有自动字段的,因此原来access中的自动字段被转换成了普通字段,需要手工改成标识类型,增量为1。
(2)所有的时间字段,如果定义了默认值,那么原来肯定是now(),需要改成getdate()
(3)原来字段的默认值一般都不会自动引入,需要对照原表的字段手工添加。
(4)由于数据库的不同,access和sql的字段类型很多转换后就变化了,比如原来的《是否》字段会被转换成bit或者int,备注字段被转换成longtext,text字段转换成varchar等等,一般来说不会影响程序运行,如果有问题,我们在下面的程序改写部分再说。
(5)如果你要用一个For SQL的程序,里面用到了存储过程,那么你应该有这个程序本身建立SQL数据库的方法:有其本身的SQL数据库文件,或者sql脚本;如果没有的话,采用导入access数据库的方式是无法建立存储过程的,这样你最好放弃这个For SQL的程序版本,使用同样版本的For Access的程序,导入access数据库,然后用下面的改写方法自己改成SQL版本的程序。

出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.