forked from Tavalik/TMSSQL
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathПримерИспользования_TMSSQL.os
173 lines (149 loc) · 9.95 KB
/
ПримерИспользования_TMSSQL.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
// При подключении библиотеки необходиомо указать путь к каталогу TMSSQL с библиотекой TMSSQL.
// Путь указывается относительно расположения данного файла.
#Использовать "..\TMSSQL"
//*****************************************************************
Процедура ПолныйТестВсехПроцедур(УправлениеMSSQL)
БылиОшибки = Ложь;
// Создадим базу данных
Если УправлениеMSSQL.СоздатьБД() Тогда
Сообщить("СоздатьБД: УСПЕШНО");
Иначе
Сообщить("СоздатьБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Получим список файлов базы данных
ТаблицаФайловБД = УправлениеMSSQL.ПолучитьСтруктуруФайловБД();
Если ТаблицаФайловБД <> Неопределено Тогда
Сообщить("ПолучитьСтруктуруФайловБД: УСПЕШНО");
Для Каждого ФайлБД Из ТаблицаФайловБД Цикл
Сообщить(" Имя: " + ФайлБД.ЛогическоеИмя + ", Путь: " + ФайлБД.ФизическоеИмя + ", тип: " + ФайлБД.Тип + ", размер: " + ФайлБД.Размер + " Мб.");
КонецЦикла;
Иначе
Сообщить("ПолучитьСтруктуруФайловБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сменим модель восстановления базы на полную
Если УправлениеMSSQL.ИзменитьМодельВосстановленияБД("FULL") Тогда
Сообщить("ИзменитьМодельВосстановленияБД: УСПЕШНО");
Иначе
Сообщить("ИзменитьМодельВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Сделаем полную резервную копию
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"FULL");
Если ПолноеИмяФайла <> Неопределено Тогда
Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
ДатаПолнойКопии = ТекущаяДата();
// Сделаем разностную резервную копию
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"DIFFERENTIAL");
Если ПолноеИмяФайла <> Неопределено Тогда
Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Сделем копию журнала транзакций
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"LOG");
Если ПолноеИмяФайла <> Неопределено Тогда
Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Сделем копию журнала транзакций
ПолноеИмяФайла = УправлениеMSSQL.СделатьРезервнуюКопиюБД(,,"LOG");
Если ПолноеИмяФайла <> Неопределено Тогда
Сообщить("СделатьРезервнуюКопиюБД: УСПЕШНО в " + ПолноеИмяФайла);
Иначе
Сообщить("СделатьРезервнуюКопиюБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
Приостановить(6000);
// Восстаноим базу на дату создания полной копии
Если УправлениеMSSQL.ВосстановитьБД(ДатаПолнойКопии) Тогда
Сообщить("ВосстановитьБД: УСПЕШНО на дату " + ДатаПолнойКопии);
Иначе
Сообщить("ВосстановитьБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Получим список файлов для восстановления на текущую дату
МассивФайлов = УправлениеMSSQL.ПолучитьСписокФайловДляВосстановленияБД();
Если МассивФайлов <> Неопределено Тогда
Сообщить("ПолучитьСписокФайловДляВосстановленияБД: УСПЕШНО");
Для Сч = 0 По МассивФайлов.Количество()-1 Цикл
Сообщить(" Файл: " + МассивФайлов.Получить(Сч));
КонецЦикла;
Иначе
Сообщить("ПолучитьСписокФайловДляВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Восстановим базу данных по полученнуму ранее массиву файлов
Если УправлениеMSSQL.ВосстановитьИзРезервнойКопииБД(МассивФайлов) Тогда
Сообщить("ВосстановитьИзРезервнойКопииБД: УСПЕШНО");
Иначе
Сообщить("ВосстановитьИзРезервнойКопииБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Удалим файлы резервных копий
Для Сч = 0 По МассивФайлов.Количество()-1 Цикл
ИмяФайлаДляУдаления = МассивФайлов.Получить(Сч);
Если УправлениеMSSQL.УдалитьФайлНаСервере(ИмяФайлаДляУдаления) Тогда
Сообщить("УдалитьФайлНаСервере: УСПЕШНО для " + ИмяФайлаДляУдаления);
Иначе
Сообщить("УдалитьФайлНаСервере: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
КонецЦикла;
// Переведем базу в простую модель восстановления
Если УправлениеMSSQL.ИзменитьМодельВосстановленияБД("SIMPLE") Тогда
Сообщить("ИзменитьМодельВосстановленияБД: УСПЕШНО");
Иначе
Сообщить("ИзменитьМодельВосстановленияБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Запустим сжатие файлов лога
Если УправлениеMSSQL.СжатьФайлыБД("LOG") Тогда
Сообщить("СжатьФайлыБД: УСПЕШНО");
Иначе
Сообщить("СжатьФайлыБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Запустим сжатие базы данных
Если УправлениеMSSQL.СжатьБД() Тогда
Сообщить("СжатьБД: УСПЕШНО");
Иначе
Сообщить("СжатьБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Удалим базу данных
Если УправлениеMSSQL.УдалитьБД() Тогда
Сообщить("УдалитьБД: УСПЕШНО");
Иначе
Сообщить("УдалитьБД: " + УправлениеMSSQL.ТекстОшибки);
БылиОшибки = Истина;
КонецЕсли;
// Отчет о работче процедуры
Сообщить("");
Сообщить("-----------------------------------------------");
Сообщить("Результат работы тестирования модуля: " + ?(БылиОшибки,"БЫЛИ ОШИБКИ","УСПЕШНО"));
Сообщить("-----------------------------------------------");
Сообщить("");
КонецПроцедуры
//*****************************************************************
// Создадим объект
УправлениеMSSQL = Новый УправлениеMSSQL();
// Введем параметры
ПараметрыПодключения = УправлениеMSSQL.ПараметрыПодключения;
ПараметрыПодключения.АдресСервераSQL = "10.1.1.40";
ПараметрыПодключения.ИмяПользователяSQL = "sa";
ПараметрыПодключения.ПарольПользователяSQL = "pass";
ПараметрыПодключения.ИмяБазыДанныхSQL = "Test_OS_TMSSQL";
//УправлениеMSSQL.РежимОтладки = Истина;
ПолныйТестВсехПроцедур(УправлениеMSSQL);