仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 892|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之SQL Server静态页面导出手艺1

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
DBaaS并不意味着解决方案提供者要让自己失业。与其他系统一样,在实施DBaaS解决方案时,客户可能需要部署、迁移、支持、异地备份、系统集成和灾难恢复等方面的帮助。server|静态|页面本段文章节选自铁道出书社新出的《用BackOffice创建Intranet/Extranet使用》一书(现已在海淀图书城有售)。本书细致地报告了怎样利用微软BackOffice系列产物来组建Intranet/Extranet使用。经由过程它您将把握NT的安装和设置、利用IIS创建Web站点、经由过程ILS创建收集集会体系、用Exchange创建企业的邮件和合作体系、用SQLServer创建Web数据库使用、用ProxyServer创建同Internet平安牢靠的毗连、用MediaServer创建收集电视台/播送站、用Chartserver创建功效壮大的谈天室、用SiteServer创建本性化的邮件列表和剖析网站的会见情形、用CommerceServer创建B2B或B2C的电子商务网站。别的本书还对收集的平安性举行了会商,从而引导您创建一个更加强健和平安的收集使用。浏览本书以后,您将发明完成丰厚多彩的收集使用本来如许复杂……
相对原创,接待转载。但请务必保存以上笔墨。



我们在后面对静态页面导出手艺举行了开端的先容,如今我们经由过程一些实例来完成对它的具体解说。
静态页面导出能够经由过程挪用存贮历程和利用EnterpriseManager中的导游两种体例来完成。经由过程导游的体例能够很简单地将数据库的数据导出为静态页面或创建导出义务。利用起来非常便利,可是其的天真性不如经由过程挪用存贮历程的办法来得好。上面我们起首先容怎样经由过程导游创建一个静态页面导出。
6.9.4.1.利用EnterpriseManager举行静态页面导出
假定我们将创建一个静态页面,其内容为逐日报纸上刊载的一切文章的标题及其地点版面。而此页面的内容请求每当数据库中的数据产生变更时都能随之产生变更。上面我们来看看其详细的完成历程:
在EnterpriseManager中找到要举行静态页面导出的服务器,翻开其Management容器,右击WebPublishing工具。从弹出的快速菜单当选择NewWebAssistantJob选项。将启动态态页面导出的导游(以下图)。

.9.4.1-1静态页面导出导游步骤1,提醒信息
能够看到,此导游分为三步:界说导出数据、调剂导出义务、格局化Web页面。点击下一步持续。
随后将要我们选择要导出的数据来自哪个数据库,我们选择test后,点击下一步持续(以下图)。

.9.4.1-2静态页面导出导游步骤2,选择导出数据库
随后将请求我们输出此导出义务的称号(默许为testWebPage),并选择导出数据的体例(以下图)。

.9.4.1-3静态页面导出导游步骤3,选择导出体例
个中有以下三种体例可供选择:
■DatafromthetablesancolumnsthatIselect:间接从表当选摘要导出的字段。
■Resultset(s)ofastoredprocedureIselect:导出的数据来自一个存贮历程的运转了局。
■DatafromtheTransact-SQLstatementIspecify:导出的数据来自一段SQL语句。
依据我们的使用请求,选择第三项以后,点击下一步持续。
随后依据我们选择的导出体例,将请求输出一段SQL语句(以下图)。

.9.4.1-4静态页面导出导游步骤4,输出导出查询语句
我们输出以下的一段SQL语句:
selectidas编号,banmianas版面,timuas标题
fromgaojian
wherekanwu=出书报anddatepart(yy,riqi)=datepart(yy,getdate())and
datepart(dy,riqi)=datepart(dy,getdate())
输出完成后,点击下一步持续。
随后将要我们对此义务的调剂体例举行选择(以下图)。

.9.4.1-5静态页面导出导游步骤5,设置导出义务
个中有上面几个选项可供选择:
■OnlyonetimewhenIcompletethiswizard:在完成此导游历程时实行,而且只实行这一次。
■Ondemand:在必要的时分实行。
■Onlyonetimeat:只在指定的时候实行一次。
■WhentheSQLServerdatachanges:当数据库中的数据产生改动时实行。
■Atregularlyscheduledintervals:周期性的实行此义务。
对话框的下部有一个GenerateaWebpagewhenthewizardiscompleted选择框,用来指明是不是在此导游历程完成时实行一次页面导出(默许选择此项)。
依据我们的必要,应当选择WhentheSQLServerdatachanges一项。点击下一步持续。
接上去的一步依据上一步的选择而会有所分歧。我们看到的将是以下图所示的对话框:

.9.4.1-6静态页面导出导游步骤6,指定跟踪字段
导游将请求我们选择对哪一个表中的哪些字段举行跟踪。一旦表中的这些字段产生了改动(在拔出、删除纪录及修正纪录时),将会运转此义务来更新静态页面的内容。我们选择对gaojian表中的id、riqi、laiyuan和timu四个字段举行跟踪。选择完成后,点击下一步持续。
随后将要我们选择静态页面的寄存地位及文件名(以下图)。我们能够将其放在IIS中某一假造目次地点的目次下。从而可让用户经由过程网页对其举行会见。

.9.4.1-7静态页面导出导游步骤7,指定静态文件寄存地位
输出符合的寄存目次和文件名以后,点击下一步持续。
随后将要对导出页面的格局和编码举行设定(以下图)。

.9.4.1-8静态页面导出导游步骤8,指定静态文件的格局和编码
关于页面格局,我们可让体系主动完成其格局的设定,也能够经由过程指定一个模板文件来对其举行格局化。前面的内容将对模板文件举行会商。这里我们现选择由体系主动完成页面的格局化事情。在Usecharacterset下拉列表框中能够对页面的字符集举行选择,因为我们利用中文,以是应当选择简体中文(GB2312)。点击下一步持续。
接上去将要输出页面题目和SQL语句实行了局表的题目并为其选择字体的巨细(以下图)。

.9.4.1-9静态页面导出导游步骤9,指定静态页面题目
对话框下部的ApplyatimeanddatastamptotheWebpage选择框用来决意是不是在页面中显现页面熟成的日期和工夫,从而利用户得知此页面中的数据为什么时天生的。设置完成后,点击下一步持续。
随后将对SQL语句实行的了局表举行设置(以下图)。

.9.4.1-10静态页面导出导游步骤10,静态页面显现效果设置
个中Yes,displaycolumnnames和No,displaydataonly单选框用来指明了局表中是不是包括字段名(在表头中显现)。依据我们的必要,选择Yes,displaycolumnnames单选框,显现字段名。而其下的一些选项用于对表中的一些字体效果举行设置。能够选择流动宽度字体(Fixed)、比例宽度字体(Proportional)、加黑(Bold)和斜体(Italic)四种。而DrawborderLinesaroundtheHTMLtable选择框用于指明是不是为了局表画出表框。设置完成后,点击下一步持续。
随后将提醒是不是在页面中到场超链接(以下图)。

.9.4.1-11静态页面导出导游步骤11,设置页面超链接
能够有以下三种选择:
■No:不在页面中到场超链接。我们选择此项。
■Yes,addonehyperlink:到场一条超链接。并为其指明毗连和显现信息。
■yes,addalistofhyperlinkURLs:到场一个超链接列表。此列表是经由过程一段SQL语句从数据库的某个表中失掉的。
选择第一个选项后,点击下一步持续。
接上去我们能够对前往的全体纪录的数目和每页前往的了局数目举行限定(以下图)。

.9.4.1-12静态页面导出导游步骤12,前往了局数目限定
我们能够选择"No,returnallrowsofdata"单选框,不合错误前往的总纪录数量举行限定;也能够选择"Yes,Returnthefirstrowsofdata"单选框来对前往的纪录数量举行限定(经由过程在厥后的文本输出框中输出要前往的最多纪录数)。
选择了"No,putalldatainonesvrollingpage"单选框则意味着一切前往的纪录都将被放在一个页面文件当中。而假如选择了"Yes,linkthesuccessivepagestogether"单选框则能够将前往的纪录放在很多页面文件中,从而减小了局页面的长度。便利用户对其举行扫瞄。能够在厥后的文本输出框中输出输出每一个页面文件所包括最多的纪录数量。我们选择每一个页面最多可包括20个纪录。设定完成后,点击下一步持续。
随后导游将提醒我们已完成了静态页面导出义务的设置,并显现它的一些相干信息(以下图)。

.9.4.1-13静态页面导出导游步骤13,完成确认信息
假如点击WriteTransact-SQLtofile按钮,则可将此义务以一个SQL言语剧本文件的体例保留上去。如许能够在今后经由过程运转这个剧本来再次创建这个义务。大概对剧本的内容举行修正,对实在现的功效作出一些调剂。依据我们的设置,其发生的SQL语句以下:
EXECUTEsp_makewebtask@outputfile=ND:        estcbb        tt.htm,
@query=Nselectid,banmian,timu
fromgaojianwherekanwu=出书报and
datepart(yy,riqi)=datepart(yy,getdate())
anddatepart(dy,riqi)=datepart(dy,getdate())
orderbybanmian,
@fixedfont=1,
@colheaders=0,
@HTMLheader=3,
@webpagetitle=NMicrosoftSQLServerWebAssistant,
@resultstitle=NQueryResults,
@dbname=Ntest,
@whentype=10,
@nrowsperpage=20,
@datachg=NTABLE=gaojianCOLUMN=id,timu,laiyuan,riqi,
@procname=NtestWebPage,
@codepage=936,
@charset=Ngb2312
一旦经由过程导游完成了静态页面导出义务的设定,就不克不及再经由过程EnterpriseManager对其属性举行修正。只能利用SQL语句来修正其各项设置。我们将在前面对sp_makewebtask举行解说时再对个中各个参数的寄义举行剖析。
点击完成按钮,停止此义务的设置事情。其发生的一个了局页面以下图所示。

.9.4.1-14静态页面导出了局
注重:在设置了这个静态页面导出义务以后,假如你在对稿件举行修正、增加或删除的时分,将会呈现一个毛病提醒。假如你封闭了IE的显现友爱的HTTP毛病信息功效的话(倡议在调试IDC使用时封闭此功效,如许就能够看到由体系前往的具体毛病信息)就会看到上面的毛病信息:
运转查询毛病
[State=42000][Error=229][Microsoft][ODBCSQLServerDriver][SQLServer][Microsoft][ODBCSQLServerDriver][SQLServer]EXECUTEpermissiondeniedonobjecttestWebPage,databasetest,ownerdbo.
[State=37000][Error=16805][Microsoft][ODBCSQLServerDriver][SQLServer]SQLWebAssistant:CouldnotexecutetheSQLstatement.
这是因为在省缺情形下,界说的静态页面导出的运转权力并非默许的付与每一个用户。以是当以editer的身份实行IDC时,就会呈现权限没有失掉允许的毛病信息。不外这其实不会影响对稿件数据的操纵。
办理这个成绩有两种办法,一个是修正响应的对稿件举行拔出和修正的IDC文件,将个中的Username和password分离改成sa和sa的口令。如许就会以sa的身份运转此IDC文件,从而就不会再呈现毛病了。而此办法会形成一些平安上的隐患,假如有人读取了这些IDC文件。他就晓得了sa的口令,从而能够以sa的身份登录到数据库当中。对数据库能够举行几近没无限制的操纵和修正。为了不这类情形的产生,能够经由过程运转上面的SQL语句来授与editers脚色对静态页面导出义务的实行权限:
grantallontest.dbo.[testWebPage]toediters
个中testWebPage为此静态页面导出义务的名字,之以是用中括号将其扩起来的缘故原由是它的名字中包括空格。在SQLServer中,但凡名字中包括空格的工具,在援用其称号时都应当用中括号将其括起来。并且关于这些工具,将不克不及在EnterpriseManager中对其权限等信息举行修正。而只能经由过程SQL语句来完成。这是因为EnterpriseManager中的一个bug酿成的,在SQLServer的SP3中仍旧没有失掉休正。
固然经由过程EnterpriseManager中的导游来创建静态页面导出义务是一个复杂的历程,可是关于一些庞大的情形就显得有些不太合用了。好比,假定我们将要把天天出书报的内容放到Internet上经由过程静态页面举行公布。如许光依托EnterpriseManager的导游中供应的功效就远远不敷了。只能经由过程挪用sp_makewebtask存贮历程并利用一些技能来来完成如许对照庞大的义务。DBaaS系统本身并不提供面对面访问或个人客户关系或持续不断的支持MySQL学习教程。这些就是需要解决方案提供商的原因。他们帮助客户选择正确的解决方案、规划集成和迁移战略,然后协助实施。
爱飞 该用户已被删除
沙发
发表于 2015-1-19 16:09:29 | 只看该作者
多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油
第二个灵魂 该用户已被删除
板凳
发表于 2015-1-28 07:58:30 来自手机 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
柔情似水 该用户已被删除
地板
发表于 2015-2-5 19:59:28 | 只看该作者
大家注意一点。如下面的例子:
只想知道 该用户已被删除
5#
发表于 2015-2-13 10:13:31 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
小女巫 该用户已被删除
6#
发表于 2015-3-3 20:21:49 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
简单生活 该用户已被删除
7#
发表于 2015-3-11 13:27:26 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
兰色精灵 该用户已被删除
8#
发表于 2015-3-18 14:45:39 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
再见西城 该用户已被删除
9#
发表于 2015-3-26 01:52:22 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:27

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表