我們平常在查詢數(shù)據(jù)庫的時候,經(jīng)常會把一些查詢的結果保存起來,如數(shù)據(jù)存放到EXCEL中,但如果能有辦法把數(shù)據(jù)存放到HTML頁面中去顯示,并且把數(shù)據(jù)以網(wǎng)頁形式展現(xiàn)出來的時候,這樣會更直觀。
我們先來了解一下模板文件,Template模板,后綴名稱為TPL,TPL文件和HTML文件一樣,在TPL文件中注意其中的">標記,分別代表的意思如下:
Begindetail:代表準備開始替換模板文件的開始
Enddetail:代表結束替換模板文件
insert_data_here:代表指明在何處插入結果集中的數(shù)據(jù)。如果結果集記錄中包含多個字段的話,insert_data_here將按照其在記錄中的順序,也就是查詢語句SELECT執(zhí)行語句中的字段順序,來按順序地插入數(shù)據(jù)。也就是說,每個結果記錄中的每個字段只能在頁面中被插入一次。如果要想在頁面中多次使用某個字段,可以先將它賦給一個變量。然后再反復地使用此變量即可。
那我們就來做一個簡單格式的TPL模板,命名為OutPutHtml.TPL,模板的HTML代碼如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<TITLE>show HTML</TITLE>
<BODY>
<center>
<P>
<H2>
<TABLE BORDER="1" cellpadding="0" cellspacing="0">
<TR> <TH><B>公司名稱</B></TH>
<TH><B>聯(lián)系人</B></TH>
<TH><B>產(chǎn)品名稱</B></TH>
<TH><B>產(chǎn)品名稱</B></TH>
</TR>
<%begindetail%>
<TR> <TD> <%insert_data_here%> </TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
<TD ALIGN=RIGHT><%insert_data_here%></TD>
</TR>
<%enddetail%>
</TABLE>
</center>
</H2>
</BODY>
</HTML>
模板文件做好后,我們先把它存放在“D:\SQL Server文件”目錄下面,然后我們在SQL SERVER查詢分析器里面執(zhí)行下面的代碼:
EXECUTE sp_makewebtask
@outputfile = ’D:\SQL Server文件\OutPutHtml.htm’,
@query = ’Select Suppliers.CompanyName,Suppliers.ContactName,Products.ProductName,Products.UnitPrice
From Suppliers Inner Join Products On Suppliers.SupplierID=Products.SupplierID
Where Suppliers.SupplierID=1’,
@templatefile = ’D:\SQL Server文件\OutPutHtml.TPL’,
@dbname = ’NorthWind’,
@rowcnt = 0,
@whentype = 9 ,
@lastupdated = 1
GO
我們先看sp_makewebtask這個SQL Server自帶的系統(tǒng)存儲過程,它用來創(chuàng)建一項生成 HTML文檔的任務,該文檔包含執(zhí)行過的查詢返回的數(shù)據(jù)。在本例中,上述的參數(shù)分別代表的意思為:
@outputfile
生成HTML 文件的位置。如果文檔將在遠程計算機上生成,則該參數(shù)可以是 UNC 名稱。
@query
要運行的查詢。當在運行任務時,查詢結果將以表格形式顯示在 HTML 文檔中?梢灾付ǘ鄠 SELECT 查詢,這樣可以在 outputfile 中顯示多個表。
@templatefile
用于生成 HTML 文檔的模板文件的路徑。模板文件包含 HTML 文檔的格式特征信息和標記 ,該標記指示將查詢結果添加到 HTML 表中的位置。
@dbname
在其上運行查詢的數(shù)據(jù)庫名。
指定查詢結果是以粗體 (1) 還是非粗體 (0) 顯示。bold 的數(shù)據(jù)類型為 tinyint,默認值為 0。
@rowcnt
指定生成的 HTML 文檔中所顯示行的最大值。默認值為 0,用來指定顯示在 HTML 文檔中滿足給定查詢的所有行。
@whentype
指定何時運行創(chuàng)建 HTML 文檔的任務。9代表立即和應請求創(chuàng)建頁。將立即創(chuàng)建和重新創(chuàng)建 HTML 文檔。
@lastupdated
指定所生成的 HTML 文檔是否顯示“上次更新時間:”時間戳指示上次更新的日期和時間 (1) 或者沒有時間戳 (0)。在 HTML 文檔中,時間戳出現(xiàn)在查詢結果的前一行。
上面的存儲過程如果在SQL Server 2005下執(zhí)行,還須得開通執(zhí)行它的權限,可以執(zhí)行下面的代碼:
sp_configure ’show advanced options’, 1;
GO
RECONFIGURE;
GO
sp_configure ’Web Assistant Procedures’, 1;
GO
RECONFIGURE
GO
執(zhí)行過后,我們看在D盤SQL Server文件下面生成一個OutPutHtml.htm文件,查看原代碼,可以看到模板標記替換成對應的數(shù)據(jù)庫的內(nèi)容,代碼如下:
<HTML>
<HEAD>
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<TITLE>show HTML</TITLE>
<BODY>
<center>
<P>
<H2>
<TABLE BORDER="1" cellpadding="0" cellspacing="0">
<TR> <TH><B>公司名稱</B></TH>
<TH><B>聯(lián)系人</B></TH>
<TH><B>產(chǎn)品名稱</B></TH>
<TH><B>產(chǎn)品名稱</B></TH>
</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Chai</TD>
<TD ALIGN=RIGHT>18.0000</TD>
</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Chang</TD>
<TD ALIGN=RIGHT>19.0000</TD>
</TR>
<TR> <TD> Exotic Liquids </TD>
<TD ALIGN=RIGHT>Charlotte Cooper</TD>
<TD ALIGN=RIGHT>Aniseed Syrup</TD>
<TD ALIGN=RIGHT>10.0000</TD>
</TR>
</TABLE>
</center>
</H2>
</BODY>
</HTML>
運行此HTML文件,可以看到結果如圖:
圖 SQL SERVER查詢結果輸出到HTML頁面
就和SQL語句查詢的結果對應了,這樣,我們就把查詢語句輸入到HTML頁面了。
IT專家網(wǎng)原創(chuàng)文章,未經(jīng)許可,嚴禁轉(zhuǎn)載!