|
|
|
N1k |
|
|||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: нет Всего: 2 |
Есть таблицы "Материалы" и "Продукты".
Для каждого элемента таблицы "Продукты" свой набор материалов. В таблице "Материалы" есть текстовое поле "РасчетКоличества" в котором хранится формула (что-то типа "a*b+c"). Нужно получить набор материалов для данного продукта (при заданных a,b и c) с полем "Количество" в котором будет числовое значение эквивалентное значению вычесленной формулы из поля "РасчетКоличества". Т.е. если, например, a=10,b=20, с=30 и формула "a+b+c", то значение поля "Количество" для данного материала = 60. Реально такое сдеать с помощью одного(без получения промежуточных данных) запроса? если да , то можно ли пример. Использую ADO, access. |
|||
|
||||
Staruha |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: нет Всего: 27 |
Если данные однотипные(для всего столбца вся формула),тогда это сделает Access. А если нет тогда придется воспользоваться Case средствами типа
1 - a*b+c 2 - a+c -------------------- Возмездие настигнет |
|||
|
||||
Vit |
|
|||
Vitaly Nevzorov Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Ну формировать динамически SQL запрос, что-то типа:
Query2.sql.text:='Select * From Table1 Where '+Query1.fieldbyname('MyFormula').asstring А если не в таблице надо вычислять, тогда модуль Parsing из RxLib поможет -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Akella |
|
|||
Творец Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Конечно реально. Поищи по рунету информацию по ключевыым словам "парсинг", "разбор математических выражений" и т.д, возможно даже на форуме, может даже в арсенале....
|
|||
|
||||
comtat |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1310 Регистрация: 2.5.2006 Где: Россия, Казань Репутация: 1 Всего: 71 |
Хороший парсер для этих целей ArtFormula и ArtFormulan
-------------------- Рожденный в СССР !!! ExtJS - мой фреймворк |
|||
|
||||
N1k |
|
||||
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 4.1.2006 Репутация: нет Всего: 2 |
Парсер - это понятно, но вопрос стоял
Можно поподробней? |
||||
|
|||||
Vit |
|
|||
Vitaly Nevzorov Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Не уверен что MS Access поддерживает Case - слабенький там SQL используется. Во многих диалектах SQL возможна конструкция вида:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
bas |
|
|||
Опытный Профиль Группа: Участник Сообщений: 446 Регистрация: 14.8.2002 Где: Молдова, Кишинев Репутация: 1 Всего: 2 |
||||
|
||||
Staruha |
|
|||
Эксперт Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: нет Всего: 27 |
Я имела ввиду - если сохранять данные например в первом и втором столбце, то третий будет автоматически пересчитываться.Это когда данные однотипные.А остальное Vit сказал(Я на Delphi недавно. Извините,если ,что не так)
Vit, все-таки мне так представляется ,что Case можно без запроса построить,а данные для формул вытаскиать конечно запросом Это сообщение отредактировал(а) Staruha - 16.5.2006, 19:52 -------------------- Возмездие настигнет |
|||
|
||||
Vit |
|
|||
Vitaly Nevzorov Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Нет, построить нет проблем, речь идёт о том чтоб реализовать эту логику в пределах одного запроса, и повидимому это невозможно. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |