1

我正在尝试从注册表中检索一个值并存储它的 INT 值。注册表项是 DWORD 并且是十六进制格式,但是当使用 xp_regread 检索值时,它会返回十六进制值,我需要十进制......有帮助吗?

注册键:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ShortCuts\General]
"Appointment Interval"=dword:0000000f

上面key的十进制值应该是15

用于返回/存储值的代码:

    DECLARE @Interval INT

DECLARE @temp_table TABLE (Value nvarchar(500), Data nvarchar(500))
INSERT INTO @temp_table EXEC master.sys.xp_regread 'HKEY_LOCAL_MACHINE', 'SOFTWARE\Wow6432Node\Shortcuts\General', 'Appointment Interval'
SELECT @Interval = Data FROM @temp_table

返回变量@Interval 当前返回 5

4

1 回答 1

1

您可以先将 @temp_table 中的 Data 列声明为 VARBINARY(8),因为这将表示十六进制值。接下来,将 Data 字段分配给 @Interval 变量时,将其转换为 INT,如下所示:

转换(INT,数据)

希望这可以帮助。

于 2013-08-14T08:16:53.057 回答