2010-12-08 3 views
0

Я создаю приложение C++/CLI, которое подключается к базе данных SQl Server 2008. Как я могу отступать массив коротких целых чисел, хранящихся в поле varbinary. Я сохраняю их в поле varbinary после преобразования массива short integer в массив байтов.Как отремонтировать целочисленный массив из SQL Server?

ответ

0

Несчастливо вам нужно его вручную преобразовать. попробуйте использовать байт [] в C и varbinary в sql.

это может помогает

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, который является открытым исходным кодом Databse, который имеет целочисленное [] тип данных

+0

Спасибо. Это было не то, что я искал, но это помогло. – DPD 2010-12-21 07:15:17