问题标签 [null]
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.
sql - 字段值必须是唯一的,除非它为 NULL
我正在使用 SQL Server 2005。
我有一个必须包含唯一值或 NULL 值的字段。我认为我应该使用 aCHECK CONSTRAINT
或 a来执行此操作TRIGGER for INSERT, UPDATE
。
在这里使用约束而不是触发器有优势吗(反之亦然)?这样的约束/触发器可能是什么样的?
还是我没有考虑过其他更合适的选择?
sql - T-SQL 存储过程 NULL 输入值导致 select 语句失败
下面是一个存储过程,用于根据单独检查所有字段来检查数据库中是否存在重复条目(不要问我为什么要这样做,它只是必须这样)。
这听起来非常简单,但 SP 失败了。问题是传递给 SP 的某些参数可能具有 null 值,因此 sql 应该读取“is null”而不是“= null”。我用 exec() 和 sp_executesql 尝试了 isnull()、case 语句、coalesce() 和动态 sql,但未能实现其中任何一个。这是代码...
linq - LINQ - 更新空整数数据字段
当我设置时,我有一个数据类型为int?
price 的字段并允许 null
和更新,它不会被保存,也不会抛出任何异常,当我改变值#null时,就可以了。我想将其设置为空。
c++ - 如何使用 memset 将指向内存的指针设置为 NULL?
我有一个结构
我想设置 to 的地址,p_my_t
到目前为止NULL
,这就是我尝试这样做的方式:
不过,这对我来说并不合适。这样做的正确方法是什么?
修改问题 - 提出一个更复杂的问题:
这是我正在尝试做的事情:
- 两个进程,A 和 B
- A、B中的malloc p_my_t有N个线程,可以访问
- 开始在 A 中删除,但我不能简单地释放它,因为 B 中的线程可能仍在使用它。
- 所以我调用了一个函数,将 p_my_t 的地址传递给 B 以在 B 中将其地址设置为 NULL,这样 B 中的其他线程就不能再使用了
- 从 B 回调后,我在 A 中释放内存
注意:没有标准的方法可以通过进程之间的共享内存来管理内存分配。您将不得不对正在发生的事情做一些相当仔细的思考。
.net - null 在 .NET 中如何表示
我正在与一位同事交谈,并且出现了 null 的主题。他告诉我,在幕后的 .NET 中,这只是一个非常小的数字。我一直认为该对象只是没有指向堆上任何内存的指针,但我不确定哪种方式。
所以我希望社区可以为我们清理它;P
sqlite - SQLite3:在 C++ 中插入带有 NULL 字符的 BLOB
我正在开发一个 C++ API,它使用定制设计的插件来使用它们的 API 和特定的 SQL 语法与不同的数据库引擎进行交互。
目前,我正在尝试找到一种插入 BLOB 的方法,但由于NULL
是 C/C++ 中的终止字符,因此在构造INSERT INTO查询字符串时 BLOB 会被截断。到目前为止,我已经与
我希望,如果可以在 SQLite3 交互式控制台中执行此操作,那么应该可以使用正确转义的NULL
字符构造查询字符串。也许有一种方法可以使用 SQLite SQL 语法也支持的标准 SQL 来做到这一点?
肯定有人以前遇到过同样的情况。我用谷歌搜索并找到了一些答案,但使用的是其他编程语言(Python)。
预先感谢您的反馈。
database - 处理用户输入时的 NULL vs Empty
是的,另一个 NULL 与空字符串的问题。
我同意 NULL 表示未设置,而空字符串表示“空值”的想法。这是我的问题:如果列的默认值为 NULL,我如何允许用户输入该 NULL。
假设在系统上创建了一个新用户。有一个名字和姓氏字段;姓是必需的,而名字不是。创建用户时,此人将看到 2 个文本输入,一个用于第一个,一个用于最后一个。此人选择仅输入姓氏。名字在技术上没有设置。在插入期间,我检查每个字段的长度,将所有为空的字段设置为 NULL。
查看数据库时,我看到没有设置名字。立即想到的问题是,也许他们从未见过名字字段(即,由于错误)。但这种情况并非如此; 如果空白,他们就离开了。
所以,我的问题是,当接收用户输入时,您如何决定何时将字段设置为 NULL 或空字符串?你怎么知道用户希望在没有检测到焦点的情况下不设置该字段,或者他们是否删除了一个值......或......或......?
java - 如何显示方法是否可能返回 null
在发布了这个问题并阅读了这个问题之后,我意识到知道一个方法是否应该返回 null 或者这是否被认为是错误条件并且应该抛出异常是非常重要的。还有一个很好的讨论何时返回 'null' 或抛出异常。
我正在编写一个方法,并且我已经知道是否要返回 null 或抛出异常,表达我的决定的最佳方式是什么,换句话说,记录我的合同?
我能想到的一些方法:
- 把它写在规格/文档中(有人会读吗?)
- 使其成为方法名称的一部分(正如我在这里建议的那样)
- 假设每个抛出异常的方法都不会返回 null,而每个“不”抛出的方法都可能返回 null。
我主要是在谈论 java,但它也可能适用于其他语言:为什么有一种正式的方式来表达是否会抛出异常(throws
关键字),但没有正式的方式来表达是否可能返回 null?
为什么没有这样的东西:
总结与结论
合同的表达方式有很多种:
- 如果您的 IDE 支持它(如 IntelliJ),最好使用注释,
@NotNull
因为它对程序员可见并且可用于自动编译时检查。Eclipse有一个插件可以添加对这些的支持,但它对我不起作用。 - 如果这些不是一个选项,请使用类似
Option<T>
or的自定义类型NotNull<T>
,这可以增加清晰度并至少进行运行时检查。 - 无论如何,在 JavaDoc 中记录合同永远不会有害,有时甚至会有所帮助。
- 使用方法名称来记录返回值的可空性不是由我以外的任何人提出的,尽管它可能非常冗长且并不总是有用,但我仍然相信有时它也有其优点。
c# - C#我可以从另一个类中取消一个对象吗
我有一个在一个类中生成的对象
我从客户端类调用此函数,然后有时需要通过创建类通过我的应用程序将其取消。
我可以执行以下操作吗
我曾尝试过 objectToDestroy = null,但认为它不会起作用(而且它没有)
c# - 检查null,哪个更好?“空==”或“==空”
欺骗:空差
一生前,我看到一篇文章解释了以下不相等(在 c# 中):
该文章解释说,后者是首选,因为它导致更准确的测试。从那以后我就一直这样编码。现在我明白了很多,我一直在寻找这篇文章或其他类似的文章,看看确切的发现是什么,但我找不到关于这个主题的任何东西。
想法?有区别吗?第一眼会说不。但是谁知道在 IL 和 C# 编译的内部会发生什么。