3、數(shù)據(jù)庫搜索技巧 1082
在數(shù)據(jù)庫搜索中,如果我們只使用等于符號(hào)搜索“Pro”是無法提取出那些能夠匹配“ASP Pro”的記錄的。下面我們要介紹的是如何使用SQL的LIKE操作符實(shí)現(xiàn)部分文本搜索。
問:
從數(shù)據(jù)庫提取記錄集時(shí),是否有可能提取那些包含比我所指定的文本更多內(nèi)容的記錄,且不對(duì)搜索文本的出現(xiàn)位置有具體要求?
例如: StrName = 'Direct' RSShops = Server.CreateObject("ADODB.Recordset") strSql = "SELECT * FROM Shops WHERE Name = '" & StrName & "'
是否可以提取出商店名字中包含“direct”單詞的記錄集?
答:
不要在SQL命令中使用等于(“=”)操作符,而是改用LIKE操作符。
要提取出那些名字中包含“direct”的記錄,可以使用下面這個(gè)查詢命令: SELECT * FROM Shops WHERE Name LIKE '%direct%'
請(qǐng)按照這里的代碼修改實(shí)際使用的查詢。
4、數(shù)值顯示格式化 對(duì)于VB程序員來說,ASP中一個(gè)非常令人失望的改動(dòng)是VBScript中不再有Format函數(shù)。那么,如何格式化數(shù)字使得它不再以默認(rèn)的格式顯示?比如,將數(shù)字顯示為百分?jǐn)?shù)、貨幣金額或者加上小數(shù)占位符。下面的代碼幫你解決這個(gè)問題,告訴你如何通過用來取代VB Format的FormatXXXX函數(shù)來格式化輸出。
問:
在我開發(fā)的應(yīng)用中,某個(gè)頁面要顯示一些####.####格式的數(shù)字。在ASP中如何才能實(shí)現(xiàn)?
答:
使用VBScript的FormatNumber函數(shù),該函數(shù)能夠返回格式化的數(shù)字表達(dá)式。語法如下: FormatNumber(Expression [,NumDigitsAfterDecimal ][,IncludeLeadingDigit ][,UseParensForNegativeNumbers ][,GroupDigits]]]])
例如,F(xiàn)ormatNumber("123.45",4)將返回123.4500。
請(qǐng)參考http://msdn.microsoft.com/scripting的VBScript幫助獲得更多信息。 5、SQL命令中的引號(hào)處理 雖然用VBScript代碼構(gòu)造的SQL命令本身沒有問題,但是由于用戶輸入的表單數(shù)據(jù)中包含了單引號(hào)或雙引號(hào),本來合法的SQL語句不再合法。相信有不少讀者已經(jīng)遇到過這個(gè)問題。下面我們要介紹的就是如何解決這類問題。
問:
我有一個(gè)關(guān)于SQL Server更新、插入記錄命令的問題。我想用帶有一個(gè)或多個(gè)引號(hào)的字符串來更新數(shù)據(jù)庫,SQL將字符串中的引號(hào)看成語法符號(hào)并提示錯(cuò)誤。我應(yīng)該怎么辦呢?是否有其它的字符串分隔符?我已經(jīng)試過雙引號(hào)、[]、{}等,但都沒有用。
答:
在執(zhí)行SQL命令之前,應(yīng)當(dāng)把所有字符數(shù)據(jù)中的單引號(hào)用兩個(gè)單引號(hào)替代。
也就是說,如果SQL命令中出現(xiàn)了帶引號(hào)的字符串(比如用戶的名字為O'Brian),就會(huì)出現(xiàn)問題: Update Table Set NameField = 'O'Brian'
要解決問題,必須把字符串中的單引號(hào)轉(zhuǎn)換成兩個(gè)單引號(hào): Update Table Set NameField = 'O''Brian'
可以利用Replace函數(shù)實(shí)現(xiàn)這種轉(zhuǎn)換: strName = Replace(strName, "'" , "''" )
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!