搜索
查看: 13463|回复: 0

[网站] 动网BBS Access版本转化为Sql-Server版本

[复制链接]
发表于 2012-12-21 21:53:04 | 显示全部楼层 |阅读模式

一、序言
    最近应朋友之邀,为朋友的网站从ACESS版本升级到Sql-Server版本。其中涉及到动网BBS以及其他ACESS数据库向Sql-Server的转变。这个过程现在看起来是简单易行的,但是当时在做的时候由于不清楚其中的一些关键的地方,还颇费了一番周折。
    这个升级过程从技术角度上主要分为数据库升级和程序升级两部分。
 
二、数据库升级
    数据库升级可以按照如下步骤进行:
    1)安装Sql-Server,可以是任何一个版本,当然版本越高越好。至少要安装客户端程序。
    2)使用虚拟主机服务商提供的IP/用户名/密码连接到Sql-Server服务器,然后导入数据。数据源类型选择Microsoft Access(*.mdb),然后找出对应数据库文件就可以按照向导进行下去了。
    3)导入数据之后就可以检查各个表。由于导入过程中主键信息不会保留,所以需要重新设置主键。另外一个需要注意的是默认值的处理。比如Access和ASP都使用Now()作为当前时间,而Sql-Server是使用GetDate()函数作为当前时间的。这些默认值都需要更改。
 
三、程序升级
    程序升级主要包含如下要点。
    1、更改数据库链接文件。一般命名为conn.asp。
    Acess下,这个文件的代码一般是这样的:
--------------------------------------------------------------------------------
<%
dim conn  
dim connstr
on error resume next
c+server.mappath("数据库文件路径")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>
--------------------------------------------------------------------------------
    而在Sql-Server下,这个文件的代码则要写成如下格式
--------------------------------------------------------------------------------
<%
dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionTimeout = 10
conn.CommandTimeout = 20
conn.CursorLocation = 3
conn.C '远程服务器情况
'conn.C '本地情况
conn.Open
%>
--------------------------------------------------------------------------------
    2、更改Access函数为Sql-Server函数
    主要需要更改的函数为Now()函数,Instr()函数,Datediff()函数。这些函数通常都会出现问题,尤其出现在Sql查询中时。对应应该改为GetDate()函数,CharIndex()函数,Datediff()函数要注意使用方法。

2 c' c& i2 V* ?) m5 s


四、后记
    1、这次升级过程再次提醒我程序严谨性的重要性。一些在ASP+Access环境下能够工作的程序在ASP+Sql-Server下却不能正常工作了,原因一般都是变量在某些条件下未空,却仍在随后的Sql查询语句中使用。所以在写程序的时候一定要注意变量的定义和使用。
    2、数据库默认值的使用。很多人包括我自己都喜欢使用数据库默认值,用起来很方便,但是移植到别的环境下就很麻烦了。所以如果可以在程序里赋值的字段则尽量应该在程序里完成。
 
    写了这么多我想有点基础的朋友们应该可以完成这个过程了。如果您不是技术人员却需要将普通程序或者动网论坛从Access版本升级到Sql-Server版本,那么您可以联系本站,本站提供相应的有偿服务。

5 {4 P' p( G$ x8 `" C: `. F& T

 

2 v1 H' x$ ]$ Y2 m% h2 M+ s- D

--------------------------------------------------------------------------------

) @& d: C5 Q; {2 F9 g


ACCESS转SQL SERVER的数据库的几点经验

6 Y# \9 h3 e; k( T; Y. y

 

$ n+ H2 V0 z3 H& [ Z3 T# T7 n

 1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编
 
号!

# l! u2 H7 Y$ z3 d% {

2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime
 
型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。

4 c0 c9 H {7 I! X/ r9 m. b- @4 l

3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL

0 T& a+ n7 E6 F. v! ~

SERVER数据库进行删除是用:"delete user where id=10".

! D5 D& @5 z0 b) R" c- t) l Y

4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数
 
,而不能用date()、time()等函数。

$ \$ Y8 e( C; W7 Q; q* Q

5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。 

2 O* V/ B$ H( \+ R+ J# ^& s! M4 v


--------------------------------------------------------------------------------

: e( s8 k. y/ p# a& h

 
 Access 转成SQL Server2000 数据库的一个绝对成功的好方法 

4 X9 g4 h% X& `

 
前几天在把网站的数据库从access转换成sql是遇到了不少问题,下面的方法可以使转换成功!
 
动网数据库Access 转成SQL Server2000 数据库的一个绝对成功的好方法:

7 l7 |8 o" I: r7 h6 [7 y

步骤如下:

- f! [3 M( ?0 ^" l

1、必须先安装Microsoft Office Access 2003,和SQL Server2000。
 
2、把旧的动网数据库备份,备份完成后,用Access 2003打开动网旧数据库,在打开时会出现一个警告,不要理会它(安全警告),按打开键
 
,打开后按工具栏——数据库实用工具——转换数据库——转换为2002-2003格式,把数据库转换成2003格式。

" u% l' B T% k9 g; t0 [

3、转换完成后再用Access 2003打开,打开后按工具栏——数据库实用工具——升迁向导——新建数据库——填写SQL数据库登陆名称、密码和
 
要新建的动网数据库(准备转成新的动网数据库),按下一步,按“ 》”键,再按下一步,选取所有选项,再按下一步,选择“不对应用程序
 
作任何改动”,再按完成。

2 Z H6 u) X, e' T7 |* t: M, R

4、打开SQL企业管理器——数据库---选中相应的数据库---右键所有任务-----生成SQL脚本——常规——全部显示——编写全部对象脚本——
 
确定(记住存放的位置)。

4 \7 a) j$ P" w) x9 S4 P# ^; y# Z6 M

5、用记事本打开刚才生成的SQL脚本,在编辑栏——替换——查找内容为“datetime”替换为“smalldatetime”——替换全部;完成后再在编
 
辑栏——替换——查找内容为“nvarchar”替换为“varchar”——替换全部,完成后保存退出。

3 j* w G Z& F$ ]

6、打开SQL企业管理器——数据库——点击这个数据库一下新建的动网数据库,然后在工具栏——SQL查询分析器——文件——打开——“刚才
 
生成的SQL脚本”——查询——执行,然后关闭窗口。

& H$ j7 \. S0 [. Q5 f" U7 r/ N

(有的朋友说,用sql版自带的sql脚本也可以,大家不妨试试看)
 
7、再回到SQL企业管理器——数据库——点击这个数据库一下新建的动网数据库,然后打开工具栏——数据库转换服务——导入数据——下一
 
步——数据源“Microsoft Access”文件名“为旧的动网数据库”——下一步——再下一步——从源数据复制表和视图——下一步——全选—
 
—下一步——立即运行——下一步——完成。

; |/ `- s7 o( u' t0 K

8、修改动网文件夹两个文件conn.asp和inc\const.asp。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

热议作品
精华帖子排行
精彩推荐

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 鲁公网安备 37021102000261号 |网站地图
返回顶部 返回列表