问题标签 [user-defined-functions]

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 投票
8 回答
133920 浏览

tsql - TSQL 如何在用户定义的函数中输出 PRINT?

基本上我想PRINT在用户定义的函数中使用语句来帮助我的调试。

但是我收到以下错误;

在函数内的“打印”中无效使用副作用或时间相关的运算符。

这不能做吗?

无论如何帮助我的用户定义函数调试?

0 投票
3 回答
9595 浏览

sql - 帮助!- SQL - IF Else IF 逻辑用于返回 Containstable 选择

我正在尝试在 SQL 的内联表值函数中使用 IF else If 逻辑,并根据该逻辑返回一个包含表。但我遇到了 IF Else IF 块的语法问题。谢谢您的帮助。因为我无法对包含表中的列进行参数化,所以我不得不求助于使用 if else 语句。这是代码。谢谢。

我越来越

消息 156,级别 15,状态 1,过程 FullTextSearch,第 17 行关键字“IF”附近的语法不正确。

0 投票
5 回答
824 浏览

php - 如何清理此 SELECT 查询?

我在具有完全根访问权限的专用服务器(Ubuntu Server 8.10)上运行 PHP 5 和 MySQL 5。我正在清理我继承的一些 LAMP 代码,并且我有大量使用这种构造的 SQL 选择:

忽略这样一个事实,即数据库不应该被构造为首先需要这样的选择,并且需要参数化 $somevalue 字段以堵塞巨大的安全漏洞,我将 WHERE 条件修复为某事的最佳选择是什么不那么冒犯?如果我使用的是 MSSQL 或 Oracle,我会简单地组合一个用户定义的函数,但我对 MySQL 的经验比较有限,而且我以前没有用它构建过 UDF,尽管我很高兴编写 C 代码。

更新:对于所有已经在原始代码中对此感到惊讶的人来说,$somevalue 实际上类似于 $GET['product']——在主题上有一些变化。在这种情况下,选择是通过产品名称从数据库中拉回产品——在去除字符之后,它与之前可以作为 URI 参数传递的内容相匹配。

0 投票
2 回答
10117 浏览

c# - 尽管存在 DataAccessKind.Read,SqlFunction 无法打开上下文连接

我有一个 SqlServer 项目,对表值函数进行了非常简单的测试:-

请注意,连接上的 Open 当前已被注释掉。部署后,我可以在 SQL 中像这样执行:-

一切正常。

现在我取消注释con.open()它失败了: -

在这种情况下不允许数据访问。上下文要么是未使用 DataAccessKind.Read 或 SystemDataAccessKind.Read 标记的函数或方法,要么是从表值函数的 FillRow 方法获取数据的回调,要么是 UDT 验证方法。

我看不出问题出在哪里,TestConn 函数得到了DataAccessKind.Read.

任何人都知道出现此错误的任何其他原因吗?

0 投票
5 回答
371 浏览

sql - 从可能产生多条记录的连接表中获取单条记录

我有一个学生表和一个招生表;一个学生可以有多个注册记录,这些记录可以是活动的,也可以是非活动的。

我想得到一个选择,它有一个学生记录和一个关于该学生是否有活跃注册的指标。

我曾考虑在一个内联 UDF 中执行此操作,该 UDF 使用学生 ID 连接到注册表,但我想知道是否有更好的方法在单个 select 语句中执行此操作。

UDF 调用可能类似于:

替代方案(使用一条 SQL 语句)可能是什么样的?

0 投票
1 回答
627 浏览

excel-2007 - 自动化插件中的用户定义函数行为不同 Excel 2007

我在 C# .NET 中创建了一个自动化插件,并为其提供了一个 shim dll。shim dll 中包含所有用户定义的方法,这些方法调用 .NET 程序集中的适当方法。

我面临的问题与 Excel 2007 有关。

在 Excel 2003 中, 1. 向工作表添加新形状 2. 插入 >> 函数 >> SUM。出现函数参数对话框 3. 单击新插入的形状而不是单元格 注意:没有任何反应,并且不会在参数框中自动输入单元格值

现在在 Excel 2007 中,1. 插入新形状 2. 公式功能区选项卡 >> 插入函数 >> SUM。出现函数参数对话框 3. 单击新插入的形状 请注意,现在会显示一个错误对话框,上面写着“您键入的公式包含错误”

此对话框针对预定义函数 (SUM) 出现。如果我从 SUM 列表中选择我的函数,则不会显示错误对话框,并且函数参数对话框会消失。然后该单元格显示错误智能标签。

是否需要为每个函数放入 SHIM dll 中的内容?像属性或将显示此错误对话框的东西。或者可能是该方法返回的一些特殊值,以告知参数已生成错误。

COM shim 中定义的函数如下:

0 投票
1 回答
398 浏览

linq-to-sql - 为什么在事务范围内调用 SQL Server 2008 中的全文搜索失败?

以下代码:

根据使用全文搜索的表值函数 (tvf_SearchUsers) 选择与查询字符串匹配的用户。此代码片段是在生产中使用时成功运行的更大方法的一部分。但是,当我在具有回滚属性的 MBUnit 测试中调用相同的方法时,搜索无法返回预期结果。如果我删除回滚属性,它可以正常工作。单元测试创​​建虚拟用户等,然后由回滚清理。似乎这些创建的项目没有被表值函数看到,就好像它在事务范围之外一样。有谁知道如何解决这个问题?

更新

如果我在 tvf 中用更简单的查询替换全文搜索功能,则操作按预期进行。所以这个问题与全文搜索有关。我正在使用 SQL Server 2008,因此 afaik SQL Server 应该能够将全文查询保留在事务范围内。

0 投票
2 回答
10216 浏览

sql-server - 无法在 SQL Server 中使用用户定义函数在视图上创建索引

在 SQL Server 2005 中,我尝试在将用于全文索引的索引视图中使用用户定义函数。我已经能够让 UDF 与存储过程和有问题的视图一起使用。但是,当我尝试在视图上创建索引时,出现以下错误...

无法在视图“DevDatabase.dbo.View_PersonSearch”上创建索引,因为视图引用的函数“dbo.GetCurrentImage”执行用户或系统数据访问。

我被这件事难住了。下面是我正在尝试做的一个例子。我错过了什么,或者这甚至可能吗?

用户定义函数

使用索引创建查看

0 投票
2 回答
1132 浏览

sql-server-2005 - 如何强制 dbo 模式名称?

我在 VS 2008 中使用“SQL SERVER PROJECT”在 C# 中创建 UDF 然后我使用 DEPLOY 命令将 DLL 发布到 MS SQL Server 2005

除了所有创建的 UDF 都归我所有(作为用户)之外,所有工作都很好但我想保留 dbo 模式(例如:dbo.UDF_TEST - 不是 jonny.UDF_TEST)

知道如何管理 thar 吗?

0 投票
7 回答
1073 浏览

coldfusion - 您如何决定使用什么:UDF 或自定义标签?

WACK说:

如果你觉得你需要有很多争论,可以考虑创建一个 CT。

...

CT 比自定义函数更强大、更灵活。尝试将 UDF 用于简单的事情......将 CT 和组件用于更多涉及的过程,尤其是那些您可以将其视为离散动作而不是简单的“按摩”的过程

好的,但是您通常如何做出决定?了解现实生活中的实践和例子很有趣。

对我来说,当一个函数有许多不需要的参数时就会发生这种情况,所以我必须称它们为 myFunc(arg1="foo", arg2="bar")。有时<cfmodule>语法只是变得更具可读性,但并非总是如此。

其他原因是我不喜欢长的(比如说,超过 2 个代码屏幕)UDF。

但是所有这些想法都是非常主观的,这就是为什么我有兴趣阅读其他人的意见。也许有更好的规则?

提前致谢。