Coldfusion:无法从查询结果集中引用 var
使用 cfscript,尝试设置新插入问题的 ID,以便我可以在答案插入中使用它来构建关系。我已经在 cfscript 之外这样做了一百万次。 setName 似乎是调用来创建查询名称的正确方法。
我收到错误:qryQuestion 中不存在“theQuestionID”
i = 1;
while ( structKeyExists( form, "question" & i ) )
{
q = new Query();
q.setDatasource("kSurvey");
q.setName("qryQuestion");
q.setSQL("
set nocount on
insert into question (question)
values('#form["question#i#"]#')
select @@IDENTITY AS theQuestionID
set NOCOUNT off
");
q.execute();
writeOutput("Question"&i&"<br>");
j = 1;
while ( structKeyExists( form, "question" & i & "_answer" & j) ) {
q = new Query();
q.setDatasource("kSurvey");
q.setSQL("
insert into answer (answer,questionid)
values('#form["question#i#_answer#j#"]#',#qryQuestion.theQuestionID#)
");
q.execute();
writeOutput("Answer"&j&"<br>");
j++;
}
i++;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一种更好的方法可以完成此任务,而无需选择@@identity(这本身并不是从sql server获取它的最佳方法,使用scope_identity是在sql server中执行此操作的最佳实践方法。 http://msdn.microsoft.com/en-us/library/ms190315.aspx
幸运的是,ColdFusion 使这变得更加容易:
Theres a better way to accomplish this without having to select @@identity (which in itself isn't the best way to get it from sql server, using scope_identity is the best practice way to do this in sql server. http://msdn.microsoft.com/en-us/library/ms190315.aspx
Fortunately ColdFusion makes this even easier: