Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.855 c
2-1158921818
Bug12
2006-09-22 14:43
2006.10.15
Проблема со string и integer - помогите новичку


11-1135322419
Lari
2005-12-23 10:20
2006.10.15
Преобразование PJpeg -> TBitMap?


15-1159190198
Безымянный
2006-09-25 17:16
2006.10.15
Настройка интернета


2-1159346762
Aleks
2006-09-27 12:46
2006.10.15
Как из программы открыть окно проводника с выделенным,нужным файл


2-1159278904
Aleron
2006-09-26 17:55
2006.10.15
Сохранение в файл