2011-03-07 5 views
1

SQL DMO를 기반으로하는 코드 생성기가 이미 있으며 SQL Server 2008 데이터베이스의 저장 프로 시저에 대한 C# 함수를 작성합니다. 그러나 Currenly 코드 생성기는 입력 및 출력 매개 변수가있는 저장 프로 시저 만 처리 할 수 ​​있습니다. 여러 레코드를 반환하는 저장 프로 시저의 경우 코드 생성기는 출력 레코드를 나타내는 행이있는 데이터 테이블을 반환합니다.SQL DMO 기반 코드 생성기

저장 프로 시저의 출력이 select * from Member where MemberID=1 인 경우 저장 프로 시저에서 반환 할 필드를 결정하기 위해 SQL DMO를 사용하는 방법이 있습니까?

감사

답변

1
내 생각 엔 내가 늘어나는만큼 (DMO가 SQL Server에 저장된 메타 정보에 의존하기 때문에 당신이, DMO에서이 작업을 수행 할 수 있고, SP의 결과 세트 설명을 그런 식으로 저장되지 않는 것입니다

알고있다).

그러나 할 수있는 일은 생성기가 transaction 내부의 저장 프로 시저를 실행하고 그 결과로 나온 SqlDataReader을 분석하는 것입니다. 결과 클래스를 구성하려면 GetName(), GetFieldType() 및 GetSchemaTable() 메서드를 살펴보십시오.

실행 후 트랜잭션이 롤백됩니다 (SP가 데이터베이스를 변경하는 경우).

발전기를 SMO로 업그레이드하는 것도 고려해 볼 수 있습니다 (MSDN states). 앞으로 DMO가 지원되지 않을 것입니다.