LOGIN • JOININ

SQL-Multiple Result

[Tutorials/[Server] 4. Query classes/Tutorial_Query04_SQL-MultipleResult]



프로시저나 다중 명령어를 실행시키면 결과가 하나의 Rowset이 아니라 여러 개의 Rowset이 되는 경우가 있습니다.

이러한 것이 다중 결과(Multiple-Result)인데 이것 역시 for문을 사용하여 간단히 처리가 가능합니다.



1... Multiple Result 처리하기

Query한 결과가 다중 Result를 가질 경우 Query객체의 Resut()를 얻어 그것을 for문을 사용해 돌려 여러 개의 결과를 얻을 수 있습니다.

	// 1) Query 객체를 할당받는다.
	auto	pQuery	 = pQuery->RequestQuery("{ CALL dbo.LoadAccount(‘Test’) }");

	// Check) Query에 실패했으면 여기서 끝냄.
	ERROR_THROW_IF(pQuery.empty(), CGException::CThrow_Failure(), );

	// 2) 먼저 Result()를 사용해 for문을 돌린다.
	for(auto& iterResult:pQuery->Result())
	{
		// 3) for문을 사용해 Row값들을 읽어들인다.
		for(auto& iter:iterResult)
		{
			// - Column값들을 읽어 들인다.
			auto	id			 = iter.GetValue<int64_t>(1);
			auto	idType		 = iter.GetValue<int64_t>(2);
			auto	isDeleted	 = iter.GetValue<VARIANT_BOOL>(3);

			// - 처리...
			...
		}
	}

1) RequestQuery()함수를 수행합니다.

2) 먼저 Result()의 for문을 돌립니다.

3) Rowset의 for문을 돌립니다.


그 외의 처리는 사실상 동일합니다.