解析Access與Sql Server之ASP代碼比較(3)_Access數(shù)據(jù)庫教程
推薦:解析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ù)庫安全策略之ASP式
- 第N次被ACCESS的關(guān)鍵字涮
- Access中用Jet SQL語句刪除表關(guān)系
- Access報表打印如何自動分頁
- Access完成累計余額的計算
- 搭建Access為主的Mdb數(shù)據(jù)庫
- 一句sql更新兩個表并可更新對應(yīng)的字段值具體實現(xiàn)
- MySQL查詢優(yōu)化:連接查詢排序limit(join、order by、limit語句)介紹
- 內(nèi)網(wǎng)ssh/mysql登錄緩慢的解決方法
- 使用準則進行條件查詢--1.4.從窗體中選擇查詢的條件
- 中文Access2000速成教程--1.1 使用“向?qū)А痹O(shè)計數(shù)據(jù)庫
- 中文Access2000速成教程--1.3 在“設(shè)計”視圖中設(shè)計表
Access數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Access數(shù)據(jù)庫教程推薦
猜你也喜歡看這些
- 如何在Access數(shù)據(jù)庫中使用通用對話框
- 中文Access2000速成教程--1.5 使用已有的數(shù)據(jù)自動建新表
- Access數(shù)據(jù)庫操作中出現(xiàn)的怪現(xiàn)象
- 揭秘Access數(shù)據(jù)庫過大問題的幾種解決方案
- 解析為何Access數(shù)據(jù)庫的精髓不在VBA之中
- 在Access數(shù)據(jù)庫中實現(xiàn)密碼管理的另一種方式
- Access轉(zhuǎn)Sql Server問題 實例說明
- 解析在Access中模擬sql server存儲過程翻頁
- 當Access文件大于指定的大小時就自動壓縮
- Access數(shù)據(jù)庫開發(fā)技巧(一)
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-解析Access與Sql Server之ASP代碼比較(3)
。