第 3 课:添加事件类
在本课中,您可将事件类添加到应用程序定义文件 (ADF),然后更新 Notification Services 实例以便将更改应用于应用程序数据库。然后可以查看对应用程序数据库所做的更改。
事件类基本知识
一个事件类表示 Notification Services 应用程序所使用的一类事件。定义事件类时,您将对可提交到应用程序并可用于生成通知的事件类型进行定义。事件类定义包括事件字段名称、数据类型和类型修饰符。
事件类可以定义其他信息,如事件数据和附加表的索引。有关事件类的详细信息,请参阅定义事件类。
当您创建应用程序时,Notification Services 使用事件类定义来创建表、视图、索引以及存储过程,以便存储、收集和管理事件数据。
WeatherData 事件类
对于此应用程序,您可将 WeatherData 事件类添加到 ADF。此事件类具有五个事件字段,分别为 City、Date、Low、High 和 Forecast。这些字段描述了您以后提交到应用程序的事件数据。对于每个事件字段,事件类定义了字段名称、数据类型和字段修饰符。
为了提高通知生成的性能,事件类还指定了 WeatherData 事件类的 City 字段上的索引。
将事件类 XML 添加到 ADF
本部分中的 XML 用于定义事件类。检查 XML,然后按照说明将 XML 复制到 ADF。
将事件类 XML 添加到 ADF
单击**“复制代码”**以将 XML 复制到 Windows 剪贴板。
<!-- Event Classes --> <EventClasses> <EventClass> <EventClassName>WeatherData</EventClassName> <Schema> <Field> <FieldName>City</FieldName> <FieldType>nvarchar(35)</FieldType> <FieldTypeMods>not null</FieldTypeMods> </Field> <Field> <FieldName>Date</FieldName> <FieldType>datetime</FieldType> <FieldTypeMods>not null</FieldTypeMods> </Field> <Field> <FieldName>Low</FieldName> <FieldType>float</FieldType> <FieldTypeMods>not null</FieldTypeMods> </Field> <Field> <FieldName>High</FieldName> <FieldType>float</FieldType> <FieldTypeMods>not null</FieldTypeMods> </Field> <Field> <FieldName>Forecast</FieldName> <FieldType>nvarchar(3500)</FieldType> <FieldTypeMods>not null</FieldTypeMods> </Field> </Schema> <IndexSqlSchema> <SqlStatement>CREATE INDEX myIndex ON WeatherData ( City ); </SqlStatement> </IndexSqlSchema> </EventClass> </EventClasses>
在解决方案资源管理器中,打开 WeatherADF.xml。
用刚刚复制的 XML 替换以下注释。
<!-- Replace with EventClasses XML -->
在**“文件”菜单上,选择“保存 WeatherADF.xml”**。
更新 Notification Services 的实例
修改 ADF 之后,您可更新 Notification Services 实例以将事件类对象添加到应用程序数据库。
更新 Notification Services 的实例
在对象资源管理器中,展开 Notification Services。
右键单击 Tutorial,指向**“任务”,再选择“更新”**。
在**“更新实例”对话框中,单击“浏览”,找到并选择 TutorialICF.xml 文件,再单击“打开”**。
在**“参数”**网格中,查看参数的值。
参数值应该是正确的,因为您已在第 2 课中根据需要修改了它们。如果您必须编辑这些值,请返回到第 2 课来了解如何在 ICF 中编辑参数默认值。
单击**“确定”**。
查看**“Notification Services - 更新摘要”对话框,再单击“更新”**。
更新操作完成后,单击**“关闭”**。
查看在应用程序数据库中所做的更改
更新实例时,Notification Services 将针对 TutorialWeather 应用程序数据库中的事件类添加表、视图和存储过程。
- dbo.WeatherData 事件视图是应用程序正在处理的当前事件集。当您以后写入通知生成查询时,可从此视图中选择数据。
- dbo.NSWeatherDataEvents 表是包含事件类的事件数据的基础表。事件数据保留在该表中,直到 vacuumer 数据删除进程将其删除。
注意: 请不要直接对应用程序数据库和实例数据库中的数据进行修改。若要添加事件数据,您必须使用一种支持的事件提交方法,如内置事件提供程序、事件提交存储过程或 API。有关详细信息,请参阅定义事件提供程序。
可以使用对象资源管理器来检查 TutorialWeather 数据库中的这些对象。可能需要刷新对象资源管理器,才能看到新对象。
下一课
请参阅
概念
其他资源
定义事件类
生成通知解决方案
SQL Server Notification Services 简介