powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Connect
11 сообщений из 11, страница 1 из 1
Connect
    #33647407
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно сделать следующее:

Может быть несколько подключений от 1-го -"Рабочая база" до 12 скажем
Январь, Февраль,... Декабрь.

Структура баз во всех случаях одна и та жэ.

Возникает необходимость выполнять однотипные действия, переберая эти базы.
Действия такие:

Код: plaintext
Conn.Execute и  Rs1.Open("......"),Conn
Как правильно написать процедуру, что бы в нее передовать именно тот Conn.
который я хочу.

Код: plaintext
1.
2.
3.
типа Sub BaseAcction (ConnName as ?????...
Conn.Execute и  Rs1.Open("......"),Conn
conn.close
end sub

Спасибо.
...
Рейтинг: 0 / 0
Connect
    #33647457
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На вскидку примерно так:
Создаем модуль:
Код: plaintext
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.
Dim mCol As Collection

Public Property Get Conn(ByVal ConnName As String) As ADODB.Connection
   Set Conn = mCol(ConnName)
End Property


Public Sub ConnectToBase(ByVal ConnString As String)
   Set mCol = New Collection
   Add ConnString, "Январь"
   Add ConnString, "Февраль"
   Add ConnString, "Март"
   '...
End Sub

Private Sub Add(ByVal ConnString As String, ByVal CustomBase As String)
   Dim ConnX As ADODB.Connection
   Set ConnX = New ADODB.Connection
   ConnX.CursorLocation = adUseClient
   ConnX.Open Replace(ConnString, "GeneralBase", CustomBase)
   mCol.Add ConnX
End Sub

Public Sub Main()
   ConnectToBase "Provider=... ;Initial Catalog=GeneralBase;... "
   'GeneralBase - это наше соглашение об именовании БД
End Sub
Открываем рекордсет так:
Код: plaintext
   rs.Open "select...", Conn("Январь"), adOpenStatic, adLockReadOnly, adCmdText
...
Рейтинг: 0 / 0
Connect
    #33647701
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, думаю разберусь.
...
Рейтинг: 0 / 0
Connect
    #33648297
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибку в примере сделал:
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub Add(ByVal ConnString As String, ByVal CustomBase As String)
   Dim ConnX As ADODB.Connection
   Set ConnX = New ADODB.Connection
   ConnX.CursorLocation = adUseClient
   ConnX.Open Replace(ConnString, "GeneralBase", CustomBase)
   mCol.Add ConnX, CustomBase 'вот здесь
End Sub
...
Рейтинг: 0 / 0
Connect
    #33649112
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ругается на
Код: plaintext
Set Conn = mCol(ConnName)

Run time error 91.

Код: plaintext
Conn(ByVal ConnName As String) As ADODB.Connection

не устанавливает Conn как As ADODB.Connection.

или я туплю?
...
Рейтинг: 0 / 0
Connect
    #33649248
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос снимается.
Прошу прощения, принцып работы понятен, разберусь.
...
Рейтинг: 0 / 0
Connect
    #33650034
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за идею, все работает на ура!
Помог!
Только при выполнении ConnectToBase, открываются сразу все Connect's , если 1-год то 12, 2 то 24, и т.д.

Вопрос такой: Будет ли тормозить лет через 10 12*10=120?
Если да, то ограничусь парой предыдущих лет.
Спасибо.
...
Рейтинг: 0 / 0
Connect
    #33650084
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все эти базы живут на одном сервере, то еще как будет.
...
Рейтинг: 0 / 0
Connect
    #33650155
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно, буду иметь ввиду.
...
Рейтинг: 0 / 0
Connect
    #33650192
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Буду бить по 12 шт. т.е. текущий месяц -12. Спасибо всем за советы, и участие.
...
Рейтинг: 0 / 0
Connect
    #33650238
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это MS SQL, то может лучше установить 1 соединение
к базе master и писать полностью запросы (с указанием имени базы)

Код: plaintext
1.
2.
SELECT * FROM MyBase..Table1
SELECT * FROM MyBase1..Table1
SELECT * FROM MyBase2..Table1
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Connect
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]