2013-08-13 1 views
0

MS SQL 데이터베이스의 저장된 프로 시저에서 생성 된 XML을 VS2005 응용 프로그램의 Recordset으로 사용하려고합니다. 내가 겪고있는 문제는 xml을 문자열로 읽을 때 문자열 결과가 "System.Byte []"로 나오는 것입니다. 이것을 보면 String에서 Byte()로 데이터 유형을 변경하고 Byte 배열을 사용하려고했습니다. Byte 배열은 내가 받고자하는 데이터와 관련이 없습니다. 내가 알고있는 SQL 생성 XML 파일을 처리 할 수있는 방법이 있는지 궁금하다. 다음은 몇 가지 샘플 코드입니다.XML을 TSQL에서 만든 ADODB.Recordset으로 사용

Dim ADOrs As ADODB.Recordset 
Dim SQLString1 As New System.Text.StringBuilder(180) 
Dim catzzz as String 

SQLString1.Append("exec reports_selectReportMetaData @companyCode = '001'") 

ADOrs = fnReturnRecordset(SQLString1.ToString) 'function executes the query 

Do While Not ADOrs.EOF 
    catzzz = ADOrs("XML_F52E2B61-18A1-11d1-B105-00805F49916B").Value.ToString 
    Debug.WriteLine(catzzz) 
Loop 

:

는 저장 프로 시저의 결과가이 코드와 SQL의 SMS

enter image description here

에서 나는 System.byte [] 내 문자열을 얻을 때 모습입니다 이것은 내가 정말로 이상한 바이트 배열을 얻는 방법이다.

Dim ADOrs As ADODB.Recordset 
Dim SQLString1 As New System.Text.StringBuilder(180) 
Dim catzzz As Byte() 

SQLString1.Append("exec reports_selectReportMetaData @companyCode = '001'") 

ADOrs = fnReturnRecordset(SQLString1.ToString)'function executes the query 

Do While Not ADOrs.EOF 
    catzzz = ADOrs("XML_F52E2B61-18A1-11d1-B105-00805F49916B").Value   
Loop 

The Byte ASCII로 변환 할 때

catX = System.Text.Encoding.Default.GetString(catzzz) 

처음 세 문자를 사용 enter image description here

와 같은 배열이 보이는

enter image description here

그래서 내가 내 주요 문제를 생각

로 올라와 (즉, <rt을해야합니다) SQL로 작성된 XML을 가져 오는 올바른 방법이 누락되었다는 것입니다.

어떤 아이디어도 애원 될 것입니다!

+1

ADO.NET 클래스 대신 이전 ADODB 개체를 사용하는 이유는 무엇입니까? –

+0

그럴만한 이유가 없습니다. 이전 응용 프로그램에 몇 가지 새로운 기능을 추가했습니다. –

답변

0

저장 프로 시저에서 함수로 끝나기 때문에 명령을 실행하는 대신 값을 returend합니다. 이로 인해 System.Byte[] 문제가 해결되었습니다.