2010-05-12 2 views
1

값을 인쇄하고 SELECT 문을 실행하는 대규모 감사 저장 프로 시저가 있습니다. SQL Management Studio에서 실행할 때 "결과를 텍스트로 표시"를 선택하면 모든 SQL 결과와 인쇄 문이 한 곳에서 표시됩니다.C#에서 클라이언트의 텍스트 파일에 SQL 출력을 기록하는 방법

이제는 C# 코드가 프로세스 끝 부분에서이 감사 절차를 호출하고 기본적으로 "결과 텍스트"창에있는 모든 데이터를 .txt 파일로 저장해야합니다.

어떻게이 작업을 수행 할 수 있습니까?

답변

2

PRINT 출력은 얻을 수 있지만 결과 세트를 얻는 것과 같은 방식은 아닙니다. 출력 결과가 PRINT 및 결과 집합 데이터의 특정 시퀀스를 가정하면 실제로는 불가능합니다.

당신은 콜백/이벤트 핸들러를 통해 인쇄 출력을 얻을 수 있습니다 : 당신이 그도록 SqlConnection에 대해 뭔가를 실행할 때, 각각의 라인이 콜백을 호출합니다

void cb_Msg(object sender, SqlInfoMessageEventArgs e) 
{ 
    // e.Message has a line of PRINT output 
} 

...

SqlConnection c ... 
c.InfoMessage += new SqlInfoMessageEventHandler(cb_Msg); 

인쇄 된 출력.

1

출력 매개 변수를 sp에 추가하고 텍스트 출력을 넣는 것이 좋습니다. 그런 다음 코드에서 sp를 호출하면 결과 세트와 텍스트가 별도로 표시되고 원하는 경우 표시 할 수 있습니다.

관련 문제