Использование запроса UNION для большого числа таблиц

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 13.08.2004 (Пт) 17:06

А если с другой стороны подойти?
Тебе нужно эти записи увидеть обязательно в одном редактируемом рекордсете? Если такой надобности нет, то вытащи данные в несколько рекордсетов и работай с ними. Если очень надо, то можно рекордсеты объединить, наверно...
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 13.08.2004 (Пт) 17:34

Согласен с радужным человеком по последнему пункту. И по предыдущему ее предложению насчет изменения архитектуры - тоже, причем обеими руками. Интересно, если схему твоей БД загрузить в ERwin Examiner, какими именно матюками он ругаться начнет? :)

Если серьезно: я никогда не работал с Аксессом, поэтому не в курсе насчет его ограничений. Моя спеца - MSSQL2K, и вот насчет его могу сказать: решаются такие вещи на раз и два, даже без изменения архитектуры. Пишется хранимая процедура, которая просто тупо выбирает нужные тебе данные из всех твоих 150 таблей в одну временную таблицу, после чего позвращает тебе ее всю (или нужную часть), после чего времянка автоматом грохается, если конечно она была объявлена как локальная, а не глобальная. В этом случае тебе просто по барабану становится пересечение действий разных юзеров. Не самый эффективный способ, имхо, но без изменения архитектуры - лучший из худших. Я просто не помню, сколько таблиц в сиквеле можно в юнион запихнуть... :)

ZlydenGL
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 148
Зарегистрирован: 13.08.2004 (Пт) 10:02

Сообщение ZlydenGL » 16.08.2004 (Пн) 8:38

К сожалению, клиент-серверную структуру использовать не представляется возможным :-(

Будем искать...
Покой нам только снится!!! И то редко. Поскольку нет в мире совершенства, а есть только стремление к оному.

ANB
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 21.10.2005 (Пт) 1:17

Сообщение ANB » 21.10.2005 (Пт) 8:04

Я не большой спец в Accesse, но могу предложить другой вариант (если гора не идет к Магомету...).
Насколько я понимаю работу Accessa, можно слить все таблицы в однус добавлением идентификатора (как предлагалось в начале обсуждения), нынешние таблицы удалить, а вместо них создать запросы с такими же именами (таким образом с внешней точки зрения база вообще не изменится), а если есть проблемы с работой по VPN каналу - используйте терминальный режим, тогда фактически все будет работать на одном главном компьютере и глюков быть не должно.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 21.10.2005 (Пт) 11:51

Leon_ писал(а):Да я даже пробовать не буду -- тот еще гемор :D Да у меня и такого количества таблиц нет.
Попробуй идти маленькими шагами, как тебе Rainbow советовала -- объедини в запросы по 30, потом из них -- в главный.
Все у тебя получится, я уверен.


IMHO подобным способом данное ограничение не обойти.

Как не обойти и ограничение на кол-во Recordset-ов необходимых для формирования запроса. Имеется в виду Recordset-ы используемые также внутри DAO (один запрос может использовать несколько таких Recordset-ов). Так что открыл несколько сложных запросов и усе... Натыкались на такое ограничение?

Кстати, объединить таблицы в одну таблицу можно и сейчас. А вместо старых 150 таблиц создать 150 вьюшек с тем-же именем.

Или сборка всех таблиц в одну временную, на машине пользователя...

Но это все временное решение проблем.

По хорошему - перевод базы на SQL Server с кардинальным исправлением ее структуры.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.10.2005 (Пт) 11:59

Народ, а вам не кажется, что за прошедшие 14 месяцев человек решил эту проблему? :)
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 21.10.2005 (Пт) 12:04

alibek писал(а):Народ, а вам не кажется, что за прошедшие 14 месяцев человек решил эту проблему? :)


Опять некрофилы труп выкопали, а все и рады оказались...
:lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 21.10.2005 (Пт) 12:15

по теме могу сказать, что в ADO.NET 2.0 можно получить скока джоинов поддерживает соединение в одном запросе
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.10.2005 (Пт) 12:21

Я думаю, это и в ADO есть, если как следует покопаться в Parameters.
Lasciate ogni speranza, voi ch'entrate.

Пред.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 2

    TopList