Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[DocWiki 번역] 고유 식별 필드 (FireDAC)


Recommended Posts

Docwiki에 있는 "Unique Identifying Fields (FireDAC)"를 번역한 글 (번역일: 2022년 3월 15일)

위로 가기: Editing Data (FireDAC)

일반사항 (Generalities)

고유 식별 필드(unique identifying columns)는 데이터셋에 있는 각 레코드를 식별할 수 있도록 하는 고유한 컬럼(들) 세트이다. 만약 데이터셋이 단일 테이블 SELECT의 결과라면, 이 데이터셋의 고유 식별 필드는 FROM 뒤에 적힌 테이블의 프라이머리 키 (PK)이다. 종종 자동-증가 필드가 테이블의 프라이머리 키 (PK)가 된다.

 

사용 (Usage)

고유 식별 필드(unique identifying columns)는 WHERE 구문을 구성할 때 사용된다.

 

제공 (Provision)

TFDQuery, TFDTable, TFDMemTable, TFDCommand는 자동으로 고유 식별 필드(mkPrimaryKeyFields)를 추출한다. 이때 SELECT ... FROM ...구문에 있는 주요(첫번째) 테이블에서 가져온다. 이것은 fiMetaFetchOptions.Items에 포함되어 있을 때 그렇다. 주의사항:

  • mkPrimaryKeyFields 쿼리는 시간이 많이 걸릴 수 있다;
  • 애플리케이션에서 직접 고유 식별 컬럼을 명시해야 하는 경우도 있다. FireDAC이 고유 식별 컬럼을 올바로 결정하지 못하는 경우에 그렇다.

고유 식별 컬럼을 직접 명시하려면, fiMeta를 FetchOptions.Items에서 빼낸 후 다음 옵션 중 하나를 사용한다.

애플리케이션에서 영속 필드 (Persistent Field)를 생성하면, 처음에는 TField.ProviderFlag가 올바로 설정된다. 그 이후에는 DB 구조 또는 쿼리가 변경되어도 자동으로 필드가 설정되지 않는다. 이 경우에는 개발자가 수작업으로 ProviderFlag를 업데이트 하여 고유 식별 컬럼 목록을 조정해야 한다. 만약 프라이머리 키 (PK)가 여러 필드로 구성된다면, 해당 필드가 모두 영속 필드 (Persistent Field)에 포함되어 있어야 한다.


행 식별 컬럼 (Row Identifying Columns)

대안으로, SELECT 목록에 행 식별 컬럼 (Row Identifying Columns)이 포함될 수 있다. FireDAC은 이런 컬럼을 발견하면, mkPrimaryKeyFields 메타데이터를 추출하지 않고, 행 식별 컬럼을 사용한다. 이것을 지원하는 DBMS는 다음과 같다.

DBMS 행 식별 컬럼 (Row Identifying Columns)
Firebird DB_KEY
Informix ROWID
Interbase DB_KEY / RDB$DB_KEY
Oracle ROWID
PostgreSQL OID. 테이블이 OID와 함께 생성되어야 한다.
SQLite ROWID

예를 들어, Oracle에서 :

SELECT T.*, ROWID FROM Orders T


기타 자료 (See Also)

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.