|
|
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Access 2000 (XP) + MS SQL Server 7.0 (2000) Имеется проект, в котором находятся собственные библиотеки (функции, формы и т.п) - library.ade Имеется рабочий проект (test.adp), в котором есть ссылка (Reference) на проект library.ade Вопрос: как при открытии проекта test.adp получить доступ к свойству Connection подключенной библиотеки? Цель - определить к какой базе (серверу) подключен библиотечный проект (и подключен ли вообще), ну и соответственно сравнить с подключением текущего проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2003, 12:35 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Логичное решение - создать функцию в библиотеке library.ade которая возвращает BaseConnectionString, а затем ее использовать в test.adp. Пример: library.ade Код: plaintext 1. 2. test.adp. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 01:03 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
2 -=Alexey=- Вы предполагаете что такое решение будет работать, или точно знаете? Может у Вас и работает (или Вы не проверяли?), но у меня любое обращение к CurrentProject дает тот проект, который запущен, а не тот, в котором находится функция. Т.е. в том примере, который Вы привели И CurrentProject.BaseConnectionString и GetConnStr возвращают подключение проекта test.adp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2003, 11:03 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Перед тем как писать я проверил :) и метод GetConnStr возвращает строку подключения библиотеки, а не текщего проекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2003, 14:10 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Хочется верить, что я делаю что-то не так, у меня такой результат не получается. Если не сложно, бросьте на мыло два проекта, на которых Вы протестировали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2003, 14:23 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Я извиняюсь, у себя в коде написал то правильно, а в форум запостил бог знает что :( правильно конечно же конечно CodeProject, а не CurrentProject т.е. library.ade Код: plaintext 1. 2. еще раз извиняюсь за неточность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2003, 03:01 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
Спасибо, это то что нужно. Чего-то я тормознул, мог бы и сам найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2003, 10:36 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
--Имеется проект, в котором находятся собственные библиотеки (функции, --формы и т.п) - library.ade кстати, а как Вы используете формы/отчеты из этого библиотечного проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2003, 19:46 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
2 SM кстати, а как Вы используете формы/отчеты из этого библиотечного проекта? В проекте library.ade имеются две функции: Openform_lib (frmName, mode, ....) повторение метода Docmd.openform OpenReport_lib (repName, mode, ....) повторение метода Docmd.openreport Ну и для того, чтобы открыть форму или отчет из библиотечного модуля идет вызов соответствующей функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 10:45 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
incold, а когда основной проект переключаете на другую БД, необходимо также переподключить library.ade ? Для этого и нужно сравнение ConnectionStrings ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 18:21 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
2 SM Именно так. Хотя сначала цель была, хотя бы проверить, но потом сделал и переподключение. А почему спрашиваете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 19:00 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
потому что похоже, что и мне придется делать что-то в этом роде. Как делаете переподключение? codeProject.openConnection? Авторизация NT шная или SQL ская? Кстати, а можно ли подключить несколько библиотечныйх проектов? Library1.ade, Library2.ade и т.д. и на что в таком случае будет указывать codeProject? Если библиотечная форма открыта описанным Вами способом, с ней можно работать из кода основного проекта точно так же, как и с родной формой - forms!MyLibraryForm!MyControl .... не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 20:49 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
codeProject будет указывать на проект в котором выполняется программный, т.е. из кода своего проекта пытаться работать с ним бесполезно, но ничто не мешает написать публичные методы для библиотеки, которые будут переподключать ее. аналогично для кода vba есть CodeContextObject - указывает на контекст выполнения также как есть CurrenDB and CodeDB, ActiveWorkbook and ThisWorkbook, все из одной серии ------------------- Кстати, а можно ли подключить несколько библиотечныйх проектов? Library1.ade, Library2.ade и т.д. и на что в таком случае будет указывать codeProject? конечно можно. codeProject в вашем проекте будет всегда указывать на CurrentProject , а вот в коде библиотек Library1.ade, Library2.ade и т.д. на их контекст соотвественно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2003, 21:14 |
|
||
|
Как определить ConnectionString подключенного модуля?
|
|||
|---|---|---|---|
|
#18+
2 SM В общем -=Alexey=- Вам уже ответил, я только добавлю несколько слов. По крайней мере, как я это реализовывал. Для переподключения всех библиотечных модулей, в каждом есть своя функция: Public Function OpenConn_[имя проекта](strConn as String) CodeProject.OpenConnection strConn End Function В основном проекте цикл по всем ссылкам, если расширение подключенного файла (*.ade), тогда выполняем Eval ("OpenConn_" & [имя проекта] & " " & CurrentProject.baseConnectionString) При этом не имеет значения какая авторизация, только для Sql-ной нужно ставить флаг сохранение пароля, иначе не переподключит :( Что касается библиотечных форм, то после того как она открыта, она входит в семейство Forms, соответственно с ней можно работать так же, как и с формой текущего проекта. Для примера в модуле основного проекта нужно открыть форму из Libary1.ade, а затем скрыть поле. openforms_lib1 "Form1" If ("Проверка успешного открытия формы") Then forms!form1!Field1.Visible=False End if ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2003, 11:28 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32134439&tid=1681853]: |
0ms |
get settings: |
8ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 373ms |

| 0 / 0 |
