【问题标题】:Hesitation about blank fields in access database对access数据库中空白字段的犹豫
【发布时间】:2014-03-24 09:42:37
【问题描述】:

我正在尝试从 Microsoft Access 的 *.accdb 格式的数据库中获取一些值。我正在编写一个 Java 程序,它使用正确的 jdbc 驱动程序从 Access 数据库中获取值。

查询是这样的:

SELECT * FROM table_name

我能够检索我需要的所有值,对此我没有任何问题。当我看到文件上的一些(显然,但我很确定它们是)空字段,当我将结果转换为字符串时,将 TEXT 数据类型列检索为“null”或“”(空字符串)时,问题就出现了在 Java 中。

我分析了数据库以查找每列的默认值等。但我发现没有逻辑理由为空单元格检索 null 或“”。根据办公室支持页面:

当字段不包含值时,它包含 Null 值,或者,对于文本、备注或超链接字段,包含 Null 值或零长度字符串

然后我看到这两种类型都可以返回空字段,但我仍然无法理解条件

【问题讨论】:

  • 一般来说,我会在我的 SELECT 和 MSSQL 服务器中写入每一列,如果 db 条目是使用例如Insert Into 'table' (1) Values ( "")
  • 所以我猜当我从一个空白字段中得到一个 null 或 en 空字符串时,是因为它取决于人如何输入值?
  • 不完全...这取决于写入数据库的软件是如何设计的。如果它检查值是否为 "" 并且不将 Null 更改为 "" 您将得到 Null
  • 好的,所以你的答案是,取决于软件写入数据库的工作方式以及它如何处理和写入空值,然后将返回一种或另一种类型。可以吗?
  • 是的......我写了一篇关于如何模拟它的帖子。 (在 MSSQL 中为我工作)

标签: java ms-access ms-access-2010


【解决方案1】:

我发现在 MSSQL 数据库中,这取决于输入值的方式。

如果你有这样的表(假设 als cols 是字符串):

tbl1
----------------------
| col1 | col2 | col3 |
----------------------

现在你像这样插入数据:

INSERT INTO tbl1 (col1)
VALUES ('Test')

您可能会得到:

col1: Test
col2: Null
Col3: Null

但如果你插入这样的数据(例如,你不检查 col2 中的值是否为“”)

INSERT INTO tbl1 (col1, col2, col3)
VALUES ('Test', '', '')

你会得到:

col1: Test
col2: ""
Col3: ""

这主要是通过插入用户填写的数据而不是整个数据来实现的。

【讨论】:

  • 好的,一旦我从办公室支持人员那里得到一点答案,我就会把它写成正确答案。如果这是正确的,我会标记它是正确的,因为你应得的!
  • 如果办公室支持有其他说明,请随时纠正我。谢谢
  • 干得好,我添加了解释,但从技术上讲(用查询术语来说)它几乎就是你所说的。恭喜。
猜你喜欢
  • 2023-03-15
  • 2010-11-19
  • 2010-10-17
  • 1970-01-01
  • 2012-04-16
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多