我們先來了解一下模板文件,Template模板,後綴名稱為TPL,TPL文件和HTML文件一樣,在TPL文件中注意其中的">標記,分別代表的意思如下:
Begindetail:代表准備開始替換模板文件的開始
Enddetail:代表結束替換模板文件
insert_data_here:代表指明在何處插入結果集中的數據。如果結果集記錄中包含多個字段的話,insert_data_here將按照其在記錄中的順序,也就是查詢語句SELECT執行語句中的字段順序,來按順序地插入數據。也就是說,每個結果記錄中的每個字段只能在頁面中被插入一次。如果要想在頁面中多次使用某個字段,可以先將它賦給一個變量。然後再反復地使用此變量即可。
那我們就來做一個簡單格式的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>聯系人</B></TH>
<TH><B>產品名稱</B></TH>
<TH><B>產品名稱</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>
class=MsoNormal style="TEXT-INDENT: 21pt">模板文件做好後,我們先把它存放在“D:SQL Server文件”目錄下面,然後我們在SQL SERVER查詢分析器裡面執行下面的代碼:
EXECUTEsp_makewebtask
@outputfile='D:SQLServer文件OutPutHtml.htm',
@query='SelectSuppliers.CompanyName,Suppliers.ContactName,Products.ProductName,Products.UnitPrice
FromSuppliersInnerJoinProductsOnSuppliers.SupplierID=Products.SupplierID
WhereSuppliers.SupplierID=1',
@templatefile='D:SQLServer文件OutPutHtml.TPL',
@dbname='NorthWind',
@rowcnt=0,
@whentype=9,
@lastupdated=1
GO
我們先看sp_makewebtask這個SQL Server自帶的系統存儲過程,它用來創建一項生成 HTML文檔的任務,該文檔包含執行過的查詢返回的數據。在本例中,上述的參數分別代表的意思為:
@outputfile
生成HTML 文件的位置。如果文檔將在遠程計算機上生成,則該參數可以是 UNC 名稱。
@query
要運行的查詢。當在運行任務時,查詢結果將以表格形式顯示在 HTML 文檔中。可以指定多個 SELECT 查詢,這樣可以在 outputfile 中顯示多個表。
@templatefile
用於生成 HTML 文檔的模板文件的路徑。模板文件包含 HTML 文檔的格式特征信息和標記 ,該標記指示將查詢結果添加到 HTML 表中的位置。
@dbname
在其上運行查詢的數據庫名。
指定查詢結果是以粗體 (1) 還是非粗體 (0) 顯示。bold 的數據類型為 tinyint,默認值為 0。
@rowcnt
指定生成的 HTML 文檔中所顯示行的最大值。默認值為 0,用來指定顯示在 HTML 文檔中滿足給定查詢的所有行。
@whentype
指定何時運行創建 HTML 文檔的任務。9代表立即和應請求創建頁。將立即創建和重新創建 HTML 文檔。
@lastupdated
指定所生成的 HTML 文檔是否顯示“上次更新時間:”時間戳指示上次更新的日期和時間 (1) 或者沒有時間戳 (0)。在 HTML 文檔中,時間戳出現在查詢結果的前一行。
上面的存儲過程如果在SQL Server 2005下執行,還須得開通執行它的權限,可以執行下面的代碼:
sp_configure'showadvancedoptions',1;
GO
RECONFIGURE;
GO
sp_configure'WebAssistantProcedures',1;
GO
RECONFIGURE
GO
執行過後,我們看在D盤SQL Server文件下面生成一個OutPutHtml.htm文件,查看原代碼,可以看到模板標記替換成對應的數據庫的內容,代碼如下:
<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>聯系人</B></TH>
<TH><B>產品名稱</B></TH>
<TH><B>產品名稱</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頁面了。