2011-02-03 4 views
2

varchar & VARBINARY(MAX) 값을 테이블에 삽입하는 저장 프로 시저가 있습니다. varbinary(max) 필드에 C# byte[]을 전달합니다. 나는 또한 varbinary의 최대 한도를 만족하는 크기가 byte[] 인 80142임을 확인합니다. 저장 프로시 저는 오류없이 실행됩니다. 그러나 해당 테이블을 쿼리하려고하면 varbinary 데이터 형식의 빈 값이 나타납니다.SQL 서버 VARBINARY (MAX)

SQL 특검팀

ALTER PROCEDURE [dbo].[Test] 
      -- Add the parameters for the stored procedure here 
      @PNumber varchar(50) 
      ,@Byte varbinary(max) 
     AS 
     BEGIN 
      SET NOCOUNT ON; 

      -- Insert statements for procedure here 
      INSERT INTO [Test].[dbo].[Data] 
        ([PNumber] 
        ,[PByte]) 
      VALUES 
        (@PNumber 
        ,@Byte) 
     END 

C# 코드

byte[] theData = doc.GetData(); 

DAL_DataTableAdapters.QueriesTableAdapter qta = new DAL_DataTableAdapters.QueriesTableAdapter(); 

qta.Test("test", theData); 

테이블 구조 :

CREATE TABLE [dbo].[Data] 
(
    [ID] [int] IDENTITY(1,1) NOT NULL, 
    [PNumber] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, 
    [PByte] [varbinary](max) NULL 
) ON [PRIMARY] 
+0

'삽입'을 수행하는 데 사용하는 코드는 무엇입니까? (저장 프로 시저 정의와 'C#'호출 모두) 또한 "빈 값"이 "null"또는 "0x"이면 무엇을 의미합니까? –

+0

내가 추가 한 코드를 참조하십시오. 그냥 pbytes 열에 빈 줄이 표시됩니다. – Pinu

+0

데이터 테이블에 대한 CREATE 스크립트를 추가하십시오. – Lucero

답변

0

어떻게 데이터가 비어 있는지 확인합니까? 나는 SQL Server Management Studio가 값이있을 때조차도 너무 길다는 것을 확신하지 못한다.

+0

SSMS는 반환 된 데이터를 자르지 만 표시하지 않습니다. –

+0

지금 SSMS에 액세스 할 수 없어서 확인할 수 없습니다. 사실 XML 데이터의 경우 XML 데이터가 너무 길면 공백으로 표시됩니다. – erikkallen

관련 문제