明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP設(shè)計(jì)經(jīng)常見(jiàn)問(wèn)題及回答精要-3

[摘要]17、問(wèn)題:在ASP中使用ADO的AddNew方法和直接使用“Insert into...”語(yǔ)句有何不同?哪種方式更好?   答:ADO的AddNew方法只是將“Insert into ”語(yǔ)句封裝了起來(lái),所以,當(dāng)對(duì)大量數(shù)據(jù)進(jìn)行操作的時(shí)候,直接使用SQL語(yǔ)句將會(huì)大大加快存取數(shù)據(jù)的速度,因?yàn)樗鼫p少了A...
17、問(wèn)題:在ASP中使用ADO的AddNew方法和直接使用“Insert into...”語(yǔ)句有何不同?哪種方式更好?

  答:ADO的AddNew方法只是將“Insert into ”語(yǔ)句封裝了起來(lái),所以,當(dāng)對(duì)大量數(shù)據(jù)進(jìn)行操作的時(shí)候,直接使用SQL語(yǔ)句將會(huì)大大加快存取數(shù)據(jù)的速度,因?yàn)樗鼫p少了ADO的“翻譯”時(shí)間,由于SQL語(yǔ)句所執(zhí)行的操作是直接在數(shù)據(jù)庫(kù)服務(wù)器中進(jìn)行的,尤其在數(shù)據(jù)量很大的時(shí)候有顯著的優(yōu)勢(shì)。

  18、問(wèn)題:為什么我在ASP中使用標(biāo)準(zhǔn)的插入記錄語(yǔ)句 insert into books(name,email) values(“kitty”, “kitty@263.com”)會(huì)出錯(cuò)?

  答:SQL(Structured Query Language/結(jié)構(gòu)式查詢語(yǔ)言)是IBM公司在1970年代所發(fā)展出來(lái)的數(shù)據(jù)查詢語(yǔ)言,它現(xiàn)在已經(jīng)成為關(guān)系型數(shù)據(jù)庫(kù)查詢語(yǔ)言的標(biāo)準(zhǔn)。SQL語(yǔ)句是一種以英文為基礎(chǔ)的程序語(yǔ)言,可以使用它來(lái)添加,管理以及存取數(shù)據(jù)庫(kù)。

  在SQL語(yǔ)句中添加時(shí)的字符串雖然可以使用雙引號(hào),但在ASP中卻需要使用單引號(hào)才能正常執(zhí)行。所以應(yīng)當(dāng)寫成insert into books(name,email) values(‘kitty’,‘kitty@263.com’)。

  19、問(wèn)題:什么是ActiveX 控件? 在哪里可以得到這些ActiveX控件?

  答:Microsoft ActiveX控件是由軟件提供商開(kāi)發(fā)的可重用的軟件組件。除了ASP的內(nèi)嵌對(duì)象外,另外安裝進(jìn)來(lái)的ActiveX控件也可以在ASP中使用,這樣可以節(jié)省許多寶貴的開(kāi)發(fā)時(shí)間,在ASP中其實(shí)也內(nèi)嵌了很多的ActiveX控件可以使用。

  使用ActiveX控件,可以很快地Web應(yīng)用程序、以及開(kāi)發(fā)工具中加入特殊的功能。例如,使用AdRotator對(duì)象來(lái)制作廣告滾動(dòng)板,使用FileSystemObject對(duì)象進(jìn)行文件存取,使用Marquee對(duì)象實(shí)現(xiàn)滾動(dòng)文字。

  現(xiàn)在,已有1000多個(gè)商用的ActiveX控件,開(kāi)發(fā)ActiveX控件可以使用各種編程語(yǔ)言,如C,C++等,以及微軟公司的 Visual Java開(kāi)發(fā)環(huán)境Microsoft Visual J++。 ActiveX控件一旦被開(kāi)發(fā)出來(lái),設(shè)計(jì)和開(kāi)發(fā)人員就可以把它當(dāng)作預(yù)裝配組件,用于開(kāi)發(fā)客戶程序。以此種方式使用 ActiveX控件,使用者無(wú)需知道這些組件是如何開(kāi)發(fā)的,在很多情況下,甚至不需要自己編程,就可以完成網(wǎng)頁(yè)或應(yīng)用程序的設(shè)計(jì)。

  目前由第三方軟件開(kāi)發(fā)商提供的商用控件有1000多種。微軟ActiveX組件庫(kù)(ActiveX Component Gallery)中存著有關(guān)信息以及相關(guān)的連接,它們指向微軟及第三方開(kāi)發(fā)商提供的各種 ActiveX 控件。在微軟ActiveX組件庫(kù)(ActiveX Component Gallery)中,可以找到開(kāi)發(fā)Internet增強(qiáng)型ActiveX 控件的公司列表。
  20、問(wèn)題:為什么使用strStartPort=(Request.Form ("catmenu_0")語(yǔ)句取到表單中起始站點(diǎn)的值在數(shù)據(jù)庫(kù)卻找不到?

  答:這是因?yàn)槿〉降钠鹗颊军c(diǎn)的值可能有空格,比如原意是“杭州”,但是由于空格存在,ASP程序取到的值可能就是“ 杭州”,而數(shù)據(jù)庫(kù)中只有“杭州”的記錄,當(dāng)然就找不到了,解決的方法是利用Trim 函數(shù)將字符串兩頭空格全部去除,相應(yīng)的語(yǔ)句為:
strStartPort=TRIM(Request.Form("catmenu_0"))

  21、問(wèn)題:在ASP中當(dāng)變量的生命周期結(jié)束后,有幾種保留變量?jī)?nèi)容的方法?

  答:任何導(dǎo)致網(wǎng)頁(yè)結(jié)束的操作,比如當(dāng)按下瀏覽器的“刷新”按鈕,或者關(guān)閉了瀏覽器,再重新打開(kāi)它,都會(huì)導(dǎo)致變量生命周期的結(jié)束。

  如果希望在網(wǎng)頁(yè)結(jié)束執(zhí)行時(shí),還能夠保留變量的內(nèi)容,以備下一次執(zhí)行時(shí)使用,就可以借助Application對(duì)象來(lái)實(shí)現(xiàn)。比如可以利用Application對(duì)象來(lái)制作統(tǒng)計(jì)網(wǎng)站訪問(wèn)量的計(jì)數(shù)器。

  Session對(duì)象跟Application對(duì)象一樣,可以在網(wǎng)頁(yè)結(jié)束時(shí)將變量的內(nèi)容存儲(chǔ)下來(lái),但是與Application對(duì)象不同的是,每個(gè)聯(lián)機(jī)是一個(gè)獨(dú)立的Session對(duì)象,簡(jiǎn)單地說(shuō)就是所有聯(lián)機(jī)上網(wǎng)者只會(huì)共享一個(gè)Application對(duì)象,但每位聯(lián)機(jī)上網(wǎng)者卻會(huì)擁有自己的Session對(duì)象。

  Application對(duì)象與Session對(duì)象可以幫我們把信息記錄在服務(wù)器端,而Cookies對(duì)象則會(huì)借助瀏覽器提供的Cookies功能將信息記錄在客戶端。有一點(diǎn)要注意,Cookies是記錄在瀏覽器的信息,所以數(shù)據(jù)的存取并不象存取其他ASP對(duì)象(信息存儲(chǔ)在Server端)那么簡(jiǎn)單,就實(shí)際運(yùn)行來(lái)看,只有在瀏覽器開(kāi)始瀏覽Server的某一網(wǎng)頁(yè),而Server尚未下載任何數(shù)據(jù)給瀏覽器之前,瀏覽器才能夠與Server進(jìn)行Cookies數(shù)據(jù)的交換。

  22、問(wèn)題:對(duì)象使用完后應(yīng)該怎么辦?

  答:當(dāng)使用完對(duì)象后,首先使用Close方法來(lái)釋放對(duì)象所占用的系統(tǒng)資源;然后設(shè)置對(duì)象值為“nothing”來(lái)釋放對(duì)象占用的內(nèi)存,否則會(huì)因?yàn)閷?duì)象太多導(dǎo)致WEB服務(wù)站點(diǎn)運(yùn)行效率降低乃至崩潰,相應(yīng)語(yǔ)句如下:

  < %
  對(duì)象.close
  set對(duì)象= nothing
  % >