1
利用SQLDMO实现的,只要添加SQLDMO引用就好了,然后利用下边的类的方法就可以实现了。
2
我把原作者的类扩充了一下,可以自动识别web.config里 的数据库连接字符串,可以通过变量设置还原恢复的信息。
3![](/Images/OutliningIndicators/None.gif)
4
需要注意的时还原,还原的时候问题最大了,有别的用户使用数据库的时候无法还原,解决办法就是在MASTER数据库中添加一个存储过程:
5![](/Images/OutliningIndicators/None.gif)
6![](/Images/OutliningIndicators/None.gif)
7
create proc killspid (@dbname varchar(20))
8
as
9
begin
10
declare @sql nvarchar(500)
11
declare @spid int
12
set @sql='declare getspid cursor for
13
select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
14
exec (@sql)
15
open getspid
16
fetch next from getspid into @spid
17
while @@fetch_status<>-1
18
begin
19
exec('kill '+@spid)
20
fetch next from getspid into @spid
21
end
22
close getspid
23
deallocate getspid
24
end
25
GO
26![](/Images/OutliningIndicators/None.gif)
27![](/Images/OutliningIndicators/None.gif)
28
在还原之前先执行这个存储过程,需要传递dbname,就是你的数据库的名字。下边是类的原代码:(web.config里的数据库连接字符串是constr)
29
30![](/Images/OutliningIndicators/None.gif)
31
using System;
32![](/Images/OutliningIndicators/None.gif)
33
using System.Configuration;
34![](/Images/OutliningIndicators/None.gif)
35
using System.Data.SqlClient;
36![](/Images/OutliningIndicators/None.gif)
37
using System.Data;
38![](/Images/OutliningIndicators/None.gif)
39
namespace web.base_class
40![](/Images/OutliningIndicators/None.gif)
41
{
42![](/Images/OutliningIndicators/InBlock.gif)
43
/**//// <summary>
44![](/Images/OutliningIndicators/InBlock.gif)
45
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
46![](/Images/OutliningIndicators/InBlock.gif)
47
/// </summary>
48![](/Images/OutliningIndicators/InBlock.gif)
49
public class DbOper
50![](/Images/OutliningIndicators/InBlock.gif)
51
{
52![](/Images/OutliningIndicators/InBlock.gif)
53
private string server;
54![](/Images/OutliningIndicators/InBlock.gif)
55
private string uid;
56![](/Images/OutliningIndicators/InBlock.gif)
57
private string pwd;
58![](/Images/OutliningIndicators/InBlock.gif)
59
private string database;
60![](/Images/OutliningIndicators/InBlock.gif)
61
private string conn;
62![](/Images/OutliningIndicators/InBlock.gif)
63
/**//// <summary>
64![](/Images/OutliningIndicators/InBlock.gif)
65
/// DbOper类的构造函数
66![](/Images/OutliningIndicators/InBlock.gif)
67
/// </summary>
68![](/Images/OutliningIndicators/InBlock.gif)
69
public DbOper()
70![](/Images/OutliningIndicators/InBlock.gif)
71
{
72![](/Images/OutliningIndicators/InBlock.gif)
73
conn=System.Configuration.ConfigurationSettings.AppSettings["constr"].ToString();
74![](/Images/OutliningIndicators/InBlock.gif)
75
server=cut(conn,"server=",";");
76![](/Images/OutliningIndicators/InBlock.gif)
77
uid=cut(conn,"uid=",";");
78![](/Images/OutliningIndicators/InBlock.gif)
79
pwd=cut(conn,"pwd=",";");
80![](/Images/OutliningIndicators/InBlock.gif)
81
database=cut(conn,"database=",";");
82![](/Images/OutliningIndicators/InBlock.gif)
83
}
84![](/Images/OutliningIndicators/InBlock.gif)
85
public string cut(string str,string bg,string ed)
86![](/Images/OutliningIndicators/InBlock.gif)
87
{
88![](/Images/OutliningIndicators/InBlock.gif)
89
string sub;
90![](/Images/OutliningIndicators/InBlock.gif)
91
sub=str.Substring(str.IndexOf(bg)+bg.Length);
92![](/Images/OutliningIndicators/InBlock.gif)
93
sub=sub.Substring(0,sub.IndexOf(";"));
94![](/Images/OutliningIndicators/InBlock.gif)
95
return sub;
96![](/Images/OutliningIndicators/InBlock.gif)
97
}
98![](/Images/OutliningIndicators/InBlock.gif)
99
100![](/Images/OutliningIndicators/InBlock.gif)
101
/**//// <summary>
102![](/Images/OutliningIndicators/InBlock.gif)
103
/// 数据库备份
104![](/Images/OutliningIndicators/InBlock.gif)
105
/// </summary>
106![](/Images/OutliningIndicators/InBlock.gif)
107
public bool DbBackup(string url)
108![](/Images/OutliningIndicators/InBlock.gif)
109
{
110![](/Images/OutliningIndicators/InBlock.gif)
111
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
112![](/Images/OutliningIndicators/InBlock.gif)
113
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
114![](/Images/OutliningIndicators/InBlock.gif)
115
try
116![](/Images/OutliningIndicators/InBlock.gif)
117
{
118![](/Images/OutliningIndicators/InBlock.gif)
119
oSQLServer.LoginSecure = false;
120![](/Images/OutliningIndicators/InBlock.gif)
121
oSQLServer.Connect(server,uid, pwd);
122![](/Images/OutliningIndicators/InBlock.gif)
123
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
124![](/Images/OutliningIndicators/InBlock.gif)
125
oBackup.Database = database;
126![](/Images/OutliningIndicators/InBlock.gif)
127
oBackup.Files = url;//"d:\Northwind.bak";
128![](/Images/OutliningIndicators/InBlock.gif)
129
oBackup.BackupSetName = database;
130![](/Images/OutliningIndicators/InBlock.gif)
131
oBackup.BackupSetDescription = "数据库备份";
132![](/Images/OutliningIndicators/InBlock.gif)
133
oBackup.Initialize = true;
134![](/Images/OutliningIndicators/InBlock.gif)
135
oBackup.SQLBackup(oSQLServer);
136![](/Images/OutliningIndicators/InBlock.gif)
137
return true;
138![](/Images/OutliningIndicators/InBlock.gif)
139
}
140![](/Images/OutliningIndicators/InBlock.gif)
141
catch
142![](/Images/OutliningIndicators/InBlock.gif)
143
{
144![](/Images/OutliningIndicators/InBlock.gif)
145
return false;
146![](/Images/OutliningIndicators/InBlock.gif)
147
throw;
148![](/Images/OutliningIndicators/InBlock.gif)
149
}
150![](/Images/OutliningIndicators/InBlock.gif)
151
finally
152![](/Images/OutliningIndicators/InBlock.gif)
153
{
154![](/Images/OutliningIndicators/InBlock.gif)
155
oSQLServer.DisConnect();
156![](/Images/OutliningIndicators/InBlock.gif)
157
}
158![](/Images/OutliningIndicators/InBlock.gif)
159
}
160![](/Images/OutliningIndicators/InBlock.gif)
161
162![](/Images/OutliningIndicators/InBlock.gif)
163
/**//// <summary>
164![](/Images/OutliningIndicators/InBlock.gif)
165
/// 数据库恢复
166![](/Images/OutliningIndicators/InBlock.gif)
167
/// </summary>
168![](/Images/OutliningIndicators/InBlock.gif)
169
public string DbRestore(string url)
170![](/Images/OutliningIndicators/InBlock.gif)
171
{
172![](/Images/OutliningIndicators/InBlock.gif)
173
if(exepro()!=true)//执行存储过程
174![](/Images/OutliningIndicators/InBlock.gif)
175
{
176![](/Images/OutliningIndicators/InBlock.gif)
177
return "操作失败";
178![](/Images/OutliningIndicators/InBlock.gif)
179
}
180![](/Images/OutliningIndicators/InBlock.gif)
181
else
182![](/Images/OutliningIndicators/InBlock.gif)
183
{
184![](/Images/OutliningIndicators/InBlock.gif)
185
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
186![](/Images/OutliningIndicators/InBlock.gif)
187
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
188![](/Images/OutliningIndicators/InBlock.gif)
189
try
190![](/Images/OutliningIndicators/InBlock.gif)
191
{
192![](/Images/OutliningIndicators/InBlock.gif)
193
oSQLServer.LoginSecure = false;
194![](/Images/OutliningIndicators/InBlock.gif)
195
oSQLServer.Connect(server, uid, pwd);
196![](/Images/OutliningIndicators/InBlock.gif)
197
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
198![](/Images/OutliningIndicators/InBlock.gif)
199
oRestore.Database = database;
200![](/Images/OutliningIndicators/InBlock.gif)
201
oRestore.Files = url;//@"d:\Northwind.bak";
202![](/Images/OutliningIndicators/InBlock.gif)
203
oRestore.FileNumber = 1;
204![](/Images/OutliningIndicators/InBlock.gif)
205
oRestore.ReplaceDatabase = true;
206![](/Images/OutliningIndicators/InBlock.gif)
207
oRestore.SQLRestore(oSQLServer);
208![](/Images/OutliningIndicators/InBlock.gif)
209
return "ok";
210![](/Images/OutliningIndicators/InBlock.gif)
211
}
212![](/Images/OutliningIndicators/InBlock.gif)
213
catch(Exception e)
214![](/Images/OutliningIndicators/InBlock.gif)
215
{
216![](/Images/OutliningIndicators/InBlock.gif)
217
return "恢复数据库失败";
218![](/Images/OutliningIndicators/InBlock.gif)
219
throw;
220![](/Images/OutliningIndicators/InBlock.gif)
221
}
222![](/Images/OutliningIndicators/InBlock.gif)
223
finally
224![](/Images/OutliningIndicators/InBlock.gif)
225
{
226![](/Images/OutliningIndicators/InBlock.gif)
227
oSQLServer.DisConnect();
228![](/Images/OutliningIndicators/InBlock.gif)
229
}
230![](/Images/OutliningIndicators/InBlock.gif)
231
}
232![](/Images/OutliningIndicators/InBlock.gif)
233
}
234![](/Images/OutliningIndicators/InBlock.gif)
235
private bool exepro()
236![](/Images/OutliningIndicators/InBlock.gif)
237
{
238![](/Images/OutliningIndicators/InBlock.gif)
239
SqlConnection conn1 = new SqlConnection("server="+server+";uid="+uid+";pwd="+pwd+";database=master");
240![](/Images/OutliningIndicators/InBlock.gif)
241
SqlCommand cmd = new SqlCommand("killspid",conn1);
242![](/Images/OutliningIndicators/InBlock.gif)
243
cmd.CommandType = CommandType.StoredProcedure;
244![](/Images/OutliningIndicators/InBlock.gif)
245
cmd.Parameters.Add("@dbname","port");
246![](/Images/OutliningIndicators/InBlock.gif)
247
try
248![](/Images/OutliningIndicators/InBlock.gif)
249
{
250![](/Images/OutliningIndicators/InBlock.gif)
251
conn1.Open();
252![](/Images/OutliningIndicators/InBlock.gif)
253
cmd.ExecuteNonQuery();
254![](/Images/OutliningIndicators/InBlock.gif)
255
return true;
256![](/Images/OutliningIndicators/InBlock.gif)
257
}
258![](/Images/OutliningIndicators/InBlock.gif)
259
catch(Exception ex)
260![](/Images/OutliningIndicators/InBlock.gif)
261
{
262![](/Images/OutliningIndicators/InBlock.gif)
263
return false;
264![](/Images/OutliningIndicators/InBlock.gif)
265
}
266![](/Images/OutliningIndicators/InBlock.gif)
267
finally
268![](/Images/OutliningIndicators/InBlock.gif)
269
{
270![](/Images/OutliningIndicators/InBlock.gif)
271
conn1.Close();
272![](/Images/OutliningIndicators/InBlock.gif)
273
}
274![](/Images/OutliningIndicators/InBlock.gif)
275
276![](/Images/OutliningIndicators/InBlock.gif)
277
}
278![](/Images/OutliningIndicators/InBlock.gif)
279
}
280![](/Images/OutliningIndicators/InBlock.gif)
281
}
282![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/InBlock.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/InBlock.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/InBlock.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/InBlock.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/InBlock.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/InBlock.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/InBlock.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/InBlock.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/InBlock.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/InBlock.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/InBlock.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/InBlock.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/InBlock.gif)
224
![](/Images/OutliningIndicators/InBlock.gif)
225
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/InBlock.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
238
![](/Images/OutliningIndicators/InBlock.gif)
239
![](/Images/OutliningIndicators/InBlock.gif)
240
![](/Images/OutliningIndicators/InBlock.gif)
241
![](/Images/OutliningIndicators/InBlock.gif)
242
![](/Images/OutliningIndicators/InBlock.gif)
243
![](/Images/OutliningIndicators/InBlock.gif)
244
![](/Images/OutliningIndicators/InBlock.gif)
245
![](/Images/OutliningIndicators/InBlock.gif)
246
![](/Images/OutliningIndicators/InBlock.gif)
247
![](/Images/OutliningIndicators/InBlock.gif)
248
![](/Images/OutliningIndicators/InBlock.gif)
249
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
250
![](/Images/OutliningIndicators/InBlock.gif)
251
![](/Images/OutliningIndicators/InBlock.gif)
252
![](/Images/OutliningIndicators/InBlock.gif)
253
![](/Images/OutliningIndicators/InBlock.gif)
254
![](/Images/OutliningIndicators/InBlock.gif)
255
![](/Images/OutliningIndicators/InBlock.gif)
256
![](/Images/OutliningIndicators/InBlock.gif)
257
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
258
![](/Images/OutliningIndicators/InBlock.gif)
259
![](/Images/OutliningIndicators/InBlock.gif)
260
![](/Images/OutliningIndicators/InBlock.gif)
261
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
262
![](/Images/OutliningIndicators/InBlock.gif)
263
![](/Images/OutliningIndicators/InBlock.gif)
264
![](/Images/OutliningIndicators/InBlock.gif)
265
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
266
![](/Images/OutliningIndicators/InBlock.gif)
267
![](/Images/OutliningIndicators/InBlock.gif)
268
![](/Images/OutliningIndicators/InBlock.gif)
269
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
270
![](/Images/OutliningIndicators/InBlock.gif)
271
![](/Images/OutliningIndicators/InBlock.gif)
272
![](/Images/OutliningIndicators/InBlock.gif)
273
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
274
![](/Images/OutliningIndicators/InBlock.gif)
275
![](/Images/OutliningIndicators/InBlock.gif)
276
![](/Images/OutliningIndicators/InBlock.gif)
277
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
278
![](/Images/OutliningIndicators/InBlock.gif)
279
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
280
![](/Images/OutliningIndicators/InBlock.gif)
281
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
282
![](/Images/OutliningIndicators/None.gif)