|
7 / 5 / 2
Регистрация: 25.05.2013
Сообщений: 112
|
||||||||||||||||
MySQL Проверка введенных данных в БД при транзакции29.11.2017, 04:38. Показов 1049. Ответов 0
Всем привет!
Пишу на C++ Builder Embarcadero XE Доступ к БД: UniDAC (аналог BDE) БД: MySQL Таблицы: InnoDB (поддерживает транзакции) Задача: проверить введенные пользователем данные с формы. Проверить нужно на то заполнены ли обязательные поля или нет. Форм, таблиц, текстовых полей и т. д. очень много, поэтому думаю об универсальном решении. Вот, что придумал: смотрю в Information_Schema (Columns) по именам полей их свойство IS_NULLABLE, затем смотрю введенное значение пользователем в это поле и смотрю, может ли оно быть Null или не может. Составляю список всех пустых обязательных полей и вывожу их пользователю в виде сообщения, чтоб именно их заполнил. ! На пользовательской форме используются компоненты ввода DB (DBEdit, DBComboBox и т.д.), которые подключены к нужным DataSource. Пользователь вводит данные, нажимает "Сохранить", срабатывает метод Post(); ! Необходимо использовать транзакции при сохранении. Пробовал таблицы MyISAM (не поддерживают транзакции) Вот в, чем затык: 1. Непонятно, где хранятся данные кроме компонентов до метода Post(); Пробовал смотреть значения полей, пока открыт Insert(), но еще не сработал Post() - везде NULL, т.е. данных пока еще нет в DataSet. 2. Непонятно, какой запрос отправляется в БД (и отправляется ли вообще), если пользователь с формы вводит данные, а потом срабатывает Post() 3. Нашел предложение отключить RequiredFields у TUniQuery, отправить Post(), и посмотреть, что отправилось, но в этом случае не срабатывает RollBack() (т.к. MyISAM не поддерживает транзакции). вот пример:
вот что написано в доках у разработчиков компонентов UniDAC:
Вот мой код сохранения:
Вопросы: 1. Где хранятся данные введенные в компоненты, подключенные к БД до выполнения запроса? 2. Какой запрос отправляет TUniQuery к БД при методе Post() и отправляет ли вообще? 3. Как организовать транзакцию в моем случае, когда нет явного запроса, а данные введены в форму? 4. Какие есть еще идеи по моей задаче? Всем заранее спасибо!
0
|
||||||||||||||||
| 29.11.2017, 04:38 | |
|
Ответы с готовыми решениями:
0
Проверка введенных данных при регистрации Проверка введенных данных при регистрации Проверка введенных данных при потере фокуса компонентами |
| 29.11.2017, 04:38 | |
|
Помогаю со студенческими работами здесь
1
При работе программы должна производиться проверка на корректность введенных данных Проверка введенных данных Проверка введенных данных Проверка введенных данных Проверка введённых данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|