這篇文章主要講解了“SQLServer與Access數(shù)據(jù)庫ASP代碼有什么區(qū)別”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SQLServer與Access數(shù)據(jù)庫ASP代碼有什么區(qū)別”吧!
目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、康樂網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
后臺數(shù)據(jù)庫:[MicrosoftAccess]與[MicrosoftSqlServer]更換之后,ASP代碼應(yīng)注意要修改的一些地方:
一、連接問題(舉例)
[MicrosoftAccess]constr="DBQ=c:\data\clwz.mdb;DRIVER={MicrosoftAccessDriver(*.mdb)}"[MicrosoftSqlServer]constr="DRIVER={SQLServer};SERVER=host;DATABASE=mydata;uid=sa;pwd="
二、相似函數(shù)(舉例)
[1]DATEDIFF(datepart,startdate,enddate),其中“datepart”參數(shù)可選項如下:
設(shè)置描述————————————[MicrosoftAccess]年yyyy季度q月m一年的日數(shù)y日d一周的日數(shù)w周ww小時h分鐘n秒s[MicrosoftSqlServer]yearyy,yyyyquarterqq,qmonthmm,mdayofyeardy,ydaydd,dweekwk,wwhourhhminutemi,nsecondss,smillisecondms
基本上差不多,但注意的是在寫的時候,[MicrosoftAccess]要加引號,如:datediff('d',enddate,'2004/08/01'),[MicrosoftSqlServer]則不需要,如:datediff(d,enddate,'2004/08/01')
[2][MicrosoftAccess]中可用如cstr等轉(zhuǎn)數(shù)據(jù)類型函數(shù),而[MicrosoftSqlServer]中則用convert或cast函數(shù),如:convert(varchar,[amount])等。
[3][MicrosoftSqlServer]取當(dāng)前時間用getdate等等...
SQLServer與Access數(shù)據(jù)庫ASP代碼的區(qū)別有哪些
三、語句
[MicrosoftSqlServer]可以用
CASEWHENTHENWHENTHEN...ELSEEND
語句,而[MicrosoftAccess]不支持。[MicrosoftAccess]也不支持between語句,[MicrosoftSqlServer]則可以這樣寫:[date]between@date1and@date2。
四、查詢表
[MicrosoftSqlServer]可三個及以上表join查詢,而[MicrosoftAccess]好像只能兩個表聯(lián)接查詢(待權(quán)威確認(rèn)),而且[MicrosoftSqlServer]可用“*=”和“=*”連接符。
五、除零問題
[MicrosoftAccess]在碰到除數(shù)為零時,自動丟掉相關(guān)記錄,而[MicrosoftSqlServer]則會報錯,且查詢中止。刪除代碼:[MicrosoftAccess]可以這樣寫:delete*from[table],[MicrosoftSQLServer]只能這樣寫:deletefrom[table]多*會報錯。
當(dāng)前日期:[MicrosoftAccess]用date(),[MicrosoftSQLServer],用getdate()假如數(shù)據(jù)庫可能會更換類型的話,可以在ASP代碼中加上如這樣:
ifinStr(constr,"MicrosoftAccess")>0thensqlstr=[MicrosoftAccess][sql代碼]elsesqlstr=[MicrosoftSqlServer][sql代碼]endif
這樣即使改了數(shù)據(jù)庫,也不用改數(shù)據(jù)庫查詢更新代碼了。再加:access中有true、false的字段記錄,而sql里只有smallint,對應(yīng)假如在access里有“字段名=true”的,在sql里要改成“字段名=1”,網(wǎng)上大部分的免費asp程序使用的是access數(shù)據(jù)庫。但是access數(shù)據(jù)庫作為一個中小型的單機數(shù)據(jù)庫系統(tǒng),在承擔(dān)訪問量、數(shù)據(jù)量大的網(wǎng)站應(yīng)用時,往往就不堪重負(fù)了。
一般認(rèn)為,超過50M的access數(shù)據(jù)庫性能就開始明顯下降,超過100M以后,出錯、運行慢的問題會更加突出。盡管可以如動網(wǎng)7.0以后那樣,從程序的角度盡量優(yōu)化以圖提高性能,但是不能從根本上解決問題。這時也許使用微軟的SQLServer數(shù)據(jù)庫就是最可能的辦法,當(dāng)然也可以使用其它的如Oracle、MySQL等等,但是作為改寫來說,由于同為微軟的產(chǎn)品,改寫成SQLServer應(yīng)該是最省力的辦法。
感謝各位的閱讀,以上就是“SQLServer與Access數(shù)據(jù)庫ASP代碼有什么區(qū)別”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對SQLServer與Access數(shù)據(jù)庫ASP代碼有什么區(qū)別這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!