雅酷SEO论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 701|回复: 0
打印 上一主题 下一主题

谈谈使用Access的论坛迁移到SqLServer中

[复制链接]

24

主题

0

好友

453

积分

中级会员

Rank: 3Rank: 3

  • TA的每日心情
    慵懒
    2013-8-1 13:49
  • 签到天数: 7 天

    连续签到: 4 天

    [LV.3]偶尔看看II

    跳转到指定楼层
    楼主
    发表于 2013-7-26 14:23:49 |只看该作者 |倒序浏览
    谈谈使用Access的论坛迁移到SqLServer中


    利用动网提供的论坛程序创建了一个内部论坛。原来,这个论坛是发布在windows2000的IIS5上的。他的数据库用的是Access。可是,当我将这个论坛迁移到windows2003上以后,发现经常死掉。到网上找了一下,并且咨询了微软的工程师,很多人都认为i这跟他使用Access有关。并且,我想在公司内部网站首页增加一个跑马灯来显示论坛中的新帖子,可是,如果继续用Access的话,访问起来不是那么方便。于是决定迁移到SQl中。

    耐蚀合金:http://www.liony.com.cn/

      第一步:将数据导入SQL Server

      进到SQL Server企业管理器,新建一个数据库,然后,选择导入数据,选择Access数据库作为导入源,导入所有的数据。

      第二步:修改数据表

      通过这种方式建立的数据表,是没有主键和默认值的,参照原来的Access库修改各个表。(这个比较烦,但是一定得做,因为后面的程序中会用到这些默认值)

      第三步:修改程序

      将站点迁移到相应的服务器,创建新的站点。首先,要改的就是数据库联接.由于Access中的一些函数和SqL中的一些函数不一样,所以,程序会报错,根据程序的报错信息修改相关的地方。这里主要要修改两个地方:

      SqL语句中的Now()函数:

      在Access中使用Now()函数来获取当前时间,而在SQL Server中用Getdate()函数来获取当前时间。但是,由于原来的程序是采用vb Script写的,VbScript中也采用Now()函数获取当前时间,所以要小心Sql语句中的Datediff函数的第一个参数:

      在Access中DateDiff的第一个参数用引号,并且只用一个字母来表示比较的部分,而在SqLServer中不需要引号,并且用全称和或者简称来表示,并且简称也是两个字母的。

      改完后逐项测试,改正所有的错误(都挺简单的)。

    阀门定位器:http://www.cszk1688.com/

      程序就可以正常使用了,前后时间可能花了4个多小时吧。

      我想到以下几点:

      1、如果,我们要使用Access数据库,为了以后迁移方便,我们应该尽量避免使用数据库的函数,而是多用程序语言的函数,在SQL语句的外面解决计算问题。如果,不能避免要使用这些数据库函数,我们也应该在代码中设置明显的注释标记,以便于以后迁移。

      2、我们在设计程序时候,要充分考虑数据库的迁移的需要,在插入语句、查询语句等语句的时候要尽量采用标准的SqL语法,并且要不厌其烦得插入默认值,而不要依赖数据库提供默认值,这样做,对以后的改进可能会有好处。

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0
    织带:http://www.yshzd.com/
    天鹅绒:http://www.shunfengzf.com/
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    百度SEO教程|谷歌SEO学术|百度SEO谷歌|网站SEO优化|雅酷SEO论坛  

    GMT+8, 2024-9-27 07:23

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部