Delphi Ttable 어셈블리

7679 단어 Delphi
Ttable은 TDataSet의 파생 클래스로 BDE 데이터베이스 엔진을 바탕으로 하는 데이터 집합 구성 요소이자 비교적 간단한 데이터 구성 요소로 데이터베이스에서 데이터 테이블의 데이터를 직접 얻을 수 있으며 연결된 데이터베이스 속성(Database)과 가져올 데이터 테이블 이름(Tablename)만 설정하면 되기 때문에 간단한 응용에 있어 Ttable를 사용하는 것은 빠른 방법이다.
 
Ttable 일반 속성
Filter 속성: 간단한 데이터 필터링(인덱스 필요 없음) 또는 객체의 Filter에 적절한 필터 기준을 입력하면 객체의 Filtered 속성을 True로 설정하여 복잡한 동적 데이터 필터링을 수행할 수 있습니다. 
Delphi는 필터를 위한 속성 Filter, Filtered, Filteroptions 및 이벤트 OnFilterrecord를 제공합니다.
4
  • Filter: 필터링 기준을 입력할 때 사용할 수 있습니다. 값은 문자열 유형이며 조건 표현식일 수 있습니다

  • 4
  • Filtered: 기본적으로 False로 설정되어 있으며 필터가 닫히고 True로 설정되어 있으면 필터 작업이 수행되어 OnFilterrecord 이벤트가 발생합니다

  • 4
  • Filteroptions: 필터를 설정하는 데 사용되는 두 가지 매개변수FoCaseinsensitive 및 Fonopartialcompare입니다.FoCaseinsensitive는 필터가 대소문자에 민감한지 여부를 나타냅니다.Fonopartialcompare는 필터가 와일드카드 문자(*)로 표시된 부분과 일치하는지 여부를 나타냅니다
  • procedure TForm1.Button3Click(Sender: TObject);
    begin
      Table1.Filtered:=True;
      Table1.Filter:='    >60';
    end;

     
    Ttable 일반 방법
    Locate: Ttable에서 가장 자주 사용하는 데이터 검색 방법 중 하나입니다. 한 필드나 몇 필드의 값에 따라 기록을 찾고 찾을 수 있습니다.반환 결과는 False 설명으로 일치하는 레코드를 찾을 수 없으며 True 설명으로 일치하는 레코드를 찾을 수 있습니다.
    메소드 선언
    function TBDEDataSet.Locate(const KeyFields: string;
      const KeyValues: Variant; Options: TLocateOptions): Boolean;
    KeyFields:        
    KeyValues:
    Options: , 。LoPartialkey , LoCaseInsensitive .
    //       
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Table1.Locate(ComboBox1.Text, Edit1.Text, [loCaseInsensitive]) then
        ShowMessage('    ')
      else
        ShowMessage('     ');
    end;
    
    //      
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      if Table1.Locate(ComboBox1.Text+';'+ComboBox2.Text, VararrayOf([Edit1.Text, Edit2.Text]), [loCaseInsensitive]) then
        ShowMessage('    ')
      else
        ShowMessage('     ');
    end;

    참고: 여러 필드를 질의할 때는 ";"을 사용해야 합니다.연결 필드.
     
    Lookup: Ttable에서 가장 자주 사용하는 데이터 검색 방법 중 하나입니다. 검색할 필드 이름, 검색 값, 되돌아갈 필드만 지정하면 됩니다.데이터 검색이 성공하면 지정된 필드 값이 변수의 데이터 형식으로 반환되고 그렇지 않으면 null 값이 반환됩니다.Locate와 가장 큰 차이점은 Lookup이 현재 데이터 포인터를 변경하지 않는다는 점입니다.
    메소드 선언
    function TBDEDataSet.Lookup(const KeyFields: string; const KeyValues: Variant;
      const ResultFields: string): Variant;
    KeyFields:        
    KeyValues:
    ResultFields:

     
    사용자가 Ttable 어셈블리를 직접 사용하는 경우 기본 필드 설정을 사용합니다.Ttable 구성 요소의 필드 설정을 변경하려면 필드 편집기를 통해 설정할 수 있습니다.창에서 Ttable 구성 요소를 두 번 클릭하면 필드 편집기에 들어가서 이 필드를 각각 편집합니다.
      
    필드 편집기에서 필드의 공통 속성 선택
    Alignment: 필드 데이터 정렬
    DisplayFormat: 필드 내의 데이터 표현 방식을 설정합니다. 숫자 형식의 데이터에 천 원 구분자를 붙여야 할 경우 속성 값은 #, ###입니다.
    DisplayLabel: 이 필드의 제목 이름을 설정합니다. 기본값은 이 필드 이름입니다. 특정한 필드 이름을 설정하면 이 데이터 집합을 사용하는 모든 구성 요소도 이 새로 설정된 필드 이름을 직접 사용합니다
    EditMask: 편집 모드에 들어갈 때 이 필드의 편집 차단을 설정합니다. 즉, 사용자가 입력한 데이터 형식이나 내용을 제한할 수 있습니다.
    FieldName: 이 필드와 데이터 테이블이 연결된 필드를 설정합니다. 데이터 테이블에서 데이터를 가져올 필드를 지정합니다.
    ReadOnly: 각 필드의 읽기 전용 여부를 개별적으로 설정합니다.
    Visible: 필드의 표시 여부를 설정합니다. TDBGrid와 같은 제어 구성 요소를 사용하면 False로 설정된 필드는 TDBGrid 구성 요소의 표시 화면에 나타나지 않습니다.
     
    필드 편집기 특수 기능
    필드 편집기의 빠른 드래그
    필드 편집기의 빠른 드래그는 필드 편집기에서 필드를 창으로 드래그해서 사용할 수 있습니다. Delphi는 자동으로 설정된 TDBEdit 구성 요소를 제공하여 드래그된 필드를 표시합니다. DataField와 DataSource 같은 속성을 설정할 필요가 없습니다. TDataSource 구성 요소는 드래그에도 함께 창에 추가됩니다.
    필드 편집기의 계산 필드
    필드 편집에서 기존 필드를 편집하는 것 외에, 집합이나 몇 개의 필드 값에 덧붙인 효과를 처리할 수 있는 연산 효과가 있는 새로운 필드를 기존 필드에 따라 생성할 수 있다
    문자 편집기의 참조 필드
    계산 필드를 제외하고 Ttable 구성 요소의 필드 형식은 인용 형식도 지원합니다. 즉, 하나의 데이터 테이블의 필드 데이터는 다른 데이터 테이블의 필드를 인용할 수 있습니다.인용 필드는 다른 데이터 테이블을 인용해야 하기 때문에 설정상 계산 필드와 약간의 차이가 있다. 그 중에서 주요한 차이는 인용 데이터 테이블의 설정에 있다. 인용 데이터 테이블을 설정하는 것 외에 둘 사이의 대응 관계를 지정해야 한다. 이런 설정은 모두 필드 유형을 Lookup으로 선택하여 완성한 것이다.
    참조 필드 기능
    DataSet: 참조할 데이터 세트 설정
    Lookup Keys: 참조 데이터 세트에서 참조되는 필드, 즉 이 데이터 필드와 원래 데이터 세트를 기준으로 해당 관계를 만듭니다.
    Result Field: 대응 관계가 만들어진 후 참조 데이터 세트에서 표시할 데이터 필드
    Key Fields: 원래 데이터 집합은 참조 데이터 집합과 대응하는 필드를 만드는 데 사용되었기 때문에 이 필드는 Lookup Keys와 대응하는 관계가 있어야 합니다
     
    추가된 필드가 Calculated (계산 필드) 일 때, 온CalcFields 이벤트를 이용하여 새 필드의 계산 문제를 처리해야 합니다.
    procedure TForm1.Table1CalcFields(DataSet: TDataSet);
    var
      sum: Integer;
    begin
      sum:=DataSet.FieldByName('yuwenscore').AsInteger + DataSet.FieldByName('mathscore').AsInteger;
      DataSet.FieldByName('sum').AsInteger := sum ;
    end;

    좋은 웹페이지 즐겨찾기