快捷搜索:

SQL Server静态页面导出技术2

本段文章节选自铁道出版社新出的《用BackOffice建立Intranet/Extranet利用》一书(现已在海淀图书城有售)。本书详尽地讲述了若何应用微软BackOffice系列产品来组建Intranet/Extranet利用。经由过程它您将掌握NT的安装和设置、应用IIS建立Web站点、经由过程ILS建立收集会议系统、用Exchange建立企业的邮件和协作系统、用SQL Server建立Web数据库利用、用Proxy Server建立同Internet安然靠得住的连接、用Media Server建立收集电视台/广播站、用Chart server树立功能强大年夜的谈天室、用Site Server建立个性化的邮件列表和阐发网站的造访环境、用Commerce Server建立B2B或B2C的电子商务网站。此外本书还对收集的安然性进行了评论争论,从而指示您建立一个更为壮实和安然的收集利用。涉猎本书之后,您将发明实现富厚多彩的收集利用原本这样简单……

绝对原创,迎接转载。但请务必保留以上翰墨。

应用SQL语句来实现静态页面导出

首先,我们来看看要经由过程静态页面导出技巧实现哪些功能。我们将要把天天报纸的内容按照同IDC利用一样的款式放到出版报在ISP的主页中响应的目录之中(比如99年5月8号的报纸内容就要放到1999-05-08目录之中)。而要想达到这样的效果就必要导出三类文件:天天刊载版面的列表页面文件(天天一个)、每个版面的文章列表页面文件(天天有若干个版面,就有若干个这样的文件)、每篇文章的内容各为一个页面文件(天天有若干文章,就有若干个这样的文件)。

sp_makewebtask存贮历程语法布局和参数含义:

建立静态页面导出义务由sp_makewebtask存贮历程来完成。下面我们来看看其详细的语法布局和参数:

sp_makewebtask [@outputfile =] 'outputfile', [@query =] 'query'

[, ][@fixedfont =] fixedfont]

[, ][@bold =] bold]

[, ][@italic =] italic]

[, ][@colheaders =] colheaders]

[, ][@lastupdated =] lastupdated]

[, ][@HTMLHeader =] HTMLHeader]

[, ][@username =] username]

[, ][@dbname =] dbname]

[, ][@templatefile =] 'templatefile']

[, ][@webpagetitle =] 'webpagetitle']

[, ][@resultstitle =] 'resultstitle']

[

][, [@URL =] 'URL', [@reftext =] 'reftext']

| [, ][@table_urls =] table_urls, [@url_query =] 'url_query']

]

[, ][@whentype =] whentype]

[, ][@targetdate =] targetdate]

[, ][@targettime =] targettime]

[, ][@dayflags =] dayflags]

[, ][@numunits =] numunits]

[, ][@unittype =] unittype]

[, ][@procname =] procname ]

[, ][@maketask =] maketask]

[, ][@rowcnt =] rowcnt]

[, ][@tabborder =] tabborder]

[, ][@singlerow =] singlerow]

[, ][@blobfmt =] blobfmt]

[, ][@nrowsperpage =] n]

[, ][@datachg =] table_column_list]

[, ][@charset =] characterset]

[, ][@codepage =] codepage]

下面对sp_makewebtask存贮历程的参数逐个的进行先容:

■outputfile:指明寄放导出的静态页面文件的路径和文件名。对付孕育发生多个文件的环境(比如在限定了每个页面的最大年夜记录数目时),系统会自动地在这些文件名的末端加上数字。

■query:要由sp_makewebtask存贮历程来履行的SQL语句。其结果数据将用于孕育发生静态页面。同IDC技巧相类似,此参数中也容许存在多个查询。

■fixedfont:指明是否应用固定宽度字体(为1时应用,为0时不应用。默觉得1)。

■bold:是否应用加粗字体。(为1时应用,为0时不应用。默觉得0)

■italic是否应用斜体字体。(为1时应用,为0时不应用。默觉得0)

■colheaders:是否显示字段名(结果数据聚拢的列标题)。(为1时显示,为0时不显示。默觉得1)

■lastupdated:是否在页面中显示文件的创立光阴。(为1时显示,为0时不显示。默觉得1)

■HTMLHeader:页面标题的显示款式。其取值为1~6,对应于HTML说话的H1~H6。

■Username:指明用来履行SQL语句的用户,默觉得连接时的用户(在本利用实例中默认用户为editer)。

■Dbname:指明在哪个数据库上运行SQL语句。默觉得当前数据库。

■Templatefile:指明模板文件(同IDC技巧中的htx文件的感化相类似)的所在路径和文件名。假如应用了模板文件,其他款式节制参数将不复兴感化(比如bold、italic和fixedfont等参数)。

■Webpagetitle:指明页面文件的标题,等效于HTML语句中 之间的字符。

■Resultstitle:用来指定在页面中返回结果数据集之前显示的标题。默觉得Query Results。

■URL:用于指明页面中包孕的超链接。必须同reftext参数结合应用。

■Reftext:URL参数中超链接地址的名称。也便是HTML文件中连接地址的翰墨部分。如下面的例子中的"文章查询"几个字。

文章查询

■table_urls:指明是否应用一个查询来动态的天生页面中的超链接列表(为1时应用,为0时不应用。默觉得0)。假云云参数为1时,则不能同时指定URL和reftext参数,且必须同时指定url_query参数。

■url_query:用来孕育发生超链接列表的查询语句。其返回的第一个字段为链接地址,第二个字段为此地址的名称。

■whentype:用于指明义务履行的机会。其取值及含义如下:

n1:系统默认值。指明急速建立义务并履行它建立导出页面。并在履行之后将义务删除。

n2:建立义务,但并不急速履行它。其履行的日期和光阴将分手由targetdate和targettime参数(可选参数)来抉择。假如不指明targettime参数,义务将在由targetdate指明的那天的早晨0点履行。

n3:每周的n天履行义务,其首次履行光阴分手由targetdate和targettime参数(可选参数)来抉择。而在此之后则由dayflages参数来指明将会在一周中的哪些天履行此义务。

n4:每n分钟、小时、天或者周履行一次义务。其首次履行光阴分手由targetdate和targettime参数(可选参数)来抉择。而光阴的距离分手由numunits和unittype参数来指明。

n5:由用户来抉择何时履行此义务。此义务会被创建但没有进行调整。用户可以经由过程履行sp_runwebtask来履行此义务。

n6:指明急速建立义务并履行它建立导出页面。并在履行之后在分手由targetdate和targettime参数(可选参数)指明的日期和时候履行。

n7:同3相类似,但它会在义务树马上急速履行一次,以是不必要targetdate参数。

n8:同4相类似,但它会在义务树马上急速履行一次,以是不必要targetdate参数。

n9:同5相类似,但它会在义务树马上急速履行一次。

n10:在义务树马上急速履行一次,今后则在由datachg参数中指定的数据发生变更时履行。

■targetdate:指明义务履行的日期(如whentype参数为2、3、4、6时),其款式为yyyymmdd。

■targettime:指明义务履行的光阴,其款式为HHMMSS。其默认值为早晨0点。

■dayflags:用于指明义务在一周中的哪天履行(如whentype参数为3或7时)。其取值为1、2、4、8、16、32、64分手对应于礼拜天、礼拜一、礼拜二、礼拜三、礼拜四、礼拜五、礼拜六。假如要指明在每周的多个日子中履行义务,则将它们所代表的值相加即可。比如要想在礼拜一和礼拜四履行义务,则此参数即是18(2+16=18)。

■numunits:同unittype参数一路用于指定义务的履行频度(如whentype参数为4或8时)。其取值范围为1~255。

■unittype:用于指明numunits参数的光阴单位。其取值可以分手为1、2、3、4,对应于小时、天、周和分钟。比如当numunits参数为1,unittype参数为2时,义务将在每两个小时履行一次。

■procname:指明所建立的义务的名称。

■maketask:指明是否建立一个义务来履行导出静态页面的存贮历程。其取值可以分手如下:

0:建立一个不加密的存贮历程,但不创建履行该存贮历程的义务。

1:建立一个加密的存贮历程,并创建履行该存贮历程的义务。

2:建立一个不加密的存贮历程,并创建履行该存贮历程的义务(此值为系统默认值)。

■rowcnt:指明返回SQL语句结果数据集中记录的最大年夜数目。默觉得返回所有的记录。

■tabborder:指明是否在页面中的数据画出表框线。其取值可以为1(画线)或0(不画线),默认值为1。

■singlerow:指明是否为每个返回的记录都建立一个页面文件。其取值可以为1(建立零丁的文件)或0(不为每个记录零丁建立文件),默认值为0。

■blobfmt:指明是否将查询返回的结果集中的ntext和image数据类型的字段自力的放到一个页面文件之中并在主页面文件中加入指向这些文件的超链接。此参数的默觉得空。其款式如下:

"%n% FILE=output_filename TPLT=template_filename URL=url_link_name..."

此中n为ntext或image字段在返回结果中的序号。output_filename为ntext和image字段输出文件名;template_filename为其模板文件名;url_link_name为主页面文件中连接到此文件的超链接的名字。

■nrowsperpage:指明每个页面文件中最多的记录数目。其默认值为0,即所有的返回结果记录集都将放在一个页面文件之中。当查询所返回的记录数目多于此参数指定的值时,将会孕育发生其他的页面文件来放置越过的记录。而且这些页面文件之中包孕互相的超链接地址(第一页、前一页、后一页、着末一页),可以点击这些超链接来完成在这些页面之间的跳转。

■datachg:用来指明当表中哪些字段变更时,履行此义务来孕育发生新的页面文件(当whentype参数为10时)。其语法款式如下:

{TABLE= name [COLUMN=name]}[,...]

■charset:指明页面文件应用的字符集。对付中文,其值应该为'gb2312'。

■codepage:指明页面文件应用的代码页。对付中文,其值应该为936。

对付各类翰墨charset和codepage的取值如下(可以经由过程运行sp_enumcodepages存贮历程来获得下面的列表):

Code PageCharacter Set语种

708ASMO-708阿拉伯字符 (ASMO 708)

720DOS-720阿拉伯字符 (DOS)

28596iso-8859-6阿拉伯字符 (ISO)

1256windows-1256阿拉伯字符 (Windows)

1257windows-1257波罗的海字符 (Windows)

852ibm852中欧字符 (DOS)

28592iso-8859-2中欧字符 (ISO)

1250windows-1250中欧字符 (Windows)

936gb2312简体中文 (GB2312)

52936hz-gb-2312简体中文 (HZ)

950big5繁体中文 (Big5)

866cp866西里尔字符 (DOS)

28595iso-8859-5西里尔字符 (ISO)

20866koi8-r西里尔字符 (KOI8-R)

21866koi8-ru西里尔字符 (KOI8-U)

1251windows-1251西里尔字符 (Windows)

28597iso-8859-7希腊字符 (ISO)

1253windows-1253希腊字符 (Windows)

862DOS-862希伯来字符 (DOS)

38598iso-8859-8-i希伯来字符 (ISO-Logical)

28598iso-8859-8希伯来字符 (ISO-Visual)

1255windows-1255希伯来字符 (Windows)

50932_autodetect日语 (自动选择)

51932euc-jp日语 (EUC)

932shift_jis日语 (Shift-JIS)

949ks_c_5601-1987朝鲜语

874windows-874泰语 (Windows)

1254iso-8859-9土耳其字符 (Windows)

65001utf-8Unicode (UTF-8)

1258windows-1258越南字符 (Windows)

1252iso-8859-1西欧字符

同静态页面导出相关的还有以下存贮历程:

sp_runwebtask:用于履行由sp_makewebtask建立的静态页面导出义务。其语法布局如下:

sp_runwebtask [][@procname =] 'procname']

[,][@outputfile =] 'outputfile'

此中procname参数指明要履行的静态页面导出义务的名字,而outputfile则指明义务的输出文件。比如要运行我们在上面建立的静态页面导出义务,就可以经由过程下面的语句来完成:

EXEC sp_runwebtask 'test Web Page'

sp_dropwebtask:删除建立的静态页面导出义务。其语法布局如下:

sp_dropwebtask {[@procname =] 'procname' | [,@outputfile =] 'outputfile'}

此中procname参数指明要删除的静态页面导出义务的名字。而outputfile则指明要删除的导出文件。假如要删除我们在上面建立的静态页面导出义务,则经由过程下面的语句来完成:

EXEC sp_dropwebtask 'test Web Page', 'D:\test\cbb\ttt.htm'

您可能还会对下面的文章感兴趣: