引言:]我是雖然半路出家經作了幾年的程序,但不知自己是否算是一個程序員。我最近幫朋友作一個網站,為了空間的便宜,選用了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 >通用數據庫顯示程序文章</a><br> 示例asp程序:<a >http://www.xurui.com/mypaper/通用數據庫顯示程序/common.asp</a><br> 示例數據庫地址:<a >http://www.xurui.com/mypaper/通用數據庫顯示程序/sample.mdb</a> </body> </html> [小結:]雖然已經完成了了大部分功能,但還有很多不完美的地言,肯請朋友提出意見。
|