Kori 3월 28일, 2022에 포스트됨 공유하기 3월 28일, 2022에 포스트됨 Docwiki에 있는 "FireDAC.Stan.Option.TFDFetchOptions.Items"를 번역한 글: 번역일: 2022년 3월 29일) 위로 가기: [DocWiki 번역] TFDFetchOptions (이 글은 "설명" 부분만 번역했음. 클래스 선언, 부모, 메소드, 프로퍼티, 프로퍼티, 유닛 정보 등등은 Items 원문에 정리된 것을 볼것) 설명 (Description) 어떤 유형의 데이터를 담아올 것인지 제어한다. Items 프로퍼티를 사용하여 어떤 유형의 데이터와 메타데이터를 담아올 것인지 제어한다. 옵션 설명 fiBlobs 옵션에 포함된 경우, 레코드의 다른 필드와 함께 BLOB 필드 값도 담아온다. 배제된 경우, BLOB 값이 꼭 필요할 때 까지 담아오기를 지연한다. 주의: FetchOptions.Items에서 fiBlobs를 빼도, SQL 명령의 해당 SELECT 구문의 항목은 달라지지 않는다. DBMS가 BLOB 값을 "by value(값)로" 전달한다면(예: Oracle LONG, MySQL, MS-SQL 서버, SQLite), 해당 BLOB 값이 해당 네트워크를 통해 클라이언트로 전달되지만, 클라이언트 레코드 캐시(cache)에는 저장되지 않는다. 이와 달리, DBMS가 BLOB 값을 "by reference(참조)"로 전달한다면(예: Oracle CLOB / BLOB, Interbase, Firebird), 해당 BLOB 값은 클라이언트로 전달되지도 않고 저장되지도 않는다. fiDetails 옵션에 포함된 경우, 레코드의 다른 필드와 함께 중첩된 커서(nested cursor)의 필드들도 담아온다. 배제된 경우, 중첩된 커서(nested cursor)의 값이 꼭 필요할 때 까지 담아오기를 지연한다. fiMeta 옵션에 포함된 경우, 명령(command) 메타데이터를 담아온다. 배제된 경우, 프로그래머가 직접 메타데이터를 제공해야 한다. 메타데이터 유형과 담아올 시점은 명령(command) 유형에 따라 다르다. TFDCustomStoredProc, CommandKind = ckStoredProc 등인 경우: 해당 메타데이터는 저장 프로시저 (stored procedure)의 파라미터에 대한 설명이다. Prepare를 호출할 때, 이 메타데이터를 담아온다. 만약 Items안에 fiMeta가 없으면, 프로그래머가 직접 Params 컬렉션을 채워넣어야 한다. TFDCustomQuery, CommandKind = ckSelect 등인 경우: 해당 메타데이터는 해당 기반 테이블에서 PK(프라이머리 키)를 구성하는 컬럼 세트이다. 이 메타데이터는 업데이트 SQL 명령을 자동으로 생성할 때 사용된다. Open/Define를 호출할 때, 이 메타데이터를 담아온다. 만약 Items안에 fiMeta가 없으면, 프로그래머가 아래 작업 중 하나를 직접 해서 PK fields를 명시해야 한다. PK(프라이머리 키) 필드를 위해 ProviderFlags 프로퍼티에 pfInKey를 포함한다. KeyFields 프로퍼티에 PK(프라이머리 키) 필드 이름을 콜론으로 구분하여 나열하여 지정한다. PK(프라이머리 키) 컬럼을 위해 TFDDatSColumn.Options 프로퍼티 안에 coInKey를 포함한다. 기본 값은 [fiBlobs, fiDetails, fiMeta]이다. 즉, 모든 데이터와 메타데이터를 알맞은 시점에 자동으로 담아온다. 기타 자료 (See Also) [DocWiki 번역] 고유 식별 필드 (FireDAC) [DocWiki 번역] 행 담아오기(Fetching Rows) (FireDAC) Data.DB.TField.ProviderFlags [DocWiki 번역] FireDAC.Stan.Option.TFDFetchOptions.Cache FireDAC.Stan.Option.TFDBottomUpdateOptions.KeyFields 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.