可以Long Integer存储信件吗?

时间:2012-11-07 17:38:06

标签: sql ms-access-2007 database-performance

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

[§关于数据 - 提供给我的数据中的连字符始终存在于该位置;这些字母总是A-F]

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

  

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

我从来没有碰到这个,但看起来它认为你的字符串是十六进制数字。

如果你从来没有AF以外的其他字母,那么你可以将它们存储为长片,然后使用Hex()函数转换回来,但这看起来很强大,而且除非你真的不顾一切地想要表现出一些表现,否则我会避免这种情况

答案 2 :(得分:1)

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

十个十六进制数字代表40位数据,因此w3schools页面中描述的Long类型不会,因为它只有32位。您需要一个64位的数据类型,如doublebigint。 (后者可能在Access中不可用。)

但是,如果您实际对数据形式的数据进行任何处理,那只会是真正的好处。否则你只会为每条记录保存几个字节,你需要额外的处理来转换为数字格式。

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