WWW是Internet网络中重要的信息发布方法和信息检索方式,SQL Server 2000提供了Web出版工具SQL Server Web Assistant和一些系统存储过程来满足SQL Server数据库的Web出版需要。使用这些工具能够将SQL Server数据库中的数据按照HTML文档格式转化成Web页面,从而可以在浏览器中方便地浏览。
本章将讲述如何使用SQL Server Web Assistant和系统存储过程进行数据库Web出版。
使用SQL Server Web Assistant实现数据库Web出版包含以下四方面内容:
n 使用SQL Server Web Assistant图形界面的导航工具来设置数据库查询的条件并建立查询操作命令、安排执行查询的事件、设计HTML文档格式。也可以使用系统存储过程sp_makewebtask来完成上述任务。
n 根据用户的设置,使用触发器或者SQL Server Agent执行查询操作。
n 无论使用SQL Server Web Assistant还是直接使用系统存储过程sp_makewebtask,本质上都是调用存储过程sp_makewebtask。sp_makewebtase按照用户指定的HTML文档格式化数据查询结果并生成HTML文档。
n 在WWW浏览器中浏览Web服务器上的HTML文档。
运行SQL Server Enterprise Manager,连接到需要出版数据库的SQL Server服务器,选择Tools菜单,单击Wizards菜单项,弹出选择向导对话框,单击Management左边的“+”号,展开其子菜单,双击Web Assistant Wizard,弹出如图18-1所示的Welcome to the Web Assistantant Wizard对话框。
图18-1 Welcome to the Web Assistant Wizard
在该对话框中列出了设置SQL Server数据库出版需要完成的任务,有以下三方面:
n 定义出版内容。
n 调度出版任务。
n 格式化Web页面。
下面分别以pubs数据库为例介绍以上三方面的设置方法,在这个例子中,显示了psychology类图书的作者、书名和定价等信息。
定义出版内容的操作步骤如下:
(1)在图18-1所示的对话框中单击“下一步”按钮,弹出如图18-2所示的select Database对话框,在这里选择pubs数据库。
图18-2 Select Database对话框
(2)单击“下一步”按钮,弹出如图18-3所示的Start a New Web Assistant Job对话框。在文本框中键入Web出版的名称,并选择需要出版的数据库,可以使用以下三种方法之一指定数据。
n Data from the tables and columns that I select:对指定的单个表的列进行查询。
n Result set(s) of a stored procedure I select:使用存储过程查询数据。
n Data from the Transact-SQL statement I specify:使用自定义的查询语句进行查询。
选择Data from the Transact-SQL statement I specify选项,并单击“下一步”按钮,弹出如图18-4所示的Write a Transact-SQL Query对话框。在Transact-SQL Query文本框中键入查询语句。
输入的查询语句如下:
SELECT a.au_fname,a.au_lname,t.title,t.price
FROM authors a,titleauthor ta,titles t
WHERE a.au_id=ta.au_id
AND ta.title_id=t.title_id
AND t.type='psychology'
图18-3 Start a New Web Assistant Job对话框
图18-4 Write a Transact-SQL Query对话框
调度出版任务的操作步骤如下:
(1)在Write a Transact-SQL Query对话框中,单击“下一步”按钮,弹出如图18-5所示的Schedule the Web Assistant Job对话框。在该对话框中设置Web页面的更新时间和频率,也可以设置当特定的数据变化后再更新Web页面。在这里选择When the SQL Server data changes选项,也就是说,当数据发生变化时更新Web页面。
图18-5 Schedule the Web Assistant Job对话框
(2)设置完Web页面的更新时间和频率后,单击“下一步”按钮,弹出如图18-6所示的Monitor a table and columns对话框。在该对话框中选择触发页面更新的数据,在左边的Table columns列表中选择字段,单击Add按钮添加到Column to monitor列表中,依次添加title、type和Price字段。
图18-6 Monitor a table and columns对话框
格式化Web页面的步骤如下:
(1)在Schedule the Web Assistant Job对话框中,单击“下一步”按钮,弹出图18-7所示的Publish the Web Page对话框。在该对话框中键入Web页面的名称和存储位置。
图18-7 Publish the Web Page对话框
(2)设置完Web页面的名称和存储位置后,单击“下一步”按钮,弹出如图18-8所示的Format the Web Page对话框。在该对话框中选择Web页面的格式化方式,有以下两种可供选择:
n 使用用户自定义的模板文件格式化Web页面。
n 在这里选择使用Web Assistant格式化Web页面。
图18-8 Format the Web Page对话框
(3)单击“下一步”按钮,弹出如图18-9所示的Specify Titles对话框。在该对话框中输入Web页面的标题和查询结果的标题以及表格标题的字体大小。
图18-9 Specify Titles对话框
(4)单击“下一步”按钮,弹出如图18-10所示的Format a Table对话框。在该对话框中可以设置Web页面中是否显示查询结果中的列名、是否显示查询结果的字体以及在显示查询结果的时候是否画边框线。根据需要进行设置。
图18-10 Format a Table对话框
(5)设置完成后,单击“下一步”按钮,弹出如图18-11所示的Add Hyperlinks to the Web Page对话框。在该对话框中可以在Web页面中添加链接。
(6)单击“下一步”按钮,弹出如图18-12所示的Limit Rows对话框。在该对话框中可以限制查询语句返回的行数和每个Web页面显示的数据行数。如果查询结果集中的行数超过了限制,会产生新的Web页面。
图18-11 Add Hyperlinks to the Web Page对话框
图18-12 Limit Rows对话框
(7)单击“下一步”按钮,弹出如图18-13所示的Completing the Web Assistant Wizard对话框。单击Write Transact-SQL to file按钮,可以将SQL Server Web Assistant创建的出版任务的脚本写到一个SQL文件中。以上的设置产生的脚本内容如下:
EXECUTE sp_makewebtask
@outputfile=N’F:\Program Files\Microsoft SQL Server
\80\Tools\HTML\WebPage1.htm’,
@query=N’SELECT a.au_fname,a.au_Iname,t.title,t.price
FROM authors a,titleauthor ta,titles t
WHERE a.au_id=ta.au_id
AND ta.title_id=t,title_id
AND t,type=''Psychology'' '
@fixedfont=1,
@HTMLheader=3,
@webpagetitle=N'Psychology Books'
@resultstitle=N'Psychology Books',
@dbname=N'pubs',
@whentype=10,
@datachg=N'TABLE=titles COLUMN=title,type,price',
@procname=N'Pyschology books',
@codepage=65001,
@charset=N' utf-8'
单击“完成”按钮,使SQL Server Web Assistant开始建立数据库所需的任务、存储过程和触发器。
图18-13 Completing the Web Assistant Wizard对话框
本节介绍使用SQL Server系统存储过程出版数据库的方法,SQL Server提供的Web出版系统存储过程如下:
n sp_makewebtask:创建Web数据库,产生HTML文档。
n sp_runwebtak:执行Web出版任务,产生HTML文档。
n sp_dropwebtask:删除Web出版任务。
n sp_enumcodepages:检索系统存储过程sp_makewebtask支持的代码页和字符集。
下面是执行该存储过程的结果:
Code Page Character Set Decription
-------------------------- ------------------------------------- ------------------------------------
708 ASMO-708 阿拉伯字符(ASMO 708)
720 DOS-720 阿拉伯字符(DOS)
28596 iso-8859-6 阿拉伯字符(ISO)
1256 windows-1256 阿拉伯字符(Windows)
1257 windows-1257 波罗的海字符(Windows)
852 ibm852 中欧字符(DOS)
28592 iso-8859-2 中欧字符(ISO)
1250 windows-1250 中欧字符(Windows)
936 gb2312 简体中文(GB2312)
52936 hz-gb-2312 简体中文(HZ)
950 big5 繁体中文(Big5)
866 cp866 西里尔字符(DOS)
28595 iso-8859-5 西里尔字符(ISO)
20866 koi8-r 西里尔字符(KOI8-R)
21866 koi8-ru 西里尔字符(KOI8-U)
1251 windows-1251 西里尔字符(Windows)
28597 iso-8859-7 希腊字符(ISO)
1253 windows-1253 希腊字符(Windows)
862 DOS-862 希伯来字符(DOS)
38598 iso-8859-8-i 希伯来字符(ISO-Logical)
28598 iso-8859-8 希伯来字符(ISO-Visual)
1255 windows-1255 希伯来字符(Windows)
50932 _autodetect 日语(自动选择)
51932 euc-jp 日语(EUC)
932 shift_jis 日语(Shift-JIS)
949 ks_c_5601-1987 朝鲜语
874 windows-874 泰语(Windows)
1254 iso-8859-9 土耳其字符(Windows)
65001 utf-8 Unicode(UTF-8)
1258 windows-1258 越南字符(Windows)
1252 iso-8859-1 西欧字符