![]() |
![]() |
|
OLE - открываю базу 7.7 SQL | ☑ | ||
---|---|---|---|---|
0
AntonU
14.09.06
✎
17:08
|
v77=Новый COMОбъект ("V77.Application");
Так можно? или надо V77s.Application ? |
|||
1
vde69
14.09.06
✎
17:09
|
можно
|
|||
2
AntonU
14.09.06
✎
17:10
|
а в чем разница?
|
|||
3
vde69
14.09.06
✎
17:11
|
(2) на память не помню, чего-то с использованием компонетов платформы связано
|
|||
4
АП
14.09.06
✎
17:41
|
Функция ИнитОЛЕ()
Соединение77 = Неопределено; КаталогБД = "D:\где то тут база"; Попытка Соединение77 = Новый COMОбъект("V77.Application"); Если Не Соединение77.Initialize(Соединение77.RMTrade, "/d"""+КаталогБД+""""+" /nSystem /psystem","NO_SPLASH_SHOW") Тогда Соединение77 = Новый COMОбъект("V77S.Application"); Если Не Соединение77.Initialize(Соединение77.RMTrade, "/d"""+КаталогБД+""""+" /nSystem /psystem","NO_SPLASH_SHOW") Тогда Соединение77 = Новый COMОбъект("V77L.Application"); Если Не Соединение77.Initialize(Соединение77.RMTrade, "/d"""+КаталогБД+""""+" /nSystem /psystem","NO_SPLASH_SHOW") Тогда Соединение77 = Новый COMОбъект("V77Enterprise.Application"); Если Не Соединение77.Initialize(Соединение77.RMTrade, "/d"""+КаталогБД+""""+" /nSystem /psystem","NO_SPLASH_SHOW") Тогда Соединение77 = Новый COMОбъект("V77M.Application"); Если Не Соединение77.Initialize(Соединение77.RMTrade, "/d"""+КаталогБД+""""+" /nSystem /psystem","NO_SPLASH_SHOW") Тогда Предупреждение("Ошибка открытия информационной базы 7.7!"); Соединение77 = Неопределено; Возврат Ложь; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Исключение Предупреждение("Ошибка открытия информационной базы 7.7!"); Соединение77 = Неопределено; Возврат Ложь; КонецПопытки; Возврат Истина; КонецФункции // ИнитОЛЕ() |
|||
5
vde69
14.09.06
✎
17:47
|
(4) круть.... даже не знаю, то-ли восхищаться, то-ли смеяться...
универсализм вроде достигнут, но ведь реально в одной сети используеться один дистрибутив и устанавливаеться с одинаковыми настройками.... по крайне мере я такой подход использовать не буду, если уж не соединилось то пусть админы установят 1с везде одинаково... |
|||
6
АП
14.09.06
✎
17:51
|
везет, когда одна
а если несколько? а если уйма филиалов, где могут быть разные а так вытащил на форму КаталогБД, имя, пароль (при необходимости) и юзаешь не думая |
|||
7
vde69
14.09.06
✎
17:53
|
(6) мнение имеет право на жизнь, добавил в БЗ
|
|||
8
YoungMan
14.09.06
✎
18:06
|
А на мой вкус так лучше:
Функция Подключение (сПуть, сПользователь, сПароль) Экспорт мПодСистемы = Новый Массив; мПодСистемы.Добавить("V77.Application"); мПодСистемы.Добавить("V1CEnterprise.Application"); мПодСистемы.Добавить("V77S.Application"); мПодСистемы.Добавить("V77M.Application"); мПодСистемы.Добавить("V77L.Application"); сСообщениеОбОшибке = ""; Для каждого сПодСистема Из мПодСистемы Цикл Попытка ОдинС77 = Новый COMОбъект(сПодСистема); //Формирование строки соединения сСтрокаСоединения = ""; Если Не(сПуть = Неопределено ИЛИ СокрЛП(сПуть) = "") Тогда сСтрокаСоединения = "/D" + Символ(34) + СокрЛП(сПуть) + Символ(34); КонецЕсли; Если сПользователь = Неопределено ИЛИ СокрЛП(сПользователь) = "" Тогда сСтрокаСоединения = сСтрокаСоединения + " /NUserName /PPassword"; Иначе сСтрокаСоединения = сСтрокаСоединения + " /N" + Символ(34) + СокрЛП(сПользователь) + Символ(34) + " /P" + Символ(34) + СокрЛП(сПароль)+ Символ(34); КонецЕсли; //Попытка соединения с 1С:Предприятие 7.7 Открыта = ОдинС77.Initialize(ОдинС77.RMTrade, сСтрокаСоединения, ""); Если Открыта = Ложь Тогда ОдинС77 = Неопределено; сСообщениеОбОшибке = сСообщениеОбОшибке + "Программный идентификатор:" + сПодСистема + "Ошибка: Подключение не установлено." + Символы.ПС; Иначе Возврат ОдинС77; КонецЕсли Исключение сСообщениеОбОшибке = сСообщениеОбОшибке + "Программный идентификатор:" + сПодСистема + "Ошибка: Программный идентификатор не зарегистрирован." + Символы.ПС; КонецПопытки; КонецЦикла; Предупреждение(сСообщениеОбОшибке) КонецФункции |
|||
9
АП
15.09.06
✎
09:53
|
(8) мне нравится )
|
|||
10
AntonU
15.09.06
✎
11:32
|
Кстати, еще вопрос, а как подключиться именно к SQL-ной базе
Путь="E:\1CBases\Buh_2006_08\accdb1c\1sbdb_2005\"; ПользовательОле="Admin"; v77=Новый COMОбъект ("V77.Application"); рез=v77.Initialize(v77.RMTrade, "/D"""+Путь+""" /N"+ПользовательОле+" /P","NO_SPLASH_SHOW"); Если рез=0 Тогда Сообщить("Не удалось подключиться к базе.",СтатусСообщения.Важное); Возврат; КонецЕсли; это для Dbf-ной. А как SQL-ную прописать? |
|||
11
АП
15.09.06
✎
11:34
|
V77s
|
|||
12
АП
15.09.06
✎
11:37
|
(11) или V1CEnterprise, клинит
возьми (4) или (8) и не парься, а если пробежишься дебаггером, то сможешь удовлетворить свою тягу к знанию ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |