Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
Delphi 6-7

Найти вычисляемое поле

08.05.2018, 18:16. Показов 745. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте срочно нужна помощь!!! у меня есть 3 поля(отсрочка, освобождение и мед.заключение) на основе которых 4-ое поле(решение) должно выводить результат и сохранять его в базе данных. как это реализовать?? если есть 3 варианта вывода решения :
1) когда поле отсрочка(нет или да(отказ)) + освобождение(нет) + муд.заключение(годен или годен с незнач. ограничениями) тогда после решение должно выводить результат (подлежит призыву)
2) когда поле отсрочка(да)+Освобождение(нет) тогда поле решение должно выводить результат(предоставить отсрочку)
3) когда после освобождение(да) тогда поле решение должно выводить (освободить от призыва).
моя база данных на SQL Server, а клиентское приложение на Delphi7. подскажите как это все реализовать?? я пробовала через событие на тэйбле OnCalcField, но чет у меня вывело неверный результат и оно не сохраняется в базе данных, а мне нужно чтобы сохраняло
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2018, 18:16
Ответы с готовыми решениями:

Вычисляемое поле
Имеется база Access 2003, в которой несколько таблиц,в одной таблице имеется поле цена, в другом количество. Хочу сделать чтобы в delphi...

Вычисляемое поле
Доброго времени суток, форумчане :) подскажите пожалуйста как можно реализовать подсчет данных в вычисляемом поле. Есть база а Access, в...

Вычисляемое поле
Создал вычисляемое поле и возникла такая ситуация Вычисляются только те значения на каком поле находиться фокус (т.е подставляется только...

13
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
08.05.2018, 18:23
Цитата Сообщение от julia1996volod Посмотреть сообщение
а мне нужно чтобы сохраняло
зачем, если это поле вычисляемое?
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
08.05.2018, 18:26  [ТС]
даже если без сохранения как это реализовать???
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
08.05.2018, 18:28
SQL запросом
SQL
1
SELECT a,b,c, a+b*c
или с помощью SQL+case
SQL
1
SELECT CASE WHEN xx THEN yy END
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
08.05.2018, 18:33  [ТС]
а можно поподробнее?? через case не могу, потому что у меня в таблице данные в текстовом формате указаны(да, нет, годен или годен с незначительными ограничениями)
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
08.05.2018, 18:35
Цитата Сообщение от julia1996volod Посмотреть сообщение
через case не могу
как раз через case и надо раз у вас там не числа

Цитата Сообщение от julia1996volod Посмотреть сообщение
а можно поподробнее?
что подробнее? открывай справку про case и пиши запрос в базе
когда у тебя будет готовый запрос используй Query для его выполнения
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
08.05.2018, 18:38  [ТС]
а как через Query активировать запрос??
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
08.05.2018, 18:41
SQL
1
Query.open;
в учебнике это есть
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
09.05.2018, 10:10  [ТС]
а есть другой способ??

Добавлено через 43 минуты
SQL
1
2
3
4
5
6
7
8
9
10
SELECT [Право на отсрочку], [Право на освобождение], [Заключение мед.комиссии]
CASE
WHEN [Право на отсрочку]='Нет' OR [Право на отсрочку]='Да(отказ)' AND
[Право на освобождение]='Нет' AND [Заключение мед.комиссии]='Годен' OR [Заключение мед.комиссии]='Годен с незначительными ограничениями'
THEN 'Подлежит призыву'
WHEN [Право на отсрочку]='Да' AND [Право на освобождение]='Нет' THEN 'Предоставить отсрочку'
WHEN [Право на освобождение]='Да' THEN 'Освободить от призыва'
ELSE 'Проверьте данные'
END AS [Решение]
FROM Главная
я написала код в ADOQuery но говорит что возле CASE недопустимый синтаксис, в чем дело помогите плииз!!!!
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
09.05.2018, 10:19  [ТС]
SQL
1
2
3
4
5
6
7
8
9
10
SELECT [Право на отсрочку], [Право на освобождение], [Заключение мед.комиссии]
CASE
WHEN [Право на отсрочку]='Нет' OR [Право на отсрочку]='Да(отказ)' AND
[Право на освобождение]='Нет' AND [Заключение мед.комиссии]='Годен' OR [Заключение мед.комиссии]='Годен с незначительными ограничениями'
THEN 'Подлежит призыву'
WHEN [Право на отсрочку]='Да' AND [Право на освобождение]='Нет' THEN 'Предоставить отсрочку'
WHEN [Право на освобождение]='Да' THEN 'Освободить от призыва'
ELSE 'Проверьте данные'
END AS [Решение]
FROM Главная
я написала код в ADOQuery но говорит что возле CASE недопустимый синтаксис, в чем дело помогите плииз!!!!
вот условие
у меня есть 3 поля(отсрочка, освобождение и мед.заключение) на основе которых 4-ое поле(решение) должно выводить результат и сохранять его в базе данных. как это реализовать?? если есть 3 варианта вывода решения :
1) когда поле отсрочка(нет или да(отказ)) + освобождение(нет) + мед.заключение(годен или годен с незнач. ограничениями) тогда после решение должно выводить результат (подлежит призыву)
2) когда поле отсрочка(да)+Освобождение(нет) тогда поле решение должно выводить результат(предоставить отсрочку)
3) когда после освобождение(да) тогда поле решение должно выводить (освободить от призыва).
моя база данных на SQL Server, а клиентское приложение на Delphi7
0
Модератор
 Аватар для D1973
9923 / 6459 / 2457
Регистрация: 21.01.2014
Сообщений: 27,409
Записей в блоге: 3
09.05.2018, 10:51
julia1996volod, а в самой СУБД этот запрос отрабатывает? Если нет - доводите его до ума именно в MS SQL Server, потом делайте там же хранимую процедуру, которая будет возвращать одно из этих значений. И вот эту процедуру вызывайте из Delphi
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
09.05.2018, 12:08
а почему у вас все поля текстовые?
вы не знаете про справочники?
все эти ваши Да\Нет\Годен это нужно запихнуть в справочники и не хранить в БД к каждой строке текст
0
0 / 0 / 0
Регистрация: 08.05.2018
Сообщений: 7
09.05.2018, 12:14  [ТС]
а как создавать эти справочники?? вот как у меня в таблице заполнено
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,170
Записей в блоге: 3
09.05.2018, 12:42
справочник это такая же таблица
например
Справочник "Семейное положение"
0 Не женат
1 Женат
2 Не замужем
3 Замужем
и так далее

в свою таблицу тогда ты вставляешь не текстовые значения, а цифры из справочника
а потом когда выбираешь данные на просмотр\в отчет нужно с помощью JOIN подключить справочник и получить текстовое значение поля
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2018, 12:42
Помогаю со студенческими работами здесь

вычисляемое поле
нужно создать вычисляемое поле (в делфи) "списание " данные берутся из 2-х разных таблиц "продажа" и "состав", при...

Вычисляемое поле
Хелп миии ADOQuery,поля берутся с другой таблицы и последнее поле вычисляемое, так вот при запуске программы при заполнении первого...

Вычисляемое поле
Здравствуйте. Столкунулся с проблемой, в в таблице есть два поля с датой. Дата начала и дата оконания, необходимо чтобы высчитывало...

Вычисляемое поле
Как сделать вычисляемое поле с неск. арифметич.операциями Например: procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet); ...

Вычисляемое поле
Помогите товарищи программеры. Столкнулся с такой проблемой: нужно создать вычисляемое поле в базе данных "Библиотека". У...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru