Я пытаюсь вставить записи в таблицу SQL 2008 R2, где значения вставляются.SQL Вставка нескольких строк из значений нескольких списков
<cftry>
<cfquery name="AddListMembers" datasource="HHSCIntra">
INSERT INTO tbl_MailMembers (DateEntered, EnteredBy, Method,Member,List)
VALUES (
CURRENT_TIMESTAMP
, '#session.UserID#'
, 'A'
, '#session.RecipientDistinguishedName#'
, '#session.DistListDistinguishedName#'
)
</cfquery>
<cfcatch type="Database">
<cfoutput>#cfcatch.message#</cfoutput>
</cfcatch>
</cftry>
Значения, которые изменяются в session.RecipientDistinguishedName
и session.DistListDistinguishedName
, все остальные значения являются постоянными. В основном один раз, когда я мог бы быть
- Добавление 3 членов в списке 1 распределения, или
- Добавление 1 член до 4 списков рассылки, или
- Добавление 3 членов 5 списков рассылки
I «Пробовал несколько комбинаций циклов, но все, что я получаю, это одна запись, записанная в таблицу: первый член в списке и первый список рассылки.
UPDATE:
OK вещи изменились немного, мы только что позволяет пользователям работать в одном списке рассылки в то время. Итак, ниже того, что у меня есть сейчас. (. Пожалуйста, обратите внимание, я ушел из cfqueryparam и некоторые другие детали, так что все будет соответствовать лучше в пост)
<cfloop list="#session.RecipientDistinguishedName#" index="i" delimiters="">
<cfquery name="AddListMembers" datasource="HHSCIntra">
INSERT INTO tbl_MailMembers (DateEntered, EnteredBy, Method, Member, List)
VALUES (
CURRENT_TIMESTAMP
, '#session.UserID#'
, 'A'
, '#i#'
, '#session.DistListDistinguishedName#'
)
</cfquery>
</cfloop>
В коде, где я тянуть сотрудника отличительное имя из AD, я добавил это:
<cfinput type="hidden" name="frmEmpDistinguishedName"
value="#EmployeeAdd.distinguishedName#;">
Двойной двоеточие добавляется в конец выделенного имени, поэтому я могу использовать его в качестве разделителя при запросе этой таблицы. Итак, что заканчивается в столбце Member
, это длинная строка, содержащая все различающееся имя, разделенное точкой с запятой.
Одна вещь, которую я заметил, это первое отличительное имя в колонке, начинающееся как CN=
, но все последующие выдающиеся имена начинаются с ,CN=
. Я играю с запросом этой таблицы, чтобы увидеть, будет ли это проблемой. Любые предложения по лучшим способам сделать это будут оценены.
ЗАВЕРШЕНИЕ ОБНОВЛЕНИЕ :::
я удалил ;
из cfinput
тега, и добавил код ниже перед cfloop в запросе вставки. Теперь я получаю длинную строку из нескольких отличительных имен, разделенных точкой с запятой в столбце Member
.
<cfset session.RecipientDistinguishedName="#Replace(session.RecipientDistinguishedName,'DC=org,','DC=org;','ALL')#">
Во-первых, вам нужно узнать, как использовать '', тогда вам нужно узнать '', а затем обернуть' 'с ним. –
Henry
где ваша попытка вставить несколько записей? –
* Я пробовал несколько комбинаций циклов * Пожалуйста, разместите этот код [в своем вопросе] (http://stackoverflow.com/posts/30471574/edit) (а не как «ответ»). – Leigh