|
2 / 2 / 0
Регистрация: 26.05.2020
Сообщений: 331
|
|
Как сделать проверку на добавление записи в БД13.05.2021, 14:29. Показов 5800. Ответов 42
Метки нет (Все метки)
У меня есть таблица расписание (raspisanie) куда я добавляю запись о каком-либо занятий группы. И мне нужно как-то сделать проверку на то, чтобы один преподаватель не мог вести в одинаковое время 2 пары. И ещё, чтобы нельзя было добавлять занятие для группы, если например у этой группы уже есть занятие в это время. Время получается из (id_day(это день недели) и id_para(это время пары)). Преподаватель может преподавать несколько дисциплин, и он указан в таблице discipline_academic как id_teacher. Помогите пожалуйста.
0
|
|
| 13.05.2021, 14:29 | |
|
Ответы с готовыми решениями:
42
Как сделать проверку на свободное время для записи в Yii2? Как сделать добавление записи через ADOTable?
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 13.05.2021, 16:06 | |
|
Тут несколько решений.
1. Создание на сервере для таблицы уникальных индексов. 2. Алгоритм модификации/добавления вложить в бизнес-логику сервера на уровне хранимой процедуры или триггера. В обоих случаях ловить с клиента (Вашего приложения) эксепшины сервера в коде создания и отсылки запросов на изменение/добавление 3. В самом приложении перед модификацией/добавлением записи посылать запрос на выборку записи с такими же значениями критичных полей и, если найдена, то ругаться и ничего не изменять/добавлять. Тут небольшая хитрость: и проверку, и запись в БД если проверка была успешной (нет записи с "дублированием") нужно отсылать на сервер в одной транзакции. Добавлено через 5 минут И Вы не написали самого главного - каким образом Вы реализуете отправку на сервер новых/измененных записей. Если через адаптер (т.е. изменения делаются в гриде), то все грустно. Ибо Вам придется при выборе метода 3 (а что-то мне подсказывает, что ни триггеры, ни уникальные индексы Вы писать не будете) накручивать логику по событиям датасета грида ибо, насколько я знаю, штатные методы адаптера (Update, Insert) не позволяют вместо запросов писать целые скрипты, в который еще и поднимаются на сервере исключения.
1
|
|
|
2 / 2 / 0
Регистрация: 26.05.2020
Сообщений: 331
|
|
| 13.05.2021, 16:24 [ТС] | |
|
MsGuns, Ничего не понял, но очень интересно
0
|
|
|
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
|
||
| 13.05.2021, 16:49 | ||
|
0
|
||
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
||||
| 13.05.2021, 17:31 | ||||
|
0
|
||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 13.05.2021, 17:41 | |
|
mashmed135, Это все хорошо, но где Ваши рекомендации, как решить эту проблему при условии, что приложение сооружалось на 90% в конструкторе и с редактируемым гридом ?
0
|
|
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
||
| 13.05.2021, 17:53 | ||
|
0
|
||
|
2 / 2 / 0
Регистрация: 26.05.2020
Сообщений: 331
|
|
| 13.05.2021, 18:21 [ТС] | |
|
Ребят, а что делать то в итоге? Может кто максимально для тупых объяснить, как действовать.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 13.05.2021, 18:23 | |
|
0
|
|
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
|||||||
| 13.05.2021, 18:25 | |||||||
0
|
|||||||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||
| 13.05.2021, 18:29 | |||
|
1. Ничего не делать, бросить программирование нафиг. А пойти, например, в сапожники или пирожники. 2. Набраться терпения и начать изучать что-нибудь кроме "методичек" Ваших "преподов". Добавлено через 3 минуты
1
|
|||
|
2 / 2 / 0
Регистрация: 26.05.2020
Сообщений: 331
|
||||||
| 13.05.2021, 18:29 [ТС] | ||||||
|
mashmed135, Можно комментарии к этому? Что это делает и куда его пихать непосредственно в приложении на С#?
0
|
||||||
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
||
| 13.05.2021, 18:29 | ||
|
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 13.05.2021, 18:31 | ||
|
Добавлено через 45 секунд danhiroman, О Вам чушь предложил, к тому же для постргеса,У Вас же сервер другой ?
0
|
||
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
|||
| 13.05.2021, 18:32 | |||
|
0
|
|||
|
2 / 2 / 0
Регистрация: 26.05.2020
Сообщений: 331
|
|
| 13.05.2021, 18:32 [ТС] | |
|
MsGuns, MS SQL server
0
|
|
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
|||
| 13.05.2021, 18:35 | |||
|
0
|
|||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|||
| 13.05.2021, 18:42 | |||
|
Идея же ограничения (CONSTRAINT) на проверку уникальности значений совокупности полей таблицы, дополняющее правила бизнес-логики любого SQL-сервера, высказанная в [2] п.1, реализуется в MS SQL несколько по-другому. Как - читайте в документации мелкомягких. Все правила БЛС (бизнес-логики сервера) действуют абсолютно независимо от приложений, которые с ним (сервером) работают. Т.е. ни студия, ни шарп к этому отношения не имеют. Если, конечно, сами они не создают БД (EF Code First например) Добавлено через 1 минуту Не по теме: Все с тобою понятно :)
0
|
|||
|
112 / 110 / 30
Регистрация: 08.05.2021
Сообщений: 485
|
||
| 13.05.2021, 18:49 | ||
|
Так же видно, что дошколёнок уже выдрессированный - сразу понял, что против меня шансов у него никаких и даже не пытался родить хоть какое-то решение, ограничившись перепастой прочитанного в интернете ранее. Забавно на ятом фоне смотрятся пассажи про "ясно". Скучно.
0
|
||
|
14316 / 9402 / 1355
Регистрация: 21.01.2016
Сообщений: 35,461
|
||
| 14.05.2021, 05:53 | ||
|
danhiroman, тут народ спорит о корректном решении в условиях конкурентного доступа к базе. А вы хотя бы банальный запрос на SQL написать можете? Чтобы хотя бы просто проверить наличие пары на определённую дату с определённым преподом?
0
|
||
| 14.05.2021, 05:53 | |
|
Помогаю со студенческими работами здесь
20
Подскажите как сделать форму добавление записи в DBGrid Как сделать добавление/редактирование/удаление записи в dbgrid? Как сделать добавление записи через запрос в Access Как сделать проверку на пустую строку и проверку что в слове нет повторяющихся букв Как добавлять записи в файл, делая проверку на пустые записи Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|