通用數據庫顯示程序

數據庫顯示程序,能調任意庫,任意字段,多關鍵字搜索,自動分頁.


阿余經常寫一些數據庫相關的程序,當然離不開顯示庫中的數據了,說實話,做這樣的程序真是無聊啊,所以,阿余就想寫個函數,一個通用的數據庫顯示函數.要求如下:

1. 能顯示指定的字段,當然,字段名和顯示的文字可以不一樣.
2. 能同時按多個字段進行查詢,支持模糊和精確兩種查詢方式.
3. 有橫向排列和縱向排列字段兩種顯示方式.
4. 能自動分頁.
5. 能設定每頁顯示多少條記錄.好啦,要求大至就是這樣了.根據這個要求,阿余寫了下面的函數.
實際上,這里阿余寫了兩個函數.一個是TABDISP(),用于顯示一個指定表中的內容.還有一個是ER()一個小小的錯誤處理函數.
這個函數有5個參數(真夠多的).并且各個參數都要輸入數據,不能是空白,不然會出錯的.
1(TAB), 要調用的表名.
2(DISPFILD), 要顯示表中的哪一些字段,如字段名和要顯示的字符不一樣用〈分隔.比如某一個字段名為:IMG,但要在頁面上顯示為:圖片, 那么,就寫為IMG〈圖片,如果有多個字段,各字段間用;,”分隔,唉,老聲長談.
3(FINDFILD), 要按哪些字段進行查詢,字段名和要顯示的字符間用〈分隔.
4(PAGEN), 每頁顯示多少條記錄.
5(FH), 顯示的方向.當為S時縱向顯示.為H時橫向顯示.
函數的返回值,當沒有出錯的時候,返回值為真,否則為假.
這個函數中沒有包括連接到數據庫的部分.所以要自己連接到庫.另外,為了重復應用.可以把這個函數專門用一個文件來保存,然后在需要的時候包含這個文件.
看下面的函數: (不要不看完,最后我舉有應用的例子)

〈%
'以下定義一個顯示表格的函數TABDISP(),參數TAB,被顯示的表名,DISPFILD,要顯示的字段,FINDFILD,查詢字段,PAGEN,每頁顯示數量,fh,顯示的方向
'如顯示成功,返回值為真,不成功,返回值為假.
'多個字段間用,分隔
'查詢字段一定要包含在顯示字段中.
'如字段名與要顯示的名稱不一樣,用〈分隔,前面是字段名,后面是顯示的名字,而要進行搜索的字段則一定要用〈分隔要字段名和顯示字符
'FH顯示方向為"H"時作橫向顯示,為"S"時作縱向顯示 區分大小寫
FUNCTION TABDISP(TAB,DISPFILD,FINDFILD,PAGEN,FH)
On Error Resume Next
IF DISPFILD="" THEN DISPFILD="*"
IF PAGEN="" THEN PAGEN=15
DISPFILD1=DISPFILD&","
findfild1=findfild&","

dim findl(10),findr(10)
i1=1
do while instr(findfild1,",")〈〉0
star=instr(findfild1,",")
findl(i1)=left(findfild1,star-1)
findr(i1)=findl(i1)
fildbak=findl(i1)
findl(i1)=left(fildbak,instr(fildbak,"〈")-1)
findr(i1)=right(fildbak,len(fildbak)-instr(fildbak,"〈"))
findfild1=right(findfild1,len(findfild1)-star)
i1=i1+1
loop

Response.Write "〈table border='0' width='100%' cellspacing='0'〉〈tr〉〈form method='GET'〉"
Response.Write "〈TD 〉 " 'width='50%'
IF SESSION("FLMENULBUP")〈〉"" THEN
Response.Write "當前欄目:〈A HREF='FLMEN.ASP?MENULB="&SESSION("FLMENULBUP")&"'〉"&MID(SESSION("FLMENULBUP"),4,200)&""
END IF
IF SESSION("flmenulb")〈〉 SESSION("FLMENULBUP") THEN
Response.Write " 〉〉 〈A HREF='FLMEN.ASP?menulb="&SESSION("FLMENULBUP")&"&LB="&SESSION("flmenulb")&"'〉"&MID(SESSION("flmenulb"),4,200)&""
END IF
Response.Write "〈/TD〉〈td align='right' 〉〈/td〉〈td align='right'〉〈table border='0' cellspacing='0' cellpadding='0'〉 "
Response.Write "〈tr〉〈td rowspan='2'〉〈img src='img/SEARCH.GIF' width='50'〉 〈/td〉"
for i3=1 to i1-1
Response.Write "〈td〉"&findr(i3)&":〈/td〉"
next
Response.Write "〈/tr〉〈tr〉" '〈td〉〈/td〉
for i2=1 to i1-1
Response.Write "〈td〉〈input type='text' name='key_word"&i2&"' size='8' value=''〉〈/td〉"
next

Response.Write "〈tr〉〈/table〉〈/td〉〈td width='20%'〉 〈input type='checkbox' name='find_fr' value='yes'〉精確 〈input type='submit' value='開始' name='B_FIND'〉〈/td〉"
Response.Write "〈/form〉 〈/tr〉〈/table〉"
find_fr=request("find_fr")
TJ=""
urllr="&find_fr="&find_fr
findlrdisp=""
FOR I3=1 TO I1-1
TJ1=request("KEY_WORD"&I3)
urllr=urllr&"&key_word"&i3&"="&tj1
IF TJ1=FINDR(I3) OR TJ1="" THEN
TJ1=""
ELSE
if find_fr〈〉"yes" then
findlrdisp=findlrdisp&findr(i3)&"包含;"&TJ1&"” "
tj1=" AND "&findL(I3)&" like '%"&TRIM(TJ1)&"%' "
else
findlrdisp=findlrdisp&findr(i3)&"是;"&TJ1&"” "
tj1=" AND "&FINDL(I3)&" = '"&TRIM(TJ1)&"' "
end if
END IF
TJ=TJ&TJ1
IF TJ="" THEN
TOPSN=" TOP 300 "
ELSE
TOPSN=""
END IF
NEXT

dim fild(35),dispfil(35),dispfildlr
dispfildlr=""
i=1
dispfild1=dispfild1
do while instr(dispfild1,",")〈〉0
star=instr(dispfild1,",")
fild(i)=left(dispfild1,star-1)
dispfil(i)=fild(i)
if instr(fild(i),"〈")〈〉0 then
fildbak=fild(i)
fild(i)=left(fildbak,instr(fildbak,"〈")-1)
dispfil(i)=right(fildbak,len(fildbak)-instr(fildbak,"〈"))
end if
dispfildlr=dispfildlr&fild(i)&","
dispfild1=right(dispfild1,len(dispfild1)-star)
i=i+1
loop
dispfildlr=left(dispfildlr,len(dispfildlr)-1)
SQL="SELECT "&topsn&" id,"&DISPFILDlr&" FROM "&TAB&" WHERE ID〈〉-1 "&tj&" order by -ID"
'Response.Write sql
session("tabsql")=sql
Set rs=Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,3
if not rs.eof then
pagesn=request("pagesn")
if pagesn〈=0 or pagesn="" then pagesn=1
rs.pagesize=pagen
pagezs=rs.pagecount
IF cint(PAGESN)〉pagezs THEN pagesn=PAGEZS
zs=rs.recordcount
page=(pagesn-1)*pagen
rs.move page,1
if findlrdisp〈〉"" then Response.Write "經搜索,"&findlrdisp&"的記錄如下:"
Response.Write "〈table border='0' width='90%'〉"
if zs〉=300 and topsn〈〉"" then
Response.Write "〈tr〉 〈form method='POST' action='?"&urllr&"'〉〈td width='54%'〉總數很多,當前顯示前"&ZS&"條,分"&PAGEZS&"頁,現在是第"&PAGESN&"頁〈/td〉"
else
Response.Write "〈tr〉 〈form method='POST' action='?"&urllr&"'〉〈td width='54%'〉一共"&ZS&"條,分"&PAGEZS&"頁,現在是第"&PAGESN&"頁〈/td〉"
end if
Response.Write "〈td width='11%' align='center'〉〈a href='?PAGESN="&PAGESN-1&urllr&"'〉上一頁〈/td〉"
Response.Write "〈td width='11%' align='center'〉〈a href='?PAGESN="&PAGESN+1&urllr&"'〉下一頁〈/td〉"
Response.Write "〈td width='24%' ALIGN='RIGHT'〉跳轉到第 "
Response.Write "〈input type='text' name='PAGESN' size='2'〉頁〈input type='submit' value='GO' name='B1'〉〈/td〉〈/form〉 "
Response.Write "〈/tr〉〈/table〉 "
if fh="H" THEN
Response.Write " 〈table border='0' width='100%' cellspacing='1' cellpadding='0'〉"
Response.Write " 〈tr bgcolor='#EDBAA5' align='center'〉 "
for ii=1 to i-1
Response.Write "〈td〉"&dispFIL(ii)&"〈/td〉"
next
Response.Write "〈/tr〉"
for iii=1 to pagen
Response.Write "〈tr bgcolor='#FFFAEE'〉"
FOR II=1 TO I-1
Response.Write "〈td〉"&RS(fild(II))&"〈/td〉"
NEXT
Response.Write "〈/tr〉"
RS.MOVENEXT
if rs.eof then exit for
next
Response.Write "〈/table〉"
ELSE
Response.Write " 〈table border='0' width='100%' cellspacing='1' cellpadding='0'〉"
for iii=1 to pagen
FOR II=1 TO I-1
Response.Write "〈tr〉〈td bgcolor='#EDBAA5' ALIGN='RIGHT' WIDTH='20%'〉"&dispFIL(ii)&":〈/td〉〈td bgcolor='#FFFAEE'〉"&RS(fild(II))&"〈/td〉〈/tr〉"
NEXT
Response.Write "〈tr height='1'〉〈td bgcolor='#CFBA9E' colspan='2' ALIGN='RIGHT' WIDTH='20%'〉 〈/td〉〈/tr〉"
RS.MOVENEXT
if rs.eof then exit for
next
Response.Write "〈/table〉"
END IF
rs.close
Response.Write "〈table border='0' width='90%'〉"
if zs〉=300 and topsn〈〉"" then
Response.Write "〈tr〉 〈form method='POST' action='?"&urllr&"'〉〈td width='54%'〉總數很多,當前顯示前"&ZS&"條,分"&PAGEZS&"頁,現在是第"&PAGESN&"頁〈/td〉"
else
Response.Write "〈tr〉 〈form method='POST' action='?"&urllr&"'〉〈td width='54%'〉一共"&ZS&"條,分"&PAGEZS&"頁,現在是第"&PAGESN&"頁〈/td〉"
end if
Response.Write "〈td width='11%' align='center'〉〈a href='?PAGESN="&PAGESN-1&urllr&"'〉上一頁〈/td〉"
Response.Write "〈td width='11%' align='center'〉〈a href='?PAGESN="&PAGESN+1&urllr&"'〉下一頁〈/td〉"
Response.Write "〈td width='24%' ALIGN='RIGHT'〉跳轉到第 "
Response.Write "〈input type='text' name='PAGESN' size='2'〉頁〈input type='submit' value='GO' name='B1'〉〈/td〉〈/form〉 "
Response.Write "〈/tr〉〈/table〉 "
else
Response.Write "沒有找到合適的記錄"
end if
if er() then
tabdisp=False
else
tabdisp=True
end if
END FUNCTION

Function Er() '錯誤處理函數
If Err.Number = 0 Then
Er = False
Else
Err.Clear
Er = True
End If
End Function
%〉

終于看完函數了....
各位有點累,其實仔不仔細看都沒有關系.反正只管調它就是了.下面舉一個應用的例子.
首先, 我們把前面的函數就是〈%和%〉之間的部分保存到一個叫 TABDISP.ASP的文件中.
代碼如下:
顯示一個職式名冊表,表名: ZG
有ID 姓名 職務 職稱 TEL BP DZ(地址)幾個字段.

〈%
。。。。。。
連接數據庫,此處略過,不寫了。
%〉
〈!--#include file="TABDISP.asp"--〉
〈%
DISP="姓名,職務,職稱,TEL〈電話,BP〈傳呼,DZ〈地址"
FIND="姓名〈姓名,職務〈職務,DZ〈地址"
PAGEN="15"
FH="H"
TAB="ZG"

IF NOT TABDISP(TAB,DISP,FIND,PAGEN,FH) THEN
response.write "出現錯誤,"
END IF
SET CONN=NOTHING
%〉

把上面的內容隨便起個文件名,就一切OK.

轉載于:https://www.cnblogs.com/MaxIE/archive/2006/03/15/350218.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2019.8.13 sdfzoier

lxy: lixf acwing上的118,126 zhangtingyu zhaosirui wujialin 轉載于:https://www.cnblogs.com/caterpillor/p/11186047.html

鴻蒙 電視盒子,目前最強的電視盒子:性價比最高的5款電視盒子

電視盒子作為目前人們滿足精神生活的一個電子產品,產品的質量自然是要有很高的保證,并且要有較好的使用體驗,在產品價格上也要讓消費者感到實惠,以上這些要求也是我們所說的性價比,性價比最高的盒子,也足以…

CDH-5.7.0:基于Parcels方式離線安裝配置

http://shiyanjun.cn/archives/1728.html https://www.waitig.com/cdh%E5%AE%89%E8%A3%85.html

From 7.8 To 7.14

From 7.8 To 7.14 大綱 學科 英語的話每天早上背單詞, 爭取每天做一篇完型, 一篇閱讀, 一篇短文填空, 一篇改錯, 一篇七選五??? 似乎太多了, 先試一下吧 語文的話, 嘗試翻譯一下文言文??? 理科先不管他 競賽 考試, 題解, 做題, 恩, 應該差不多吧 7.12 考試, 改題... 今天…

html郵箱地址的正則表達式,javascript寫一個校驗郵箱的正則表達式

test判斷字符串是否符合正則的要求注意注意:字符串有一部分符合要求,test就會判斷為真。這個時候我們可以加一個行首(^)行尾($)來控制分析我們根據常用郵箱寫一個中文的校驗規則如下:我們常用的郵箱格式:yancamy126.comyan233__qq…

系統需求分析文檔需要考慮的問題

最近作了幾次需求分析,有了一些經驗,特共享出來.歡迎指正.我認為在系統需求分析中,有三個問題需要注意,即系統涵蓋范圍用戶對上線時間的要求系統上線對目前系統整體的影響系統覆蓋的范圍很多用戶都想的是,這次一定要把所有遇到的問題解決完. 也就說,客戶潛在的心理是對系統較高…

洛谷 P1414 又是畢業季II (多個數的最大公因數)

這道題其實不難,但是我想復雜了 我想的是把每個數質因數分解,然后每次就枚舉每個質因數 來求最小公倍數。 然后想了想這樣復雜度將會非常的大,肯定超時 然后看了題解發現不需要質因數分解,直接存因數的個數就好了 c[i]表示i這個因…

前端之CSS

什么是CSS&#xff1f; 在標簽上設置標簽的style屬性。 編寫CSS的方法 一、直接在標簽中寫style屬性。 二、在head標簽中寫style標簽&#xff0c;這里就需要選擇器選擇所需的標簽 1、id選擇器&#xff0c;以#開頭&#xff0c;例子如下&#xff1a; <!DOCTYPE html> <h…

[asp]統計在線人數情況

[asp]統計在線人數情況 以前ASP版本的統計在線。因為是從以前的系統中提取出來的。使用的話要修改下。 IfCbool(Application("MARKONLINE")) TrueThenCheckOnline()FunctionCheckOnline() DIMIP,rsPrv,Sql IfDBSTATE FalseThenDbOpen() SetrsPrvServer.Crea…

android 局域網鄰居,局域網內無鄰居 它們去哪兒了?

最近不知道是炎炎夏日的原因&#xff0c;還是部分地區雨水過多的問題&#xff0c;造成了好多小伙伴反應說&#xff0c;無法在網絡中看到同在一個局域網中的其他電腦、服務器或打印機。這個問題說大不大&#xff0c;說小不小&#xff0c;但很難用幾句話把問題解決&#xff0c;所…

svg 線條動畫淺嘗

看了別人網站的svg動畫覺得非常舒服,自己嘗試實現一下效果如下: 實現需要明白2個關于svg的css屬性 1. stroke-dasharray stroke-dasharray: <percentage> | <length> | inherit數與數之間用逗號或者空白隔開&#xff0c;指定短劃線和缺口的長度。如stroke-dasharr…

Ajax 的亂碼問題(2)

上次說的是“發送數據”時亂碼的處理方法。那么“接收數據”呢&#xff1f;亂碼問題弄得我快瘋了&#xff0c;所以廢話也不多說了&#xff0c;總結如下&#xff1a;服務端&#xff1a;///<summary>///Ajax 格式數據到本地客戶端///</summary>///<param name&quo…

《子彈筆記術》[日]杉野干人(作者)epub+mobi+azw3格式下載

下載地址&#xff1a;點我下載后手機可瀏覽內容簡介在工作中&#xff0c;越是復雜的項目&#xff0c;需要記錄的事情越多&#xff0c;花費的時間自然也越多。如果使用傳統筆記方法&#xff0c;規劃將變成苦差事。子彈筆記術的核心是快速收集和處理信息&#xff0c;它可以幫助你…

html廣告條效果,css3炫酷網站banner廣告動畫特效

這是一款可以用來遮罩網站banner或廣告的動畫特效插件。該特效使用的是 CSS3 animations。注意不是所有的瀏覽器都支持 CSS3 animations。如果你對 CSS3 animations還不了解&#xff0c;建議你先閱讀W3C CSS Animations。HTMLhtml結構如下&#xff1a;Lost at sea?Relax - wev…

開始測試React Native App(上篇)

前期技術儲備 前言 我是測試小白&#xff0c;小小白&#xff0c;小小小白&#xff0c;最近想在成了一定規模的項目中引入測試&#xff0c;于是找了許些資料學習&#xff0c;現在已經在項目中成功引入。于是想在思路明朗和記憶深刻的時候總結下學習路徑以及寫測試中遇到的難點、…

mysql 5中的store function

mysql 5中的store function mysql 5中新增了視圖&#xff0c;存儲過程&#xff0c;觸發器等新功能&#xff0c;其中不少資料對其都有介紹&#xff0c;今天看到了其中的一個叫store function的功能&#xff0c;和存儲過程有點象&#xff0c;但返回的是值哦&#xff0c;用法挺靈活…

html frame跳轉實例,HTML frame標簽怎么用?frame標簽的具體使用實例

本篇文章主要為大家講述的是關于HTML frame標簽的用法&#xff0c;還有關于frame標簽中的屬性介紹。還有關于frame標簽的使用實例&#xff0c;下面就讓我們一起來看看這篇文章吧首先我們先看看HTML frame標簽的用法&#xff1a;標簽定義 frameset 中的一個特定的窗口(框架)。fr…

java 實現支持向量機

https://github.com/kevin0016/java-SVM

藍橋杯——快速排序(2018JavaB組第5題9分)

快速排序&#xff08;18JavaB5,9’&#xff09; 以下代碼可以從數組a[]中找出第k小的元素。 它使用了類似快速排序中的分治算法&#xff0c;期望時間復雜度是O(N)的。 請仔細閱讀分析源碼&#xff0c;填寫劃線部分缺失的內容。 import java.util.Random; public class Main{pub…

關于蝴蝶背景

Runner 2006-07-04 這些鏈接都比較久遠了&#xff0c;現在大概都失效了。好像有不少人都是這兩只可愛的蝴蝶帶來的&#xff0c;看來這兩只蝴蝶真是我的福星啊。這里再把Flash背景的用法貼出來吧.如果直接點擊鏈接無法顯示頁面&#xff0c;可以把鏈接地址復制到瀏覽器的地址欄里…