2010-02-23 3 views

답변

3

SQL Server 2000은 실제로 XML blob을 처리 할 수있는 기능이 없습니다. 전용 XML 유형도 없으며 VARCHAR (MAX) 데이터 유형의 양식으로 큰 텍스트를 쉽게 지원하지도 않습니다. 둘 다 SQL Server 2005 이상에서 사용할 수 있습니다.

2000 년을 절대적으로 고수하는 경우 XML을 TEXT 열 (또는 NTEXT - 문자 당 2 바이트 - ASCII 형식이 아닌 문자 집합을 지원해야하는 경우 XML에 저장하는 것이 가장 좋습니다. , 히브리어, 아랍어 등).

TEXT 열 데이터 형식은 많은 번거 로움없이 실제로 많은 작업을 할 수 없다는 점에서 그다지 유용하지 않습니다. 실제로 텍스트 데이터를 검색하거나 바꿀 수는 없습니다. 그것은 엉망입니다. 일반적인 문자열 방법은 작동하지 않습니다. 실제로는 "저장하고 잊어 버리는"종류의 얼룩입니다. .....

업데이트 : 의 경우 파일의 내용을 검사해야합니다. (실제로?) 데이터베이스에 저장되면 IMAGE 데이터 형식을 사용할 수도 있습니다. 하여 데이터베이스에서 바이트의 덩어리에서 읽을

private void AddFileToDatabase(string filename) 
{ 
    using(SqlConnection con = new SqlConnection("server=***;database=***;integrated security=SSPI;")) 
    { 
     string insertStmt = "INSERT INTO dbo.YourTableName(DocFilename, DocContent) VALUES(@FileName, @Content)"; 

     using(SqlCommand cmd = new SqlCommand(insertStmt, con)) 
     { 
      cmd.Parameters.AddWithValue("@FileName", filename); 
      cmd.Parameters.Add("@Content", SqlDbType.Image); 

      cmd.Parameters["@Content"].Value = File.ReadAllBytes(filename); 

      con.Open(); 
      int result = cmd.ExecuteNonQuery(); 
      con.Close(); 
     } 
    } 
} 

그리고 기본적으로 같은 일 :

가 SQL 서버에 파일을 저장하려면 같은 것을 할. 또는 이것을 멋진 저장 프로 시저에 패키지 할 수 있습니다. 완전히 당신에게 달려 있습니다.

TEXT/NTEXT을 사용하는 경우 실제 문자열 (예 : Word와 같은 이진 파일을 실제로 사용할 수는 없지만 XML 또는 HTML 또는 기타 형식으로 보고서에서 출력하는 경우 TEXT/NTEXT도 사용할 수 있습니다 (이 경우 cmd.Parameters.Add("@Content", SqlDbType.Text); 만 사용).

+0

SQL Server 2000 DB입니다. 문서를 저장하고 필요에 따라 다시로드하면됩니다. 문서 등을 검색하지 않을 것입니다. –

+0

DataSet의 문자열 표현을 반환하는 dataset.GetXML()이 있습니다. 텍스트 데이터 유형 인 경우 해당 필드를 사용하여 저장할 수 없습니까? –

+0

@Saif : 예, 확실합니다 - 데이터 집합을 나타내는 XML 문자열을 가져 와서 해당 문자열을 SQL Server 2000의 TEXT/NTEXT 필드에 저장할 수 있습니다. –

0

serialize (이진수 xml) 데이터 집합을 저장하고 데이터베이스에 저장할 수도 있습니다.

관련 문제