解析Access與Sql Server之ASP代碼比較(2)_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左右的時候
[四]查詢表
[Microsoft Sql Server]
可三個及以上表join查詢,而
[Microsoft Access]
好像只能兩個表聯(lián)接查詢(待權(quán)威確認),
而且[Microsoft Sql Server]可用“*=”和“=*”連接符。[五]除零問題
[Microsoft Access]
在碰到除數(shù)為零時,自動丟掉相關(guān)記錄,而
[Microsoft Sql Server]
則會報錯,且查詢中止。刪除代碼:
[Microsoft Access]
可以這樣寫:delete * from [table]
[Microsoft SQL Server]
只能這樣寫:delete from [table]
多*會報錯
_____________________________________
當(dāng)前日期:
[Microsoft Access]
用date()
[Microsoft SQL Server]
用getdate()如果數(shù)據(jù)庫可能會更換類型的話,可以
在ASP代碼中加上如這樣:
if inStr(constr,"Microsoft Access") > 0 then
sqlstr=[Microsoft Access][sql代碼]
else
sqlstr=[Microsoft Sql Server][sql代碼]
end if
(constr--連接字符串)
這樣即使改了數(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)用時,往往就不堪重負了。一般認為,超過50M的access數(shù)據(jù)庫性能就開始明顯下降,超過100M以后,出錯、運行慢的問題會更加突出。盡管可以如動網(wǎng)7.0以后那樣,從程序的角度盡量優(yōu)化以圖提高性能,但是不能從根本上解決問題。
這時也許使用微軟的SQL Server數(shù)據(jù)庫就是最可能的辦法,當(dāng)然也可以使用其它的如Oracle、MySQL等等,但是作為改寫來說,由于同為微軟的產(chǎn)品,改寫成SQL Server應(yīng)該是最省力的辦法。
一、改寫前提:
系統(tǒng)已經(jīng)安裝好SQL Server2000并且打上了SP3補��;安裝好Office套件里面的Access;使用一個支持純文本編輯并且?guī)в行刑栵@示的編輯器,推薦Ultra Edit,當(dāng)然也可以使用FrontPage2003,不過以前的版本行號顯示不太好用。
個人能力要求:會基本的asp語法、access數(shù)據(jù)庫的操作、SQLServer企業(yè)管理器的基本操作。
二、數(shù)據(jù)庫的準(zhǔn)備
一般來說有兩種情況:
1、程序提供了SQL數(shù)據(jù)庫格式:有一個MDF文件,或者提供了創(chuàng)建SQL數(shù)據(jù)庫的SQL腳本文件(后綴名為.sql)。
如果有mdf文件,可以用企業(yè)管理器直接附加上,如果提供的是sql腳本文件,那么就先用企業(yè)管理器自己創(chuàng)建一個sql數(shù)據(jù)庫,然后數(shù)據(jù)庫用企業(yè)管理器中的查詢分析器運行這個腳本創(chuàng)建數(shù)據(jù)庫表。
這樣建立的數(shù)據(jù)庫基本不用再去改寫什么了。
2、更多的是沒有提供SQL數(shù)據(jù)庫或腳本文件的,這時,就要自己來做這一切了,這也是我們這個帖子主要解決的問題。一般這樣的程序會提供一個access數(shù)據(jù)庫,這樣你就用企業(yè)管理器導(dǎo)入access數(shù)據(jù)庫,導(dǎo)入后需要改寫下面一些東西:
對照原來的access,改寫下面的部分:
(1)sql數(shù)據(jù)庫表是沒有自動字段的,因此原來access中的自動字段被轉(zhuǎn)換成了普通字段,需要手工改成標(biāo)識類型,增量為1。
(2)所有的時間字段,如果定義了默認值,那么原來肯定是now(),需要改成getdate()
(3)原來字段的默認值一般都不會自動引入,需要對照原表的字段手工添加。
(4)由于數(shù)據(jù)庫的不同,access和sql的字段類型很多轉(zhuǎn)換后就變化了,比如原來的《是否》字段會被轉(zhuǎn)換成bit或者int,備注字段被轉(zhuǎn)換成longtext,text字段轉(zhuǎn)換成varchar等等,一般來說不會影響程序運行,如果有問題,我們在下面的程序改寫部分再說。
(5)如果你要用一個For SQL的程序,里面用到了存儲過程,那么你應(yīng)該有這個程序本身建立SQL數(shù)據(jù)庫的方法:有其本身的SQL數(shù)據(jù)庫文件,或者sql腳本;如果沒有的話,采用導(dǎo)入access數(shù)據(jù)庫的方式是無法建立存儲過程的,這樣你最好放棄這個For SQL的程序版本,使用同樣版本的For Access的程序,導(dǎo)入access數(shù)據(jù)庫,然后用下面的改寫方法自己改成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登錄緩慢的解決方法
- 使用準(zhǔn)則進行條件查詢--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存儲過程翻頁
- 當(dāng)Access文件大于指定的大小時就自動壓縮
- Access數(shù)據(jù)庫開發(fā)技巧(一)
- 相關(guān)鏈接:
- 教程說明:
Access數(shù)據(jù)庫教程-解析Access與Sql Server之ASP代碼比較(2)
。