![]() |
|
|
![]()
|
|
| mAh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
делаю базу для учета оборудования.для каждого оборудования копится информация по его использаванию.что мне делать для каждого оборудования свою табличку.посоветуйте.
база в акцесе доступ через ado. всего около 100 видов оборудования. нужно выбрать записи с определенной фамилией из все табличек делал вроде работает на когда делаю выборку из всех табличек пишет "слишком сложный запрос" обьединял таблички с помощью union ADOQuery1.SQL.Add('select * from kontr_'+inttostr(o)); ADOQuery1.SQL.Add('where производил="'+combobox2.Text+'"'); крутится в цикле пока не создаст запрос для всех таблиц.потом включаю выполнение может кто посоветует как сделать лучше или уменьшить количество таблиц. или хотя бы с запросом на выборку из всех табличек. |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
||||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
мне кажется отдельная таблица для каждого типа оборудование не совсем верно... эти таблицы можно объеденить если у них не сильно разный набор полей...
ну а что бы не меняя структуры решить твою задачу попробуй сделать View( это вроде можно в акцессе) и в нем напиши все UNION может там он справится с этим запросом а потом уже в ADO выбирай из этой View для нужного исполнителя -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Все нельзя, не буду врать насчет максимума, но как раз здесь и вывалится указанная ошибка, если превысить количество объединений. Сам пробовал
Тебе нужно всего две связанные таблицы (в простейшем случае) главная -"Список оборудования" и подчиненная: "Использование" |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
может данная ошибка вываливается на стороне ADO а на стороне Accessa будет работать... хотя я в этом не уверен не пробовал -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Структуру подчиненной таблицы в студию, что-то я сомневаюсь что для каждого оборудования надо делать отдельную таблицу. Может проще сделать таблицу типа
Потом выводишь все запросом, получаешь таблицу типа Название параметра | значение параметра -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| mAh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
для каждого оборудования поля одинаковые там число проверки,причина- там ремонт замена детали и т.п. и фамилия проверяющего.
в одном dbgrid у меня название оборудования- хранится в отдельной таблице , в другом dbgrid данные по оборудованию. че то я сомневаюсь что можно сделать меньше таблиц. только что для каждого оборудования делать свои поля типа дата_1,то_1,фм_1,дата_2,то_2,фм_2, но сколько можно сделать полей есть ли предел -вопрос. если оборудования окола ста видов то полей будет 300 штук можно ли создать столько полей в акцесе. а то я пробовал в табличке создавать поля пишет нельзя более 255.но программно может больше можно не пробовал. информация сохраняется то каждый день тут скрин базы. советуйте. Добавлено через 4 минуты и 15 секунд если делать запрос в акцесе то количество то оборудования может изменится вот в чем дело то. Присоединённый файл ( Кол-во скачиваний: 9 )
1.rar 16,07 Kb |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Зачем? Они же я так понял они одинаковые у каждого оборудования, просто ставь id оборудования и для него поля твои. А потом запрос по id оборудования и он тебе покажет все записи которые записаны с таким id. Про реляционные БД читали? Если нет то очень рекомендую почитать, лит-ры в инете навалом. -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Savek |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 10.4.2006 Где: Воронеж Репутация: 7 Всего: 7 |
Подход в корне не верный. Повторюсь: таблиц нужно всего лишь две. Ключевые слова: связанные таблицы, схема данных. Без этих понятий получится свалка а не база данных. |
|||
|
||||
| mAh |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 15.4.2008 Репутация: нет Всего: нет |
да все понял как раньше не догадался не знаю.спасибо всем.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |