引言:]我是虽然半路出家经作了几年的程序,但不知自己是否算是一个程序员。我最近帮朋友作一个网站,为了空间的便宜,选用了asp+access的服务器。由于本人对asp知道很少,所以实在做得有点累,特别是后台数据库的管理,有一大堆的表需要我日常维护。我发现,对于后台数据管理,基本上对数据库进行增删改查的的操作,我一个表一个表的写同样的操作,真的无法忍受。上网查了查,还真有通用的数据显示程序,可惜没有数据编辑功能。于是有了自己写一个通用的功能的想法。下面是我参考网友*后的实现。
[设计目标:]
1、数据库显示,编辑,增加,修改,且可以由用户定义选用。
2、显示的字段列可以用户定义(显示名称可自定义)
3、页面的显示格式以由用户定义,这包括每页记录数,页脚,列宽,表格的样式(配置了格式控制css文件)
4、组件的界面,支持多语言(chinese,eng,…),可惜还未有时间实现,现为中文。
5、支持多表联合查询
[缺限:]
调用参数复杂,需要文档支持,多表联合查询别名有限制。
[使用示例:]
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta http-equiv=content-type content="text/html; charset=gb2312">
<link href="./style_cn.css" type=text/css rel=stylesheet>
<title>通用数据库显示程序</title>
</head>
<body bgcolor="#66cccc">
<%
多个字段用数组表示
dsn连接写法
sconn = "dsn=<数据库名>;uid=<dsn账号>;pwd=<密码>"
使用物理路径连接access数据库写法
sconn = "dbq=" & server.mappath("<access数据库文件的当前文件相对路径>") & ";defaultdir=;driver={microsoft access driver (*.mdb)};"
连接sqlserver写法
sconn = "provider=sqloledb;persist security info=false;uid=<用户名>;pwd=<密码>;initial catalog=<sqlserver数据库名>;data source=<数据服务器ip>"
dim sconn, stablename, shidden, sdisplay, squery, sorder, itop, ipagesize,seditcols,skey,srelation,scolwidth
sconn = "dbq=" & server.mappath("sample.mdb") & ";defaultdir=;driver={microsoft access driver (*.mdb)};"
stablename = "客户"
sdisplay = "联系人姓名 | 联系人 | <a href=""view.asp?customerid=$客户id$"">$联系人姓名$</a>, 公司名称|公司, 联系人头衔|称谓, 地址, 城市"
shidden = "客户id"
squery = "联系人姓名 | 联系人, 公司名称|公司, 联系人头衔|称谓 , 城市"
sorder = "客户id"
itop = 300
ipagesize = 2
seditcols="0,1,1,1,1"0-not edit ,1-edit
skey="客户(客户id);"
srelation=""
stablename = "customer,myorder"
sdisplay = "myorder.custid|客户id|<a href=""view.asp?customerid=myorder.custid$"">$custname$</a>, lineid|行号,product|产品,qty|数量,amt|金额,dt|日期,linenotes|备注"
shidden = "custname"
squery = "myorder.custid|客户id, product|产品, dt|定单日期"
sorder = "myorder.lineid"
itop = 300
ipagesize = 2
seditcols="0,1,1,1,1,1,1"0-not edit ,1-edit
skey="myorder(myorder.custid,lineid);"
srelation=" myorder.custid=customer.custid "
scolwidth="20,40,60,60,60,60,60"
displaytable sconn, stablename, shidden, sdisplay, squery, sorder, itop, ipagesize
dim objtable
set objtable= new clsdispalytable
response.write sconn & "<br>"
objtable.settablepara sconn, stablename, shidden, sdisplay, squery, sorder,srelation,skey
objtable.seteditpara seditcols,"",scolwidth,true,true,true
objtable.setpagepara 300,3
response.write "<table border=0 align=center cellspacing=0 cellpadding=0><tr><td bgcolor=#6699cc>"
objtable.displaytable
response.write "</td></tr><table>"
pconn, ptablenames, phidden, pdisplay, pquery,porder,prelation,pkeys)
%>
演示:http:www.qinych.com/caibing/test/test.asp
文章:<a href="http://www.xurui.com/mypaper/通用数据库显示程序">通用数据库显示程序文章</a><br>
示例asp程序:<a href="http://www.xurui.com/mypaper/通用数据库显示程序/common.asp">http://www.xurui.com/mypaper/通用数据库显示程序/common.asp</a><br>
示例数据库地址:<a href="http://www.xurui.com/mypaper/通用数据库显示程序/sample.mdb">http://www.xurui.com/mypaper/通用数据库显示程序/sample.mdb</a>
</body>
</html>
[小结:] 虽然已经完成了了大部分功能,但还有很多不完美的地言,肯请朋友提出意见。
