亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

asp和存儲過程中搜索程序的代碼實現

2024-05-04 11:05:07
字體:
來源:轉載
供稿:網友

存儲進程比較復雜復雜,但是可以支持多種邏輯字符,我們可以選擇在該表中搜索并優化存儲過程的速度,那么asp和存儲過程中搜索程序的代碼實現大家都了解嗎?下面就讓錯新技術頻道小編帶你一起來了解一下吧!
asp?函數

復制代碼 代碼如下:

??function?AnalyseKeyword(a_strSource)
??????dim?m_strDest?,?m_intLoop?
??????dim?m_intBeginPos?,?m_intEndPos
??????dim?m_strHead?,?m_strMiddle?,?m_strTail
??????m_strDest?=?a_strSource

??????'------------------------------處理空格------------------------------------------------------

??????'首先去掉頭尾空格
??????m_strDest?=?ltrim(rtrim(m_strDest))

??????'將&?,?"?and?"?等替換成?+、?-、空格
??????m_strDest?=?replace(m_strDest?,?"&"?,?"+")
??????m_strDest?=?replace(m_strDest?,?"?AND?"?,?"+")
??????m_strDest?=?replace(m_strDest?,?"?OR?"?,?chr(32))
??????m_strDest?=?replace(m_strDest?,?"?NOT?"?,?"-")??

??????'初始化變量,以使下面的循環進行
??????m_intBeginPos?=?1

??????do?while?m_intBeginPos?<>?0
?????????m_intBeginPos?=?instr(m_strDest?,chr(32))
?????????if?m_intBeginPos?<>?0?then???????????????'如果找到空格
????????????m_strHead?=?rtrim(ltrim(left?(?m_strDest?,?m_intBeginPos?)))
????????????call?print("[AnalyseKeyword()]:處理空格m_strHead?=?"?+?m_strHead)?
????????????m_strTail?=?rtrim(ltrim(right?(m_strDest?,?len(m_strDest)?-?m_intBeginPos)))
????????????call?print("[AnalyseKeyword()]:處理空格m_strTail?=?"?+?m_strTail)?
????????????m_strDest?=?m_strHead?+?"*"?+?m_strTail
?????????else
????????????exit?do
?????????end?if
??????loop????????????????
??????m_strDest?=?replace?(m_strDest?,?"*"?,?chr(32))????
??????call?print("[AnalyseKeyword()]:處理空格完畢后m_strDest?=?"?+?m_strDest)?
??????'-------------------------------空格處理完畢-------------------------------------------------

??????'-------------------處理單雙引號-----------------------------------------------------

??????'首先將單引號替換為雙引號
??????m_strDest?=?replace?(?m_strDest?,?chr(39)?,?chr(34))??????

??????'置一個初值以使循環進行
??????m_intBeginPos?=?1
??????m_intEndPos???=1
??????m_strHead?=?""
??????m_strTail?=?""
??????do?while?m_intBeginPos?<>?0?and?m_intEndPos?<>?0
?????????'如果發現雙引號,則記下開始位置,查找下一個雙引號
?????????m_intBeginPos?=?instr(m_strDest?,?chr(34))
?????????if?m_intBeginPos?<>?0?then??????????'如果找到第一個引號

????????????call?print("[AnalyseKeyword()]:第一個引號出現的位置:"?+?cstr(m_intBeginPos))

????????????m_intEndPos?=?instr(m_intBeginPos?+?1?,?m_strDest?,chr(34))
????????????if?m_intEndPos?<>?0?then?????????'如果找到第二個引號

???????????????call?print("[AnalyseKeyword()]:第二個引號出現的位置:"?+?cstr(m_intEndPos))

???????????????'將整個字符串按引號分隔成三段
???????????????call?print?("[AnalyseKeyword()]:處理引號m_strDest?=?"?+?m_strDest)
???????????????m_strHead???=?left(m_strDest?,?m_intBeginPos?-?1)
???????????????call?print?("[AnalyseKeyword()]:處理引號m_strHead?=?"?+?m_strHead)
???????????????m_strMiddle?=?mid(m_strDest?,?m_intBeginPos?+?1?,?m_intEndPos?-?m_intBeginPos?-?1)
???????????????call?print?("[AnalyseKeyword()]:處理引號m_strMiddle?=?"?+?m_strMiddle)
???????????????m_strTail???=?right(m_strDest?,?len(m_strDest)?-?m_intEndPos)?
???????????????call?print?("[AnalyseKeyword()]:m_strTail?=?"?+?m_strTail)

???????????????'如果在引號中有+號則作為字符處理,暫時替換成其他字符
???????????????m_strMiddle?=?replace(m_strMiddle?,?"+"?,?"|")
???????????????m_strDest?=?m_strHead?+?replace(rtrim(ltrim(m_strMiddle))?,?chr(32)?,?"#")?+?m_strTail??????????????????

????????????else
???????????????exit?do??
????????????end?if
?????????else
????????????exit?do???
?????????end?if??????
??????loop
??????m_strDest?=?replace(m_strDest?,?chr(34)?,?"+")
??????call?print?("[AnalyseKeyword()]:處理引號完畢后m_strDest?=?"?+?m_strDest)

??????'-------------------------------引號處理完畢-------------------------------------------------

??????'-------------------------------處理多個加號及加號兩邊的空格問題-----------------------------

??????
??????'處理多個加號的問題,遇到多個加號則認為是字符串,而不是邏輯符
??????m_strDest?=?replace?(m_strDest?,?"+++"?,"|||")
??????m_strDest?=?replace?(m_strDest?,?"++"?,?"||")
??????call?print?("[AnalyseKeyword()]:處理多個減號完畢后m_strDest?=?'"?+?m_strDest?+?"'")

??????'處理加號兩邊的空格
??????m_strDest?=?replace(m_strDest?,?"?+"?,?"+")
??????m_strDest?=?replace(m_strDest?,?"+?"?,?"+")
??????m_strDest?=?replace(m_strDest?,?"?+?"?,?"+")
??????call?print?("[AnalyseKeyword()]:處理減號兩邊的空格完畢后m_strDest?=?'"?+?m_strDest?+?"'")

??????'-------------------------------處理加號完畢-----------------------------

??????'-------------------------------處理多個減號及減號兩邊的空格問題-----------------------------

??????
??????'處理多個減號的問題,遇到多個減號則認為是字符串,而不是邏輯符
??????m_strDest?=?replace?(m_strDest?,?"---"?,"~~~")
??????m_strDest?=?replace?(m_strDest?,?"--"?,?"~~")

??????call?print?("[AnalyseKeyword()]:處理多個減號完畢后m_strDest?=?'"?+?m_strDest?+?"'")

??????'處理減號兩邊的空格
??????m_strDest?=?replace(m_strDest?,?"?-"?,?"-")
??????m_strDest?=?replace(m_strDest?,?"-?"?,?"-")
??????m_strDest?=?replace(m_strDest?,?"?-?"?,?"-")
??????call?print?("[AnalyseKeyword()]:處理加號兩邊的空格完畢后m_strDest?=?'"?+?m_strDest?+?"'")

??????'-------------------------------處理減號完畢-----------------------------

??????'------------------------------處理字符串兩頭的加減號問題-----------------
??????if?len(m_strDest)?>=?3?then
?????????m_strHead?=?left(m_strDest?,?1)
?????????m_strMiddle?=?mid(m_strDest?,?2?,?len(m_strDest)?-?2)
?????????m_strTail?=?right(m_strDest?,?1)
?????????if?m_strHead?=?"+"?or?m_strHead?=?"-"?then
????????????m_strHead?=?""
?????????end?if
?????????if?m_strTail?=?"+"?or?m_strTail?=?"-"?then
????????????m_strTail?=?""??
?????????end?if
?????????m_strDest?=?m_strHead?+?m_strMiddle?+?m_strTail
??????end?if???
??????'----------------------------處理完畢-------------------------------------
??????m_strDest?=?replace(m_strDest?,?"--"?,?"~~")
??????m_strDest?=?replace(m_strDest?,?"++"?,?"||")
??????m_strDest?=?replace(m_strDest?,?chr(32)?,?"@")
??????AnalyseKeyword?=?m_strDest
??????call?print?("[AnalyseKeyword()]:全部處理完畢后m_strDest?=?'"?+?m_strDest?+?"'")

???end?function?????
%>??


存儲過程
/*********************************************************************/
/*?proc?name?:????Up_ParseWordSearch?????????????????????????????????*/
/*???????????????????????????????????????????????????????????????????*/
/*?Description:???關鍵字搜索?????????????????????????????????????????*/
/*???????????????????????????????????????????????????????????????????*/
/*?parameters:????@a_strCategoryID???分類id??????????????????????????*/
/*????????????????@a_intPosition?????調用的位置??????????????????????*/
/*????????????????@a_strParseWord????搜索關鍵字??????????????????????*/
/*????????????????@a_intRowCount?????限定最多取得記錄數??????????????*/
/*???????????????????????????????????????????????????????????????????*/
/*?date:??????????2000/6/28??????????????????????????????????????????*/
/*???????????????????????????????????????????????????????????????????*/
/*?author:????????Liuyunpeng?????????????????????????????????????????*/
/*???????????????????????????????????????????????????????????????????*/
/*?history:??????????????????????????????????????????????????????????*/
/*********************************************************************/

if?exists?(select?*?from?sysobjects?where?id?=?object_id("up_ParseWordSearch"))
???drop?proc?up_ParseWordSearch
go

create?proc?up_ParseWordSearch?@a_strParseword?varchar(255)?,
???????????????????????????????@a_strCategoryID?varchar(255)?,
???????????????????????????????@a_intPosition???tinyint??,
???????????????????????????????@a_intRowCount???int
???as
??????declare?@m_strSqlCondition??varchar(255)???????--Sql語句的條件部分
??????declare?@m_strSqlSelect?????varchar(255)???????--Sql語句的選擇部分
??????declare?@m_strSqlCategory???varchar(100)???????--sql語句的分類部分

??????/*根據調用位置決定sql的選擇部分*/
??????select?@m_strSqlSelect?
?????????????=?case?
???????????????????when?@a_intPosition?=?4?then??????????????????--商品庫
?????????????????????????"select?ProductID?,?'Title'?=?ProductName?,?'Description'?=?left(Description?,?100)?"?
???????????????????????+?"?from?Product?where?"?
???????????????????when?@a_intPosition?=?5?then??????????????????--商業機會庫
?????????????????????????"select?ID?,?Title?,'Description'?=?left(convert(varchar,content)?,?100)?"
???????????????????????+?"?from?BusinessChance?where?"
???????????????????when?@a_intPosition?=?6?then???????????????????--公司庫
?????????????????????????"select?CompanyID?,?'Title'?=?CompanyName?,?'Description'?=left(Description?,?100)?"
???????????????????????+?"?from?Company?where?"
???????????????end

??????/*根據分類ID決定sql的分類部分*/
??????select?@m_strSqlCategory?
?????????????=?case
???????????????????when?@a_strCategoryID?<>?"0"?then?"?CategoryID?like?'"?+?@a_strCategoryID?+?"%'?and?"
???????????????????else?""
???????????????end

??????/*根據調用位置決定sql的條件部分*/
??????select?@m_strSqlCondition
?????????????=?case
???????????????????when?@a_intPosition?=?4???????????????????--商品
????????????????????????then??"(ProductName?like?'%"?+?@a_strParseWord?+?"%'"
????????????????????????????+?"?or?Description?like?'%"?+?@a_strParseWord?+?"%'"
????????????????????????????+?"?or?ProducerName?like?'%"?+?@a_strParseWord?+?"%')?"
???????????????????when?@a_intPosition?=?5???????????????????--商業機會??
????????????????????????then??"(Title?like?'%"?+?@a_strParseWord?+?"%'"
????????????????????????????+?"?or?Keyword?like?'%"?+?@a_strParseWord?+?"%')?"
???????????????????when?@a_intPosition?=?6
????????????????????????then??"(CompanyName?like?'%"?+?@a_strParseWord?+?"%'"
????????????????????????????+?"?or?Description??'%"?+?@a_strParseWord?+?"%')?"
???????????????end?????????

??????set?rowcount?@a_intRowCount??????????????????????
??????exec?(@m_strSqlSelect?+?@m_strSqlCategory?+?@m_strSqlCondition)
??????set?rowcount?0
go???

上文是asp和存儲過程中搜索程序的代碼實現,相信大家都有了一定的了解,想要了解更多的技術信息,請繼續關注錯新技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人午夜在线视频一区| 九九久久精品一区| 色妞欧美日韩在线| 成人在线免费观看视视频| 国产一区二区动漫| 亚洲女人被黑人巨大进入al| 久久久久久久久网站| 国产精品99久久久久久www| 欧美自拍大量在线观看| 亚洲男人天堂久| 国产午夜精品免费一区二区三区| 9.1国产丝袜在线观看| 一区二区亚洲欧洲国产日韩| 8x拔播拔播x8国产精品| 国产999精品久久久| 岛国av一区二区三区| 77777亚洲午夜久久多人| 欧美午夜视频在线观看| 国产午夜精品理论片a级探花| 久久av中文字幕| 日韩精品在线免费观看视频| 国产亚洲精品成人av久久ww| 欧美xxxx做受欧美| 91豆花精品一区| 国产精品久久久一区| 欧美日韩国产第一页| 国产精品丝袜久久久久久不卡| 久久久这里只有精品视频| 欧美中文字幕在线视频| 欧美性xxxxxxxxx| 亚洲自拍小视频免费观看| 国产亚洲精品美女久久久| 精品福利在线看| 国产成人在线一区二区| 日韩精品视频在线| 亚洲第一区在线| 91老司机在线| 日韩精品极品在线观看播放免费视频| 久热国产精品视频| 亚洲精品乱码久久久久久金桔影视| 97香蕉超级碰碰久久免费的优势| 国产成人综合亚洲| 91久久国产综合久久91精品网站| 亚洲精品美女在线观看播放| 精品国产一区二区三区久久狼5月| 亚洲欧美精品在线| 成人免费视频网址| 亚洲性xxxx| 国产成人aa精品一区在线播放| 91九色视频导航| 亚洲精品综合精品自拍| 亚洲成人精品av| 成人xvideos免费视频| 久久97精品久久久久久久不卡| 国产手机视频精品| 欧美另类极品videosbest最新版本| 亚洲色图15p| 成人黄色免费在线观看| 亚洲网在线观看| 91禁国产网站| 最近2019年日本中文免费字幕| 午夜精品一区二区三区在线播放| 欧洲日韩成人av| 国产精品精品视频一区二区三区| 亚洲精品日韩在线| 国产精品久久久久久久久男| 91久久久国产精品| 亚洲精品免费网站| 菠萝蜜影院一区二区免费| 欧美一级电影在线| 在线视频一区二区| 自拍视频国产精品| 色中色综合影院手机版在线观看| 正在播放亚洲1区| 国产日产久久高清欧美一区| 欧美在线视频免费观看| 亚洲美女中文字幕| 亚洲欧美视频在线| 欧美在线中文字幕| 91av在线免费观看| 欧美视频国产精品| 色香阁99久久精品久久久| 91高清视频免费| 国产精品爽爽爽| 在线观看免费高清视频97| 国内久久久精品| 曰本色欧美视频在线| 欧美激情国产精品| 久久久久久久香蕉网| 亚洲最大的网站| 久久777国产线看观看精品| 亚洲视频在线视频| 奇门遁甲1982国语版免费观看高清| 超碰91人人草人人干| 91夜夜未满十八勿入爽爽影院| 国产成人精品视频| 97久久精品人人澡人人爽缅北| 精品久久久久人成| 久久精品一本久久99精品| 国产精品日韩欧美综合| 色系列之999| 国产精品18久久久久久麻辣| 亚洲第一偷拍网| 日本亚洲欧美成人| 亚洲网站在线播放| 欧美电影免费观看网站| 国产一区二区在线播放| 97精品在线视频| www.亚洲成人| 91精品国产亚洲| 亚洲欧美综合图区| 午夜精品久久久久久久男人的天堂| 亚州av一区二区| 成人美女av在线直播| 91精品久久久久久久久| 久久国产精品影视| 丝袜亚洲欧美日韩综合| 国产美女91呻吟求| 成人国产精品色哟哟| 国产精品久久久久9999| 精品久久久中文| 亚洲精品福利免费在线观看| 亚洲精品成人久久| 日韩免费在线免费观看| 国产成人91久久精品| 欧美精品激情在线| 欧美激情精品久久久| 国产精品羞羞答答| 亚洲精品永久免费| 欧美黄色三级网站| 97久久久久久| 午夜美女久久久久爽久久| 欧美精品videos| 国产z一区二区三区| 欧美精品精品精品精品免费| 亚洲欧美激情视频| 亚洲一区美女视频在线观看免费| 欧美一级视频免费在线观看| 亚洲午夜未满十八勿入免费观看全集| 亚州精品天堂中文字幕| 欧美激情一区二区久久久| 日韩欧美在线视频免费观看| 国产精品无av码在线观看| 亚洲午夜色婷婷在线| 国产精品久久久久影院日本| 97香蕉久久夜色精品国产| 国产日韩精品在线观看| 亚洲黄页视频免费观看| 操91在线视频| 亚洲欧洲日韩国产| 色吧影院999| 国产精品免费久久久久影院| 69久久夜色精品国产7777| 精品亚洲一区二区三区在线观看| 日韩免费看的电影电视剧大全| 久久久免费观看视频| 69**夜色精品国产69乱| 欧美在线观看视频| 国产精品一区二区久久久久| 色偷偷偷综合中文字幕;dd| 影音先锋欧美精品| 亚洲字幕在线观看| 亚洲精品国产精品乱码不99按摩| 欧美日韩国产成人|