3

我在 Access 中运行了“分析性能”功能,它有一个提高性能的“想法”;Access 说我应该将看起来像这样的字母数字混合的项目12BB1-DF740text数据类型转换为long integer(来自想法的特定名称)。Access是否正确,这将提高性能是次要的长整数是否可以存储字母。

[§ 关于数据 - 提供给我的数据中的连字符始终出现在该位置;字母总是AF]

据我所知,w3schools表示Long只会存储数字

Long- 允许 -2,147,483,648 和 2,147,483,647 之间的整数

  • 我在混淆数据类型吗?(此外,当我拉起设计视图时,它仅number作为数据类型提供;没有longor long integer
  • 可以Long Integer存信吗?
  • 如果我的列已经填充,并且我转换了数据类型,我会丢失数据吗?
4

3 回答 3

3

您可以通过将它们拆分为 2 个 Long Integer 列来存储这些值。然后,当您需要原始文本表单时,Hex()用短划线连接它们的值。

? Hex(76721) & "-" & Hex(915264)
12BB1-DF740

但是我不明白为什么值得这样做。有时,性能分析器的建议对我来说没有意义;就是这样。

于 2012-11-07T19:47:00.000 回答
2

我从来没有遇到过这种情况,但看起来它认为你的字符串是十六进制数字。

如果除了 AF 之外你从来没有其他字母,那么你可以将它们存储为 long,然后使用 Hex() 函数转换回来,但这看起来很笨拙,除非你真的很想获得一些性能,否则我会避免这种情况。

于 2012-11-07T17:45:09.540 回答
1

如果它实际上是十六进制数据,并且它始终具有相同的格式,以便可以在同一位置添加破折号,那么可以存储数据数字,并在需要时将其转换为十六进制表示法。

十个十六进制数字代表 40 位数据,因此Longw3schools 页面中描述的类型不会这样做,因为它只有 32 位。您需要一个 64 位的数据类型,例如 a doubleor bigint。(后一种可能在 Access 中不可用。)

但是,只有在您实际对数字形式的数据进行任何处理时,这才是真正的收获。否则,每条记录只能保存几个字节,并且需要额外的处理来转换为数字格式。

如果您的表已经填充,您将必须读出值、转换它们,然后以数字形式将它们存储回。

于 2012-11-07T17:57:21.520 回答