日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解析Access與Sql Server之ASP代碼比較(3)_Access數(shù)據(jù)庫教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解析ACCESS作為網(wǎng)站數(shù)據(jù)庫的弊端
現(xiàn)在網(wǎng)上絕大多數(shù)網(wǎng)站都是ACCESS+ASP的形式,因為ACCESS結(jié)構(gòu)簡單容易處理,而且也能滿足多數(shù)的網(wǎng)站程序要求。 ACCESS是小型數(shù)據(jù)庫,既然是小型就有他根本的局限性,以下幾種情況下數(shù)據(jù)庫基本上會吃不消: 1。數(shù)據(jù)庫過大,一般ACCESS數(shù)據(jù)庫達到50M左右的時候

三、連接字符串的改寫

可參考動網(wǎng)的這段,分別是針對access和SQL的
Dim ConnStr
If IsSqlDataBase = 1 Then
'sql數(shù)據(jù)庫連接參數(shù):數(shù)據(jù)庫名、用戶密碼、用戶名、連接名(本地用local,外地用IP)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "dvbbs7"
SqlPassword = ""
SqlUsername = "dvbbs"
SqlLocalName = "(local)"
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
Else
'免費用戶第一次使用請修改本處數(shù)據(jù)庫地址并相應(yīng)修改data目錄中數(shù)據(jù)庫名稱,如將dvbbs6.mdb修改為dvbbs6.asp
'http://www.knowsky.com/
Db = "data/fengerqingqing.mdb"
ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(db)
End If
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr

當然你使用SQL的話,有關(guān)access的使用語句可以刪除,就是else后面到on error resume next前面,變成這樣:

Dim ConnStr
'sql數(shù)據(jù)庫連接參數(shù):數(shù)據(jù)庫名、用戶密碼、用戶名、連接名(本地用local,外地用IP)
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName
SqlDatabaseName = "dvbbs7"
SqlPassword = ""
SqlUsername = "dvbbs"
SqlLocalName = "(local)"
ConnStr = "Provider = Sqloledb; User ID = " & SqlUsername & "; Password = " & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source = " & SqlLocalName & ";"
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr

也可以簡潔一些,寫成這樣:
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider = Sqloledb; User ID = sa; Password = 1234567; Initial Catalog = dvbbs7; Data Source = (local);"
里面的數(shù)據(jù)庫名稱、數(shù)據(jù)源、用戶、密碼根據(jù)自己的實際情況改寫一下。

四、程序的改寫

這也有兩種情況
1、如果你幸運,拿到的是For SQL的程序,那么如果上面的數(shù)據(jù)庫建立過程沒有遇到麻煩,程序基本上就可以運行了,出錯的話,只是程序本身的bug,如何修改不是這個帖子討論的內(nèi)容,就不贅述了。
2、大多數(shù)情況,程序本身是For Access的,與For SQL的程序差別主要是程序中使用到的SQL查詢語句。注意,SQL查詢語句是數(shù)據(jù)庫應(yīng)用不可缺少的部分,不管是For SQL還是For Aceess的程序使用的語法大體差不多,但是有一些微妙的差別,正是這些差別,造成了程序的不通用,也是我們需要修改的主要內(nèi)容。這樣一般要修改的部分如下:
(1)時間函數(shù)的問題:SQL數(shù)據(jù)庫的時間函數(shù)與access不同,最常見的是取現(xiàn)在時間的函數(shù),access是now(),SQL是getdate()。因此凡是在where子句中使用了now()的地方都要改成getdate();注意,now()函數(shù)在asp程序本身也要使用,凡是不在數(shù)據(jù)庫查詢或執(zhí)行語句中使用的now()函數(shù)千萬不要改。
(2)時間比較函數(shù):datediff('d','時間1',‘時間2’)這是access查詢用的格式,SQl中這些引號都要去掉,同時時間格式的前后可能加上了#,這也要去掉。同樣這也是指在sql語句中的,在asp語句中的要保持原樣。
(3)空值的表示:在access中,判斷空值一般用是否=""來表示,但是這在SQL中往往出錯,如果遇到出錯的問題或者程序運行不正常,可以改成如這樣判斷:where (name is null)
(4)真假值判斷:access中可以用=true、=false來判斷,但是在SQL中就會出錯,因此在SQL查詢或執(zhí)行語句中這類判斷要分別改成=1、=0。注意一點:有些程序雖然寫成=“true”,但是由于有引號,所以這個字段是字符類型的,你不能改成=1,保持原樣即可。

以上是比較常見的改寫的地方,還有一些不太常見,如果遇到了可以在此回帖討論。

五、程序的調(diào)試

前面推薦使用帶有行號的編輯器,是因為上述的改寫不大可能是直接搜索程序源碼來做,很難找全。
我采取的方式一般這樣:數(shù)據(jù)庫改寫完成,直接調(diào)試程序,出錯后,看看出錯的提示,找到相應(yīng)文件的代碼行,但是根源往往不是那行,比如出錯的語句是:conn.execute(sql),但是這句本身是沒有錯的,錯誤原因是里面的這個sql字符串,那就向上看這個sql字符串是如何生成的,按照上面所說的程序修改辦法修改。

分享:揭秘Access數(shù)據(jù)庫過大問題的幾種解決方案
問題: 1、我的Access數(shù)據(jù)庫里面沒存多少數(shù)據(jù),為什么體積很大,別人和我存一樣的數(shù)據(jù)為什么只有我的文件體積的1/10。 2、為什么我刪除了數(shù)據(jù),但是數(shù)據(jù)庫體積沒有減��? 3、為什么我存了幾張圖片到ole字段里面數(shù)據(jù)庫體積就變大,而且變大的速度超過圖片的總

來源:模板無憂//所屬分類:Access數(shù)據(jù)庫教程/更新時間:2010-02-26
相關(guān)Access數(shù)據(jù)庫教程