Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

MS Access Запрос с более 255 полями.   Найти похожие ветки 

 
infom ©   (2006-08-14 11:35) [0]

Уважаемые мастера у меня появилась следующая проблема:

Необходимо создать запрос который возвращает около 350 полей, а MS Access это непозволяет, пишет ошибку "определено слишком много полей".

Как это побороть и что мне делать вообще ?


 
Sergey13 ©   (2006-08-14 11:38) [1]

> Как это побороть и что мне делать вообще ?

Заняться проектированием приложения/базы, ИМХО. Это ненормально (обычно), что "Необходимо создать запрос который возвращает около 350 полей".


 
tupoy   (2006-08-14 11:39) [2]

разбить на 2 запроса, а вообще - см [1]


 
infom ©   (2006-08-14 11:43) [3]

Структура БД и так проще некуда
Есть магазины ~800, есть товары около >150, по каждому товару хранится число и цена итого по одному магазину около 320 полей.

Главная проблема в том что это БД служит для анализа. т.е. аналитик одним запросам получает всю информацию по товарам по всем магазинам одним запросом, а потом анализирует свои различные показатели извлеченные из этого запроса


 
Sergey13 ©   (2006-08-14 11:49) [4]

> [3] infom ©   (14.08.06 11:43)
> Структура БД и так проще некуда
> Есть магазины ~800, есть товары около >150, по каждому товару
> хранится число и цена итого по одному магазину около 320
> полей.

И ты считаешь - это нормально?

> Главная проблема в том что это БД служит для анализа.
Главная проблема, что база спроектирована из рук вон плохо.


 
Anatoly Podgoretsky ©   (2006-08-14 12:04) [5]

infom ©   (14.08.06 11:43) [3]
Итого получается всего три поля.
Не подпускать к базе, пока голова не будет исправлена.


 
Tomkat   (2006-08-14 12:06) [6]


>  по каждому товару хранится число и цена итого по одному
> магазину около 320 полей.

а перевернуть таблицу не пробовал ?
сделать справочник магазинов, товаров , прайсов в конце концов ....
См. Нормальные формы БД.


 
infom ©   (2006-08-14 12:08) [7]

2 Sergey13

база спроектирована под текущие нужды. клиент четко обещал что продуктов будет не более 100. Теперь он хочет ввести ещё 50 продуктов, причем программа мной уже полностью написана для ста и работает прекрасно, если добавить ещё 25 то она бедт также работать, но вот добавить ещё 50 уже не получится, каким образом это можно обойти ?


 
sniknik ©   (2006-08-14 12:10) [8]

из справки...
Определено слишком много полей. (Ошибка 3190)
Попытка выполнить операцию, которая включает более 255 полей. Уменьшите число полей и повторите операцию.


> клиент четко обещал что продуктов будет не более 100.
тз есть?

> Теперь он хочет ввести ещё 50 продуктов...
дополнительная переделка (перенаписание с 0), дополнительно оплачивается... повод есть. в чем проблема?


 
Tomkat   (2006-08-14 12:13) [9]


> продуктов будет не более 100

как это ?????? а вдруг расширение производства !
ну можно програмно столбцы добавлять , но предел-то есть ....
думаю , никак не обойти в той структуре .... ограничение кол-во полей есть в любой БД
надо менять .... пока  не поздно ...


 
infom ©   (2006-08-14 12:15) [10]

2 All

Уважаемые, учить меня создавать хорошо структурированные базы данных не стоит, и как это делать я прекрасно умею.

Скажите мне вы если вас просят сделать такую вот БД с максимум 100 типами продукции, неужели вы будете все делать полностью реляционную модель и соблюдать НФ-ы тем самым уменьшив скорость работы как БД так и свою и нажив себе огромное количество проблем по ворочанию этой неповоротливой системы.

Клиент просто попросил увеличить количество полей ещё на 50, у меня встала конкретная проблема переделывать ли мне все и реализовывать другую структуру БД или же все удасться сделать намного мягче.


 
stone ©   (2006-08-14 12:19) [11]


> Скажите мне вы если вас просят сделать такую вот БД с максимум
> 100 типами продукции, неужели вы будете все делать полностью
> реляционную модель и соблюдать НФ-ы

Обязательно

> тем самым уменьшив скорость работы как БД так и свою и нажив
> себе огромное количество проблем по ворочанию этой неповоротливой
> системы.

На твоем примере вижу обратное

> Клиент просто попросил увеличить количество полей ещё на
> 50, у меня встала конкретная проблема переделывать ли мне
> все и реализовывать другую структуру БД или же все удасться
> сделать намного мягче.

А завтра попросит еще штук 200...


 
Anatoly Podgoretsky ©   (2006-08-14 12:20) [12]

Конечно будем, а как же иначе, не городить же монстра.

Попросить оплатить переделку в размере 150%


 
Desdechado ©   (2006-08-14 12:20) [13]

> просят сделать такую вот БД с максимум 100 типами продукции, неужели
> вы будете все делать полностью реляционную модель и соблюдать НФ-ы
Только так и буду - по правилам.

> тем самым уменьшив скорость работы как БД так и свою
Плохому танцору...

> нажив себе огромное количество проблем по ворочанию этой неповоротливой системы.
Сколько делал, ни разу не нажил. А ты вот уже успел. Так кто прав?


 
Anatoly Podgoretsky ©   (2006-08-14 12:21) [14]

Но вообще то на месте клиента взыскал бы с автора и заставил сделать бесплатно и оплатить неустойку.


 
infom ©   (2006-08-14 12:41) [15]

Desdechado
Дорогу переходим только по пешеходному переходу и используем только лицензионные софт наверно...

Все по пунктам.
1. Во первых клиент и так платит мизер, поэтому все реализовывалось не отвелекая от основной работы
2. Все реализовывалось в "бесплатном" файловом MS Access из-за необходимости затраты минимум средств и возможностью быстрого переноса между компами.
3. Было выдвинуто требование реализовать в течении 2-х дней (причем рабочии дни).

Теперь давайте перестанем обвинять меня в криворукости и четко ответим, кто знает, можно ли каким либо образом обойти предел в 255 полей или увеличить его ?


 
Dok   (2006-08-14 12:46) [16]


> Теперь давайте перестанем обвинять меня в криворукости и
> четко ответим, кто знает, можно ли каким либо образом обойти
> предел в 255 полей или увеличить его ?

парень ты утверждаешь, что знаешь как - но делашь как сказал клиент? Понятно что клиент не знает о нормальных формах, но ты блин - программер! Ты должен фильтровать что говорит клиент и делать как нужно! Клиент завтра скажет мне пожалуйста сделай как в екселе: оодна строка, а каждом поле по несколько значений, ты что будешь все это реализовывать? Или ексель свой писать? Давно уже придумали все эти тербония приводит к 3-ей нормальной форме.


 
infom ©   (2006-08-14 12:51) [17]

2 Dok
Парень первая реализация программы отработала своё время прекрасно, теперь идет следующее идентичное исследование. Вопрос смогу ли я использовать старую программу для нового идентичного исследования ????


 
Dok   (2006-08-14 12:58) [18]


> Парень первая реализация программы отработала своё время
> прекрасно, теперь идет следующее идентичное исследование.
>  Вопрос смогу ли я использовать старую программу для нового
> идентичного исследования ????

а что ошибка тебе ничего не сказала?


 
tupoy   (2006-08-14 12:59) [19]

infom, что ты тут выяснить пытаешься, сказали уже много раз, что такая структура ни к чему хорошему не приведет. Как вообще, зная про теорию БД, можно сотворить такое чудо? Поэтому - переделай свои сотни полей в записи и будет тебе щастье.  Или занимайся другим делом и не пудри людям мозги(с).

идентичное исследование, блин..


 
Desdechado ©   (2006-08-14 13:12) [20]

Все просто - не надо путать способ представления данных пользователю, способ хранения и способ внутренней обработки. Тогда и будет по правилам. И легко масштабируемо. И без тормозов. И легко дорабатываемо.
По твоему подходу не видно, что ты умеешь "создавать хорошо структурированные базы".


 
Anatoly Podgoretsky ©   (2006-08-14 13:25) [21]

Зато виден лохотрон.


 
infom ©   (2006-08-14 15:29) [22]


> По твоему подходу не видно, что ты умеешь "создавать хорошо
> структурированные базы".

Времени создать хорошо структурированную базу не было. У меня было менее 20 часов на полностью работоспособную программу.
> Зато виден лохотрон.

лохотрон ? это вы про что, кого я здесь прокатил ?


 
Dok   (2006-08-14 15:40) [23]


> Времени создать хорошо структурированную базу не было. У
> меня было менее 20 часов на полностью работоспособную программу

Как видно ты с задачей не справился.


 
Sergey13 ©   (2006-08-14 15:42) [24]

> [22] infom ©   (14.08.06 15:29)
> У меня было менее 20 часов на полностью работоспособную
> программу.
А сейчас сколько? 10? 3?
Тебе показали направление движения. Чего ты еще хочешь?


 
sniknik ©   (2006-08-14 15:45) [25]

> Чего ты еще хочешь?
чуда!... как и многие тут. ;о))


 
Anatoly Podgoretsky ©   (2006-08-14 16:27) [26]

infom ©   (14.08.06 15:29) [22]
Заказчика, спихнул ему туфту.


 
evvcom ©   (2006-08-14 16:42) [27]


> [9] Tomkat   (14.08.06 12:13)
> надо менять .... пока  не поздно ...

прокладку между стулом и компьютером :)

> [10] infom ©   (14.08.06 12:15)
> учить меня создавать хорошо структурированные базы данных
> не стоит, и как это делать я прекрасно умею.

Ой, как громко!

> и нажив себе огромное количество проблем

может у меня чего-то со зрением? У кого проблемы? У нас?

:LMD)


 
infom ©   (2006-08-14 16:47) [28]

2 Sergey13 [24]
То направлене движения которое вы мне показали увидит любой. А мне хочется не чуда, а по возможности другого решения, если такое есть, а вот есть такое или нет никто ответить не может, да и поиски не помешают.

sniknik ©   (14.08.06 15:45) [25]
Чуда не надо, нужна просто помощь, а не обвинение в непрофессионализме, об уровне которого вы судить точно не можете.

Anatoly Podgoretsky ©   (14.08.06 16:27) [26]

> Заказчика, спихнул ему туфту.


Я полностью довел программу, теперь ему необходимо продолжение, о котором раньше разговора небыло.

Ещё раз повторю, реализация программы по первому требованию полностью удовлетворяла ТЗ и остальные требования, заказчик попользовался программой и теперь хочет применить её в другом исследовании, что со мной не было обговорено.


 
evvcom ©   (2006-08-14 16:51) [29]

> [28] infom ©   (14.08.06 16:47)
> реализация программы по первому требованию полностью удовлетворяла
> ТЗ и остальные требования

Ты теперь это заказчику втюхивай, а не нам.


 
Stanislav ©   (2006-08-14 16:52) [30]

>То направлене движения которое вы мне показали увидит любой. А мне >хочется не чуда, а по возможности другого решения, если такое есть, а >вот есть такое или нет никто ответить не может, да и поиски не помешают.

А ты еще монитор задом разверни может это решение как раз поможет? :-)


 
infom ©   (2006-08-14 16:54) [31]


> Ой, как громко!

Громко это когда с восклицательным знаком.

> может у меня чего-то со зрением? У кого проблемы? У нас?

Проблем никаких нет, есть необходимость выбора решения....


 
Сергей М. ©   (2006-08-14 16:55) [32]


> infom ©   (14.08.06 16:47) [28]


Твое спасение на сей момент  - это создание доп.таблицы (для хранения доп.полей) и соединение существующей и новой таблицы в отношениии "один-к-одному". Но путь твой, как уже здесь сказали, - тупиковый.


 
ANB ©   (2006-08-14 16:56) [33]


> У меня было менее 20 часов на полностью работоспособную
> программу.

Полчаса - потолок нарисовать такую базу в нормализованном виде.

Не поздно и сейчас. Обойти ограничение на количество полей ни в одной СУБД не возможно (ну, в тех, которые я видел). Кстати, даже если ты нормализуешь базу, в запросе все равно нельзя будет выдавать более 255 полей, так что лучше сразу переделать и отображение.

Скажи клиенту, что его просьба вызывает технические трудности и надо все переделать / оплатить эту работу. Или пусть делает сам. :)


 
Sergey13 ©   (2006-08-14 16:56) [34]

> [28] infom ©   (14.08.06 16:47)
>а вот есть такое или нет никто ответить не может, да и поиски не помешают.

Конечно есть. И одно из них тебе подсказали в
> [2] tupoy   (14.08.06 11:39)

Но это решение - заплата на здоровую дыру. А тебе советуют перешить этот тришкин кафтан. И правильно советуют.

> Я полностью довел программу, теперь ему необходимо продолжение, о котором раньше разговора небыло.

Это не совсем так. Ты фактически не заложил в структуру возможность дополнения информации - это грубая ошибка проектирования, про что тебе и говорят.
Не обижаться надо, а поблагодарить за конструктивную критику (пусть и высказанную в неконструктивной форме 8-) и бежать переделывать. 8-)


 
infom ©   (2006-08-14 16:57) [35]

Извините, но адекватностью этот форум совсем не страдает, скорее наоборот, благо есть пример для сравнения (форум sql.ru), где люди адекватно изложили свои мысли без тонны грязи...

Всем спасибо.

Решение мной уже найдено и за время дискуссии реализовано.


 
Stanislav ©   (2006-08-14 16:58) [36]

Сергей М. ©   (14.08.06 16:55) [32]

А ему это наверное в отчет нужно вытянуть, это их все равно нужно объединить в один запрос и вытащить все поля.


 
infom ©   (2006-08-14 17:00) [37]

Сергей М. ©   (14.08.06 16:55) [32]

ANB ©   (14.08.06 16:56) [33]

Персональное спасибо за человеческое отношение.


 
ANB ©   (2006-08-14 17:00) [38]


> (форум sql.ru), где люди адекватно

Гы гы. А также огрести по полной в грубой форме :)


 
Сергей М. ©   (2006-08-14 17:01) [39]


> Stanislav ©   (14.08.06 16:58) [36]


А это уже его личная драма.

Ладно хоть не про Excel речь идет - там для автора совсем труба) ... 256 колонок на листе и ни одной больше)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.04 c
2-1159465605
Merry
2006-09-28 21:46
2006.10.15
FastReport


3-1155380497
Andrew___*
2006-08-12 15:01
2006.10.15
Как скрыть повторяющиеся записи?


1-1157523050
DmiSb
2006-09-06 10:10
2006.10.15
Как программно открыть календарь у TDateTimePicker ?


2-1159273579
Alex_C
2006-09-26 16:26
2006.10.15
Как получить canvas элемента?


15-1158777078
ArtemESC
2006-09-20 22:31
2006.10.15
BC_31, как откомпилить следующее...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский