Динамическое создание запросов - PullRequest
0 голосов
/ 16 ноября 2011

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

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

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

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

Надеюсь, моя проблема ясна. Может ли кто-нибудь помочь ???????????? *

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

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

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

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

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

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

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

У вас есть шанс на победу.

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

Таким образом, можно сказать, вставить значения Persons (FirstName, LastName, PIN) (@ FirstName, @ LastName, @ PIN)

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

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

0 голосов
/ 16 ноября 2011

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

...