문제

내가 하려고 합리화하는 복잡한 프로세스의 정보를 저장하에서 여러 테이블 및 그들을 연결하는 중이다.연결을 사용하여 발생하는 ID 값에서 생성된 각각의 표를 제공하는 독특한 연결을 제공합니다.나의 조합을 사용할 수 있는 설정 NOCOUNT 에서 선택@@id 를 얻을 각각기 다른 개성을 지니고 있지만,그는 여전히 요구하는 전화는 별도의 SQLExecute()각각의 테이블에 있습니다.내가 읽고 다 말 ADO 처리할 수 있는 여러 레코드 집합을 사용하여 ODBC 드라이버,그래서 질문은 내가 그것을 어떻게 ADO?

나는 이미 캡슐의 표준 ODBC 물건은 유사한 문제를 ADO.저는 기본적으로 알아야 할 무엇 ODBC API 를 호출할 수 있게 되었을 다시 ADO 의 NextRecorset().

나는 작업에 조합의 MS SQL7,MS SQL2005,중 하나를 사용하여 SQL Server ODBC,또는 SQL Native 클라이언트 드라이버에 적합합니다.

최종 목표:

SET NOCOUNT ON;
INSERT INTO TableA (data) VALUES ('a');
SELECT @@identity AS  NewID;
INSERT INTO TableB (data) VALUES ('b');
SELECT @@identity AS  NewID;
INSERT INTO TableC (data) VALUES ('c');
SELECT @@identity AS  NewID;
...
RS = DB.OpenRecordset()
RS.MoveFirst()
A_ID = RS.GetValue("id")
RS.NextRecordset()
RS.MoveFirst()
B_ID = RS.GetValue("id")
RS.NextRecordset()
RS.MoveFirst()
C_ID = RS.GetValue("id")
도움이 되었습니까?

해결책

SQLMoreResults() 전화 아날로그의 NextRecordSet() 기능입니다.

그러나 당신은 아마이 필요하지 않는 경우에 당신은 기꺼이 귀하의 실행합성 INSERT ...; SELECT @@IDENTITY 이후 결과를 반환에서 이 문서의 정체성을 가지고,당신은 필요하지 않정 SQLMoreResults().

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top