问题标签 [cfstoredproc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1600 浏览

sql - 从 cfstoredproc 访问 RAISEERROR 消息

我有一个 SQL 存储过程,在某些情况下,如果失败,它会返回 -1 的结果,但也会通过 RAISERROR 命令返回一条消息,例如:

我正在使用 cfstoredproc 通过coldfusion 访问它,例如:

但是返回的结构只包含一个 ExecutionTime 和 StatusCode 键。有什么方法可以访问已返回的错误消息。例如向用户显示。

谢谢,

汤姆

ps 我会用“cfstoredproc”标记,但我不能创建新标记。

0 投票
2 回答
452 浏览

variables - 什么是绑定变量?

有一个 cffunction(在 cfc 文档中)对用户进行身份验证。它引用了一个存储过程并有一个“out”类型的cfprocparam。在 Adob​​e CFML 参考中,它说这意味着“该参数仅用于从数据库系统接收数据。将参数作为绑定变量传递。”

什么是绑定变量?

0 投票
1 回答
3283 浏览

oracle - 使用 cfprocparam 将数组或列表放入 Oracle

我有一个要通过存储过程插入到表中的值列表。我想我会将一个数组传递给 oracle 并循环遍历该数组,但我不知道如何将一个数组传递给 Oracle。我会传递一个列表,但我看不到如何使用 PL/SQL 将其转换为数组(我对 PL/SQL 还很陌生)。我是以错误的方式接近这个吗?

使用 Oracle 9i 和 CF8。

编辑

也许我在想这个错误的方式?我确定我在这里没有做任何新的事情......我想我会将列表转换为关联数组然后循环数组,因为 Oracle 似乎不适用于列表(在我有限的观察中)。

我正在尝试添加产品,然后为管理团队添加记录。
-- 产品表

productName = 'foo' productDescription = 'bar' ... ...等

-- managementteam 表只有产品的 id 和从下拉列表中选择的用户的 id。

用户 ID 通过类似“1,3,6,20”的列表传入

我应该如何将记录添加到管理团队表中?


这是我代码明智的地方

理论上,我将列表“1,2,3,4”传递给inserts.addProduct。
inserts.addProduct 应该调用 tools.listToArray 并返回一个数组。
inserts.addProduct 重新创建一个带有 * delim 的列表作为测试。
创建或替换包工具为

我目前在 localArray array_type 上收到错误“PLS-00382:表达式类型错误”:= tools.listToArray(inList);


最终工作代码(非常感谢!)

-- 创建sql类型集合

0 投票
1 回答
4472 浏览

oracle - 没有解析语句和错误的参数数量或类型 - cfstoredproc

我有一个 Oracle 程序 - editBacklog,我通过 cfstoredproc 从 CFM 页面调用它。在对过程进行了几次更改后,我开始收到ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'EDITBACKLOG'。我以前得到过这个,发现如果我更改了程序的名称,它会再次开始工作。我将名称更改为 editBacklog2,它按预期工作。我将名称改回了 editBacklog 并得到了同样的错误。我再次将名称改回 editBacklog2 并开始收到ORA-01003: no statement parsed。除了名称之外,此时没有任何变化。我再次将名称更改为 editBacklog3,它按预期工作。

截至目前
editBacklog = ORA-06550
editBacklog2 = ORA-01003
editBacklog3 = 工作(有点)

当我试图修复 ORA-01821:日期格式无法识别错误时,整个事情就开始了。我担心当我开始改变事情时,我会开始出现上述相同的蹩脚行为。

Oracle 或 CF 都在惹我生气,因此我最终会不喜欢其中的一个。

我认为这可能是 cfstoredproc 缓存元数据或其他东西,但谷歌、livedocs 或 OTN 对我的情况都没有太多要说的。

我不是 SA 或 DBA。

有人有想法么?

0 投票
2 回答
538 浏览

caching - 缓存结果

有没有办法缓存<cfstoredproc>标签的结果?该<cfquery>标签使cachedwithin属性变得容易,但似乎没有任何东西<cfstoredproc>

我是否遗漏了一些简单的东西,或者只是 ColdFusion 中缺少此功能?

0 投票
1 回答
1493 浏览

excel - 我可以向 CFGRID 添加一个按钮,让用户将网格导出到 XLSX 文件吗?如何?

我是一名 Coldfusion 开发人员,正在开发一个报告应用程序以显示来自 CFSTOREDPROC 进程的信息。我已经能够从我的查询中获取数据以在 CFGRID 中正确显示,而且我对数据的显示非常满意。网格节省了大量时间,因为它避免了使用 CFOUTPUT 标记和为数百个报告设置 HTML 格式的数据。

我想做的就是在数据网格控件的某处添加一个简单的磁盘图标,该图标将保存数据网格的内容并将其导出到最终用户可以在电子表格程序中操作的 XLSX(2010) 文件中。这很重要,因为数据需要在一年中的某些时间保存“快照”。

尝试过的解决方案:我研究了报告选项页面中的链接,该链接将触发到 report_xls.cfm 页面,但设计一个第二次捕获所有报告选项的页面似乎很愚蠢,并且会向网站添加数千个 CFM。

由于各种原因,CFSPREADSHEET 似乎不起作用。一是服务器似乎一直在用这个标签中的“写”功能与我抗争。另一个是我不知道如何使 javascript 为这个按钮工作以获得我想要的输出。

我还考虑将其作为一个 Javascript 按钮来执行,该按钮会根据输入的数据触发。虽然如果我使用 CFOUTPUT 块,来自 CFSTOREDPROC 的数据将正确显示,但 CFGRID 似乎很难处理除 HTML 之外的所有输出样式。这给这些解决方案带来了一些困难,因为应用程序不会输出一个整洁的 HTML 表格,而是发送一个 javascript 页面部分。

0 投票
1 回答
373 浏览

sql-server - 在 SQL 存储过程中定位 SELECT 语句并在 ColdFusion 中定位相应的查询

在 ColdFusion 中,我使用 3 个输入和 6 个输出调用了以下 cfstoredproc。

在存储过程中si_updateProject,如何识别为结果集列出的 6 个结果集查询?存储过程有几个语句(选择、更新、删除等)。

0 投票
3 回答
1233 浏览

sql-server-2008 - Coldfusion CFSTOREDPROC 不返回表

我正在使用 Coldfusion 9 和 SQL Server 2008。我正在尝试学习这些平台并真正学习如何有效地利用这两个平台来生成报告解决方案。我在存储过程或存储过程方面遇到了一些巨大的挑战。我想要的只是一个非常简单的答案,让我的存储过程达到我可以在 CFML 中利用它们并将数据提供给需要它的人的程度。

我在网上做了一些研究,似乎 SQL Server 2008 利用了放置在 RAM (@) 中或为本地用户 (#) 写入磁盘的临时表。我的问题是我似乎无法让生成的临时表从进程调用中将数据返回给 ColdFusion,尽管当我运行添加到 SQL Server 中的临时表中的 SQL 查询部分时,它的工作原理类似于魅力。我要做的就是将一个简单的表返回给 ColdFusion,并确保我以最有效的方式对其进行编码。

我试过: - 使用 Return 语句,但这似乎会产生 RAM 表 (@) 的语法错误。- 使用持久临时表 (#) - 尽管各种在线论坛似乎认为使用此功能,但应用程序会因此而受到很大的性能影响。(每个人都是批评家。)

我的目标是: - 尽可能多地学习这个过程,尽可能多地重复使用它 - 学习正确的方法来做到这一点,以便查询尽可能好地执行。- 了解在什么情况下我在 SPROCS 中使用 (@) 和 (#) 临时表以及为什么。一些人认为持久临时表 (#) 更好,因为它可以为编译期间触发的其他存储过程释放内存,而另一些人认为让服务器去硬盘写入数据更慢。- 了解为什么下面的语法不起作用

目前我的 CFML 代码如下所示:

我的 SQL Server 代码如下所示:

0 投票
2 回答
681 浏览

tsql - cfstoredproc 和 cfquery 的不同结果

当我通过执行存储cfstoredproc过程时,我得到的结果与通过调用存储过程不同cfquery。我将相同的确切参数值传递给每个调用。而且,当我在 SQL Studio 中运行存储过程时,我得到了正确的结果(与 cfquery 相同)。

这是cfstoredproc电话

这是cfquery电话

结果完全不同。它甚至不接近。我已经为此困扰了几个小时,但我无法弄清楚为什么它正在做它正在做的事情。

更新

存储的过程很大(也是我继承的),所以我不打算在这里全部粘贴:http: //pastebin.com/EtufPWXf

0 投票
2 回答
1199 浏览

coldfusion - CFStoredProc 超时

我有一个非常基本的应用程序,它将数据插入存储过程,然后返回一个记录集。我一直在经历我认为的“超时”。然而,我现在不再相信这就是真正发生的事情。原因是 DBA 和我观察了 sql server 的聚光灯,以查看存储过程何时完成处理。一旦该过程完成处理并返回一个记录集,ColdFusion 页面就会返回一个“超时”错误。每当程序花费一分钟以上时,我发现这是一致的。为了证明这一点,我创建了一个存储过程,仅此而已:

如果我运行它 59 秒,我会在 ColdFusion 中得到一个结果。如果我将其更改为一分钟:

我收到cfstoredproc超时错误。我尝试在同一服务器、不同数据库/数据源上的不同 ColdFusion 实例中运行它。现在,奇怪的是,我还有其他运行时间超过一分钟并返回结果的程序。我什至在我的桌面上使用 ColdFusion 10 进行了本地尝试,并得到了相同的结果。在这一点上,我没有地方可以看,所以我正在尝试其他事情。我还增加了数据源连接的超时时间,但这并没有帮助。我什至尝试了带有超时属性的 ColdFusion 10,但也没有运气。一致的是查询完成时显示超时错误。

另外,我尝试添加 WAITFORcfquery并发生相同的结果。它在设置为 59 秒时有效,但在更改为一分钟时超时。我可以更改sql以选择top 1,结果没有区别。