如何从 SQL Server 中检索整数数组?

发布于 2024-10-06 07:18:04 字数 117 浏览 1 评论 0原文

我正在创建一个连接到 SQl Server 2008 数据库的 C++/CLI 应用程序。如何退休存储在 varbinary 字段中的短整数数组。将短整数数组转换为字节数组后,我将它们存储在 varbinary 字段中。

I am creating a C++/CLI application that connects to a SQl Server 2008 database. How can I retireive an array of short integers stored in a varbinary field. I am storing them in a varbinary field after converting the short integer array to byte array.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒解孤独 2024-10-13 07:18:04

不幸的是你必须手动转换它。尝试在 C 中使用 byte[] 并在 sql 中使用 varbinary。

这可能会有所帮助

ALTER FUNCTION [dbo].[binToINT]
(   
    @bin varbinary(max)
)
RETURNS @result table(val int)
AS
BEGIN

    if @bin is null
        return 

    declare @ptr smallint = 0, @size smallint = 4
    while   (@ptr) * @size < LEN(@bin)
    begin

        insert into @result(val)
        values(substring(@bin, (@ptr* @size) + 1, @size))

        set @ptr += 1
    end

    return

END

,排序后

declare @result varbinary(max) = 0x
select  @result = @result + cast(CAST(token as int) as BINARY(4))
from    ...

但对我来说,我将使用 postgre,它是具有整数 [] 数据类型的开源数据库

unfortuantely u have to manually convert it. try use byte[] in C and varbinary in sql.

this might helps

ALTER FUNCTION [dbo].[binToINT]
(   
    @bin varbinary(max)
)
RETURNS @result table(val int)
AS
BEGIN

    if @bin is null
        return 

    declare @ptr smallint = 0, @size smallint = 4
    while   (@ptr) * @size < LEN(@bin)
    begin

        insert into @result(val)
        values(substring(@bin, (@ptr* @size) + 1, @size))

        set @ptr += 1
    end

    return

END

and after sorted

declare @result varbinary(max) = 0x
select  @result = @result + cast(CAST(token as int) as BINARY(4))
from    ...

but for me, i'll use postgre which is open source databse that has integer[] datatype

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文