문제

지금 보았 이 질문에서 제공하는 다양한 경영방법론 그러나 그것은 하지 않았던 수락가능한 대답합니다.

한 두 가지가 아닌 두 개의 테이블이 그룹 테이블과 요소이다.테이블이 없을 정의 관계입니다.는 요소는 테이블 IdGroup 필드를 참조하는 IdGroup(PK)분야의 그룹이다.

내가 사용하여 다음과 같은 쿼리를 통해 ADO 레코드 집합을 채우 테이블이 값을 datagrid:

SELECT Elements.*, Groups.GroupName
FROM Elements
INNER JOIN Groups ON Elements.IdGroup = Groups.IdGroup

에서는 표하고 싶어 눌러 삭제를 삭제하기 위해서는 요소입니다.여기에 내 문제입니다.사용할 때 나는 DAO DAO 삭제()함수는 삭제된 레코드만 요소 그룹입니다.이것이 예상되는 동작입니다.

때로 변경 ADO,삭제()함수는 삭제된 레코드에서 두 테이블,요소가 기록한 그룹의 요소 속!

이 있습을 재현하는 방법 DAO ADO 문제없이 관계를 정의하로 테이블?

참고:내가 알고 있는 대안(실행하면 삭제한 경우 querys 일을 할 수 있).그냥 나를 보는 방법을 이렇게 ADO,또는 말 할 수 없습니다.

도움이 되었습니까?

해결책

다시 쓰기를 쿼리하기:

  • 대체 안으로 가입하는 절로 구성되어 있습니다.
  • 을 사용 하위 SELECT 절에서 반환하는 값의 그룹입니다.GroupName.

예제:

SELECT Elements.*, 
       (
        SELECT Groups.GroupName
          FROM Groups 
         WHERE Elements.IdGroup = Groups.IdGroup
       )
  FROM Elements
 WHERE EXISTS (
               SELECT * 
                 FROM Groups 
                WHERE Elements.IdGroup = Groups.IdGroup
              );

나이 테스트를 사용하여 SQL Server2008ADO 레코드 집합을 설정하는 데이터 소스로 속의 Microsoft ole db 컨트롤(MSDATGRD.OCX)다음 행을 삭제하는을 통해 조롱(나는 가정을 하고 있는 이와 유사한)및 행로에서 삭제 표 요소만을(즉행에 그룹에 남아 있는 삭제되지 않).

참고 개정된 쿼리도 성능에 부정적인 영향을 줄 때 가져오는 행이 있습니다.

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