一、提出問題:
在大型的asp專案中,都涉及到了條件查詢這一功能。使用者要求能夠針對特定的字段進行查詢。對於有些資料,是從多個表取出來的,因此也要能對多個表進行查詢。
一般的話,大多數的做法就是每個程式都做乙個查詢功能,因為每個查詢的表都不同,涉及的字段也不同。但是,如果在大型的asp專案中這麼做的話,不僅增加了工作量、影響開發進度,而且不能使系統模組化、**復用,增加了系統維護難度。因此,我們有必要使條件查詢模組化。
二、解決思路:
我們設計條件查詢的功能為:
1、選擇查詢字段(字段);
2、選擇查詢條件(<、>、=、<=、>=、<>、null、not null、like );
3、輸入條件值;
4、選擇運算關係(or、and);
5、將查詢條件新增到列表框、或從列表框刪除。
詳細介面請看下圖:
我們以新聞表(dbnews)為例,假定新聞表包含有標題、時間、內容、發布人。
在查詢資料庫時,我們一般都是用如:
「select * from news where time='2002-05-22' and user='tom'」,我們如果能在條件查詢中返回「time='2002-05-22' and user='tom'」的條件字串,問題就解決了。但如果是不同的程式、不同的表怎麼做呢?這就是看用什麼方法來定義查詢的字段了。
在這裡,我們把查詢字段作為乙個過程寫在程式中,在查詢模組中呼叫,這樣,查詢的字段就是動態的生成了。
使用者選擇好了乙個查詢字段,以及匹配條件,將它新增到框中,使用者可以繼續選擇另外的查詢條件,然後又把它新增到中,完成了,就點查詢按鈕。用查詢模組生成如:「time='2002-05-22' and user='tom'」的語句,這樣在程式中就可以呼叫了。
三、解決方案:
asp通用條件查詢模組的源**請參看 (四、源**)。
1、定義過程
在呼叫條件查詢模組前,首先要在程式中定義乙個searchfield()過程:
sub searchfield()
response.write "標題"
response.write "時間"
response.write "內容"
response.write "發布人"
end sub
其中,value中為欄位名稱,如果欄位為字元型,就在欄位名前加1,數字型就加2。如:"1title"。
注意:如果資料是從多個表中取出來的,如:select * from news,user ;那麼value的值就要加上相應的表,如:1news.title。這樣就可以從多個表查詢資料。
2、呼叫條件查詢模組:
3、加入按鈕事件:
加入「條件查詢」按鈕,並新增 onclick="search_dis(s1)"事件:
預設狀態下,條件查詢模組隱藏在頁面中,當點「條件查詢」按鈕,就顯示出來,這樣頁面即美觀,也不會妨礙使用者瀏覽。
這樣,我們就完成了「條件查詢」模組的呼叫
當選擇好了查詢條件,執行查詢後,程式getsql文字框將返回查詢條件,如:「title='chian' and user='tom'」,用request.form("getsql")取得!在把它加入到sql語句中,乙個新的查詢就生成了。
四、asp通用條件查詢模組的源**
小專案中通用的Makefile
在從事linux開發這10年間,我很少重頭寫makefile,如果是複雜的專案,我會使用ide,不用考慮makefile的問題。簡單的專案,就拿著剛開始學習linux程式設計時的模板修修補補,這些年就過來了,makefile的語法也忘得一乾二淨 話說makefile的語法規則真是亂 在實現makef...
專案中的通用查詢引數類,它體現了專案架構的大局觀
自定義謂詞 public class vpredication ienumerablestring,object 自定義區間 建構函式 public vpredication 驗證鍵是否存在值 鍵 bool public bool containskey string index 索引器 索引值 值...
git 子模組在專案中的使用
在公司的專案中,經常會遇到一些公共的內容,多個專案中間通用的,不可能每次都將整個 複製一遍,遇到這種情況有很多不同的解決方案,一般來說,專案是通過 git 來管理的,巧了,git 也同樣支援子模組.git submodule add git gitee.com hujingnb submodule ...