【发布时间】:2015-08-08 21:30:35
【问题描述】:
我正在尝试将记录插入到 SQL 2008 R2 表中,其中插入的值会有所不同。
<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 个分发列表中
我尝试了许多循环组合,但我得到的只是一条写入表的记录:列表中的第一个成员和第一个分发列表。
更新:
好吧,事情发生了一些变化,我们一次只允许用户处理一个分发列表。所以低于我现在所拥有的。 (请注意,我省略了 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')#">
【问题讨论】:
-
首先,你需要学习如何使用
<cfqueryparam>,然后你需要学习<cfloop>,然后用它包裹<cfquery>。 -
您尝试在哪里插入多条记录?
-
我尝试了多种循环组合请发布该代码in your question(而不是作为“答案”)。
-
抱歉,Leigh,我在上面有代码,但我删除了它,因为我们一次只允许用户处理一个分发列表。我已经让插入查询以这种方式工作,但是它将所有成员 distinctNames 放在 Member 列中的一个长字符串中,而不是为每个成员 DistinguishedName 放置一个新行。明天我会再做一些工作,然后发布我所拥有的。
-
(编辑)@toleolu - 好的,但我的意思是我们需要查看导致问题的实际代码。而不是“描述”代码,只需发布它;-) 但是,我看到你现在这样做了。 它将所有成员 distinctNames 放在一个长字符串中 正如您所猜测的(在已删除的答案中),您可能在循环中使用了错误的列表分隔符。请使用
DistListDistinguishedName值和所需结果的示例更新您的问题。
标签: sql sql-server coldfusion