powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Один запрос к двум базам mdb
10 сообщений из 10, страница 1 из 1
Один запрос к двум базам mdb
    #40131783
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такой топик . Там до конца тема не раскрыта.
Я работаю в БД через Excel (Jet Sql). Выгружаю из БД таблицы через ADOBD.Recordset и таким образом работаю. Все классно.
Но есть одна база, в которой уже заведены товары. А есть другая база, в которой тоже есть эти же товары. Сейчас они раз в день копируются из одной в другую. Нельзя ли как-н одним запросом лазить сразу в две базы и не держать клон таблицы товаров во второй базе? В топике есть пример, но как 2 соединения передавать то? При запросе вроде можно только одно передать.
Копировать из БД1 во временную таблицу БД2, делать запрос в БД2 и потом затирать - не спортивно.
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131784
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko,откройте 2 рекордсета..., прилинкуйте одну базу(таблицу) к другой - это же акс.(это 2 разных способа)
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131793
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko

...Но есть одна база, в которой уже заведены товары. А есть другая база, в которой тоже есть эти же товары. ...
Всегда "балдел" с таких искусственно создаваемых "сложностей" с дальнейшим их преодолеванием-ну создайте ОДНУ БД (перенесите нужные данные копированием) и спокойно ею пользуйтесь в дальнейшем, создав удобный интерфейс
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131799
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko
Но есть одна база, в которой уже заведены товары. А есть другая база, в которой тоже есть эти же товары. Сейчас они раз в день копируются из одной в другую


удалите наименее важную из них и забудьте как страшный сон...
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131818
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko
Есть такой топик . Там до конца тема не раскрыта.
чойта "нераскрыта" ?
очень даже раскрыта - 2285375

или так, "по современному"
Код: vbnet
1.
2.
3.
4.
5.
select a.*, b.*
from T a
inner join
(select * from T in 'путь и имя файла') b
on a.id=b.id


пс
в примере, предполагается, что коннект к базе с таб. "T a"
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131920
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, я написал же выше

kefirkoВ топике есть пример, но как 2 соединения передавать то? При запросе вроде можно только одно передать.


Код: vbnet
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.
    Const cs1$ = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""\\nas15\123.accdb"";Jet OLEDB:Database Password=123;"
    Const cs2$ = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""\\nas15\456.accdb"";Jet OLEDB:Database Password=456;"
    Const sql$ = "select ..."
    
    Set cn1 = CreateObject("ADODB.Connection")
    cn1.CursorLocation = 3 ' adUseClient
    cn1.Open cs1
    cn1.Execute sql
    
    Set cn2 = CreateObject("ADODB.Connection")
    cn2.CursorLocation = 3 ' adUseClient
    cn2.Open cs2
    cn2.Execute sql
    
    или

    Set rs1 = CreateObject("ADODB.Recordset")
    rs1.CursorType = 3 'adOpenStatic
    rs1.CursorLocation = 3 'adUseClient
    rs1.LockType = 3 'adLockOptimistic
    rs1.Open sql, cn1

    Set rs2 = CreateObject("ADODB.Recordset")
    rs2.CursorType = 3 'adOpenStatic
    rs2.CursorLocation = 3 'adUseClient
    rs2.LockType = 3 'adLockOptimistic
    rs2.Open sql, cn2



Вопрос не в том как запрос составить. Это в топике есть. Вопрос в том как открыть соединение сразу к двум базам? Открыть то можно только к одной.
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131921
kefirko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alecko
kefirko,откройте 2 рекордсета..., прилинкуйте одну базу(таблицу) к другой - это же акс.(это 2 разных способа)


Что есть прилинкуйте?
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131926
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko
court, я написал же выше
ты ничего не понял !
мой ответ, и пример (как и пример от Karfaqen ) ответ на этот вопрос
kefirko
Нельзя ли как-н одним запросом лазить сразу в две базы

НЕ НУЖНЫ НИКАКИЕ ДОП.КОННЕКТЫ !
По факту, вообще не нужны никакие коннекты к Акцессовским БД !

Ты ж из Экселя работаешь ? Там вроде как есть "свой", Application-а коннекшион (?)
Вот в нём / через него, ты можешь выполнить запрос такого вида
Код: sql
1.
2.
3.
4.
5.
6.
select a.*, b.*
from 
  (select * from T in 'путь и имя файла Акс-БД1') a
inner join
  (select * from T in 'путь и имя файла Акс-БД2') b
on a.id=b.id


и получить рекордсет с данными из Акс-БД 1 и 2, НЕ открывая конннекты к ним !
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131928
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko
Код: vbnet
1.
2.
    Const cs1$ = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""\\nas15\123.accdb"";Jet OLEDB:Database Password=123;"
    Const cs2$ = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""\\nas15\456.accdb"";Jet OLEDB:Database Password=456;"

с учетом, что у тебя базы запаролены, то ещё это добавится

Код: sql
1.
2.
from 
  (select * from T in 'путь и имя файла Акс-БД1'[PWD=mypwd]) a


или так
Код: sql
1.
2.
from 
  (select * from T in '' [database=путь и имя файла Акс-БД1;PWD=mypwd]) a


или так
Код: sql
1.
2.
from 
  (select * from [database=путь и имя файла Акс-БД1;PWD=mypwd].T) a


вообщем, какой-то из этих вариантов (а может и все) - рабочий
...
Рейтинг: 0 / 0
Один запрос к двум базам mdb
    #40131933
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefirko

Что есть прилинкуйте?

Создали связь между первой базой и второй с нужной таблицей, как если бы это была одна разделенная база, одна фронт, другая бэк end.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Один запрос к двум базам mdb
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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