문제
지금 보았 이 질문에서 제공하는 다양한 경영방법론 그러나 그것은 하지 않았던 수락가능한 대답합니다.
한 두 가지가 아닌 두 개의 테이블이 그룹 테이블과 요소이다.테이블이 없을 정의 관계입니다.는 요소는 테이블 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)다음 행을 삭제하는을 통해 조롱(나는 가정을 하고 있는 이와 유사한)및 행로에서 삭제 표 요소만을(즉행에 그룹에 남아 있는 삭제되지 않).
참고 개정된 쿼리도 성능에 부정적인 영향을 줄 때 가져오는 행이 있습니다.
제휴하지 않습니다 StackOverflow