您现在的位置:首页 > 网络编程 > ASP

解读提高MSSQL和ACCESS兼容性的方法

来源:站长地界  作者:网络收集  更新时间:2009-12-08   点击:

众所周知,ASP当中,最常用到的是ACCESS和MSSQL两个数据库。很多程序都想开发成两个数据库都可以使用的模式,但是碍于两个数据库得一些SQL语句不一致,所以导致很多程序都分两个没有必要的版本,就是ACCESS和MSSQL版!而事实上,我们可以通过对代码判断和识别,控制整个程序的兼容性。也就是说,将两个版本兼容成一个系统。例如我的ASP飞云小说系统,就是两种数据库都可以运作的程序。

那么,到底如何让程序存在数据库兼容性并且得到高效的运作呢。下边我将以我的飞云小说系统做范例,说说我的一些控制方法和代码。

首先,我们要控制一个参数,让程序知道我们现在运作的是什么数据库。

如:飞云小说程序中的Config.asp文件参数

以下为引用的内容:
Const SystemDatabaseType = "ACCESS"      '系统数据库类型,"SQL"为MSSQL 2000/2005数据库,"ACCESS"为MS ACCESS 2000数据库

这是兼容性开始的基础,是整个程序数据库的判别。所以是非常有必要设置这么一个参数的。

第二,数据库连接方式和常用函数的区分

在我的程序当中,Conn.asp里边还存在下边的一段代码:

代码:

If SystemDatabaseType = "SQL" Then
        ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlHostIP & ";"
        FY_True = "1"
        FY_False = "0"
        FY_Now = "GetDate()"
        FY_OrderType = " desc"
        FY_DatePart_D = "d"
        FY_DatePart_Y = "yyyy"
        FY_DatePart_M = "m"
        FY_DatePart_W = "ww"
        FY_DatePart_H = "hh"
Else   
        ConnStr= "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(mdb)
        FY_True = "True"
        FY_False = "False"
        FY_Now = "Now()"
        FY_OrderType = " asc"
        FY_DatePart_D = "'d'"
        FY_DatePart_Y = "'yyyy'"
        FY_DatePart_M = "'m'"
        FY_DatePart_W = "'ww'"
        FY_DatePart_H = "'h'"
End If
 

这个代码,除了区别数据库连接方式之后,还将MSSQL和ACCESS常用的语句进行变量赋值。这样做的好处就是后面使用相关内容的时候可以直接使用调用变量的方法,而不再需要进行数据库类型的判断。

例如对比时间的datediff函数问题上:

  • 下一篇:下面没有链接了
相关链接:
最新评论:
正在载入评论数据中...
发表评论:
不能超过500字节,请自觉遵守互联网相关政策法规.
用户名:验证码:点击更换验证码 匿名评论

站长推荐