通用数据库显示程序

数据库显示程序,能调任意库,任意字段,多关键字搜索,自动分页.


阿余经常写一些数据库相关的程序,当然离不开显示库中的数据了,说实话,做这样的程序真是无聊啊,所以,阿余就想写个函数,一个通用的数据库显示函数.要求如下:

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.mzph.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;可以把链接地址复制到浏览器的地址栏里…