首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Paradox如何管理空值和空值?

Paradox如何管理空值和空值?
EN

Stack Overflow用户
提问于 2012-04-19 12:30:53
回答 1查看 2.8K关注 0票数 2

我通过(BDE)使用Paradox表。

我无法理解空字符串值在string字段中的处理方式(Paradox数据类型为"A")。

我的具体问题是如何确定字段值是空字符串还是空字符串。在数据库桌面工具中,它们似乎都是空字符串。

我需要这样做,因为我正在将数据(使用数据库桌面并以编程方式)迁移到Firebird,而似乎是空字符串的字段值都作为空值复制到Firebird .即使是属于索引!的字段,我如何区分真正的null和空字符串?这取决于悖论还是BDE?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-08 04:40:12

空为空,认为是有害的

正如您所知道的,现代数据库实现包括" NULL“的概念,它是一个永远不匹配任何其他值的值,甚至是另一个NULL。

BDE及其祖先Paradox engine和Paradox for DOS不包括NULL的概念。BDE表中的任何数据类型都不允许像NULL这样的排除值。

BDE确实包含了空白的概念,但是对于某些类型来说,这只是一个特殊的带内值。空白匹配空白,没有其他。在数字字段中,空白与0是可区分的,但在alpha字段中,空白与零长度字符串相同。

显然,在过去的一段时间里,有人负责创建一个实用程序,以便将BDE表导入到SQL数据库中,但他并没有完全做到这一点。如果没有NULLs,他可能无法理解数据库,因此他猜测空白与NULL相同。从那以后,其他人都跟着他走了。

将BDE空白转换为SQL是错误的。这样做可以改变数据库的体系结构,并破坏任何相关应用程序的体系结构。从BDE表导入的数据不应包含NULL。

要么编写自己的导入过程,要么使用内置导入,然后仔细地对导入的数据进行后处理,将所有NULL转换为其他值。

空alpha值必须转换为零长度字符或VARCHAR值.

空白数字值必须转换为与其自身匹配的选定带内标志值。您可能必须保留一个特殊的值来表示BDE空白,除非可以使NaN或某些这样的值工作。在许多情况下,根据应用程序架构的不同,您将能够将BDE空白转换为SQL 0。

当然,如果您的SQL实现允许一个与自身匹配并与NULL相区别的空白数值,那么您的问题就会减少,因为您的数据库至少和BDE一样有能力。不过,您可能仍然不能使用内置的导入实用程序。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10228123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档