2010-12-08 6 views
0

私は、SQl Server 2008データベースに接続するC++/CLIアプリケーションを作成しています。 varbinaryフィールドに格納されている短い整数の配列をどのように退避させることができますか?私は短い整数配列をバイト配列に変換した後にvarbinaryフィールドに格納しています。SQL Serverから整数配列をリトリーブする方法は?

答えて

0

残念ながら、手動で変換する必要があります。 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 ... 

後に役立ちますが、私のために、私は、整数[]データ型

+0

感謝を持っているオープンソースのdatabseあるpostgreを使用します。それはまさに私が探していたものではありませんでしたが、それは助けになりました。 – DPD

関連する問題