Создание динамического запроса

У меня есть сценарий, в котором со следующими деталями:

У меня есть форма, которая содержит такие поля, как имя, отчество, фамилия, доб, пин-код, адрес для клиента 1.

Теперь эта форма должна обслуживать более одного клиента. Постановка проблемы такова: разные клиенты могут требовать отображения разного количества полей в интерфейсе. Например: второй клиент захочет - поле страны вместо пин-кода не потребует адреса в форме.

Теперь, когда я отправляю форму, в настоящее время у меня есть постоянный запрос, который принимает значения - имя, отчество, фамилия, доб, пин-код, адрес и вставляет его в базу данных для клиента 1. Я хочу разработать запрос таким образом, чтобы он создается во время выполнения и вставляет в базу данных только те значения, которые поступают из формы.

Я надеюсь, что моя проблема ясна. Может кто поможет???????????????


person user966506    schedule 16.11.2011    source источник


Ответы (2)


Вам нужно подумать, зачем вы это делаете.

Это станет ужасно сложным только с формой человека, добавьте больше, и это раздует большой стиль.

Динамическое построение запросов не особенно сложно, но для этого требуется много кода. Просто подумайте о каждом поле, которое вы хотите добавить в запрос, и о его типе. Что, если собственность в вашем личном деле была их изображением. У вас есть конфигурация формы, является ли основной ключ в записи автоматическим включением, является ли это составным ключом, используете ли вы значения по умолчанию, некоторые поля не равны нулю. Как вы собираетесь возвращать исключения ссылочной целостности...

Сделайте версию «все поют, танцуют» и в основном заново изобретают что-то вроде Access IDE....

Лично у меня был бы объект Person с набором свойств Person, у них было бы имя, значение и логическое значение, чтобы сказать, были ли они изменены.

После того, как у вас есть список измененных свойств и beacseu, вы находитесь в объекте Person, вы знаете, что таблица - это люди, она имеет ключ autoinc bigint, пол является обязательным и по умолчанию равен мужчине...

У тебя есть шанс на бой.

Ваш запрос должен использовать параметры

Таким образом, было бы сказано Вставить лиц (Имя, Фамилия, ПИН-код) Значения (@Имя, @Фамилия, @ПИН-код)

Затем вы просматриваете измененные поля и добавляете параметры с тем же именем, типом и значением.

Как я уже сказал, вы действительно можете отправиться в город с этим, может быть, пришло время переночевать.

person Tony Hopkinson    schedule 16.11.2011

Это должно означать, что некоторые поля в вашей таблице, такие как адрес и пин-код, могут быть пустыми, в этом случае вы можете обойтись без динамического запроса. Просто соберите все входные данные из формы и вставьте их в таблицу. Те поля формы, которые были оставлены пустыми из-за различных потребностей пользователей, следовательно, будут иметь соответствующие поля в вашей таблице пустыми. Так что просто перечислите все необходимые поля в вашей таблице и все возможные входные данные из вашей формы в запросе на вставку.

person Chibuzo    schedule 16.11.2011