Skip to content

Commit 50a05dd

Browse files
authored
Merge pull request #140 from zeltyr/develop
Добавил простой конструктор для формирования строки соединения
2 parents cff189c + 4ac7811 commit 50a05dd

File tree

3 files changed

+408
-279
lines changed

3 files changed

+408
-279
lines changed

readme.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,36 @@
1919

2020
Каждая команда конфигуратора может выполняться только для конкретной информационной базы. База, для которой выполняется команда называется контекстом команды.
2121

22-
Контекст указывается в формате **параметра командной строки конфигуратора** - так, как в Конфигураторе задается нужная информационная база. Например, для формата строки соединения:
22+
Контекст указывается в формате **параметра командной строки конфигуратора** (так, как в Конфигураторе задается нужная информационная база) или в виде специальной структуры. Например, для формата строки соединения:
2323

2424
```bsl
2525
Конфигуратор.УстановитьКонтекст("/IBConnectionString""Srvr=someserver:2041; Ref='database'""","Admin", "passw0rd");
2626
```
2727

28+
ИЛИ
29+
30+
```bsl
31+
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
32+
ПараметрыСтрокиСоединения.Сервер = "someserver";
33+
ПараметрыСтрокиСоединения.Порт = 2041;
34+
ПараметрыСтрокиСоединения.ИмяБазы = "database";
35+
36+
Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
37+
```
38+
2839
В более простой форме - для файловой базы можно указать через ключ ```/F```:
2940

3041
```bsl
31-
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase","Admin", "passw0rd");
42+
Конфигуратор.УстановитьКонтекст("/FC:\1cdb\mydatabase", "Admin", "passw0rd");
43+
```
44+
45+
ИЛИ
46+
47+
```bsl
48+
ПараметрыСтрокиСоединения = Конфигуратор.ПараметрыСтрокиСоединения();
49+
ПараметрыСтрокиСоединения.ПутьКФайлуБазы = "C:\1cdb\mydatabase";
50+
51+
Конфигуратор.УстановитьКонтекст(ПараметрыСтрокиСоединения, "Admin", "passw0rd");
3252
```
3353

3454
Далее, вы вызываете методы объекта "Конфигуратор", соответствующие командам конфигуратора. Все команды будут выполняться над заданной базой. Теперь, объект Конфигуратор настроен на некий *"контекст"* - информационную базу, с которой и будут производиться все операции.

src/v8runner.os

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,13 @@
3434
#Область ПрограммыйИнтерфейс
3535

3636
Процедура УстановитьКонтекст(Знач СтрокаСоединения, Знач Пользователь, Знач Пароль) Экспорт
37-
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;
37+
38+
Если ТипЗнч(СтрокаСоединения) = Тип("Структура") Тогда
39+
мКонтекстКоманды.КлючСоединенияСБазой = СформироватьСтрокуСоединения(СтрокаСоединения);
40+
Иначе
41+
мКонтекстКоманды.КлючСоединенияСБазой = СтрокаСоединения;
42+
КОнецЕсли;
43+
3844
мКонтекстКоманды.ИмяПользователя = Пользователь;
3945
мКонтекстКоманды.Пароль = Пароль;
4046

@@ -2544,6 +2550,48 @@
25442550

25452551
КонецФункции
25462552

2553+
Функция СформироватьСтрокуСоединения(ПараметрыСтрокиСоединения) Экспорт
2554+
2555+
Если ТипЗнч(ПараметрыСтрокиСоединения) <> Тип("Структура") Тогда
2556+
Возврат ПараметрыСтрокиСоединения;
2557+
КонецЕсли;
2558+
2559+
Если ПараметрыСтрокиСоединения.ПутьКФайлуБазы <> "" Тогда
2560+
СтрокаСоединения = СтрШаблон("/F""%1""", ПараметрыСтрокиСоединения.ПутьКФайлуБазы);
2561+
Иначе
2562+
СтрокаСоединения = СтрШаблон(
2563+
"/IBConnectionString""Srvr='%1:%2'; Ref='%3'""",
2564+
ПараметрыСтрокиСоединения.Сервер,
2565+
ПараметрыСтрокиСоединения.Порт,
2566+
ПараметрыСтрокиСоединения.ИмяБазы);
2567+
КонецЕсли;
2568+
2569+
Возврат СтрокаСоединения;
2570+
2571+
КонецФункции
2572+
2573+
// возвращает параметры строки соединения с базой
2574+
//
2575+
// Возвращаемое значение:
2576+
// - Структура
2577+
// * Путь к файлу базы - строка - путь к базе в файловом варианте; если задан - остальные параметры игнорируются
2578+
// * Сервер - Строка
2579+
// * Порт - Строка
2580+
// * ИмяБазы - Строка
2581+
//
2582+
Функция ПараметрыСтрокиСоединения() Экспорт
2583+
2584+
ПараметрыСтрокиСоединения = Новый Структура;
2585+
2586+
ПараметрыСтрокиСоединения.Вставить("ПутьКФайлуБазы", "");
2587+
ПараметрыСтрокиСоединения.Вставить("Сервер", "");
2588+
ПараметрыСтрокиСоединения.Вставить("Порт", "");
2589+
ПараметрыСтрокиСоединения.Вставить("ИмяБазы", "");
2590+
2591+
Возврат ПараметрыСтрокиСоединения;
2592+
2593+
КонецФункции
2594+
25472595
#КонецОбласти
25482596

25492597
Лог = Логирование.ПолучитьЛог("oscript.lib.v8runner");

0 commit comments

Comments
 (0)