5장: 데이터 세트 데이터 이면에 있는...
데이터의 첫 번째 섹션 상태
Delphi 및 ADO를 사용하여 데이터베이스 애플리케이션을 개발할 때 대부분의 작업은 DataSet 구성 요소에 대한 도움말 문서를 연구하는 데 소비됩니다. . ADO 기반 프로그램을 생성하기 위해 Delphi는 TAdoTable, TAdoQuery 및 기타 구성 요소와 같은 여러 데이터 세트 구성 요소를 제공합니다. 데이터베이스 테이블이나 쿼리에서 데이터를 얻고, 표시하고, 수정하는 데 사용됩니다.
이 튜토리얼의 5장에서는 관심 있는 대부분의 데이터 세트 구성 요소의 속성, 이벤트 및 메서드 중 일부를 소개하여 데이터를 표시하고, 찾아보고, 읽는 방법을 실제로 살펴보겠습니다.
선택, 설정, 연결 및 가져오기
이제 5장에 도달했으므로 데이터베이스 양식을 만드는 데 필요한 단계를 숙지해야 합니다. 4장에서는 간단한 데이터 검색 양식을 수동으로 만들었습니다. 이 장에서는 이를 사용하여 논의를 계속할 것입니다.
지금까지 우리는 하나의 (ADO) 데이터 세트 구성 요소인 TAdoTable만 사용했습니다. TADOQuery 및 TADODataSet(데이터세트 구성 요소)가 동일한 메서드 및 이벤트에 대해 동일한 설정을 사용한다는 점을 이해하는 것이 중요합니다.
참깨 열기, 참깨 닫기 (참깨 열기, 참깨 닫기)
Delphi 데이터베이스 개발의 매우 중요한 기능 중 하나는 Delphi를 통해 프로그램 설계 중에 데이터를 처리할 수 있다는 것입니다. 기억하실지 모르겠지만, 이전 장에서는 디자인 타임에 데이터에 대한 활성 연결을 열기 위해 Active 속성을 사용했습니다.
테이블의 데이터 처리를 시작하기 전에 프로그램이 먼저 데이터 세트를 열어야 한다는 것을 이해하는 것은 어렵지 않습니다. Delphi에는 이 기능을 달성하는 두 가지 방법이 있습니다. 첫 번째는 우리가 본 것처럼 디자인이나 런타임에 Active 속성을 True로 설정할 수 있다는 것입니다. 두 번째는 런타임에 Open 메서드를 호출할 수 있다는 것입니다. 예를 들어 ADOTable 구성 요소의 데이터를 가져오려면 양식의 OnCreate 이벤트 처리기에 다음 코드를 추가합니다.
ADOTable1.열기;
참고: 각 ADO 데이터 세트는 자체 ConnectionString 속성이나 ADOConnection 구성 요소(및 해당 ConnectionString)를 통해 데이터베이스 데이터에 액세스할 수 있습니다. ADOTable1 구성 요소가 ADOConnection1 구성 요소에 연결된 경우(이 방법 권장) ADOTable을 열면 해당 ADOConnection 구성 요소가 활성화됩니다. ADOConnection은 실행될 두 가지 이벤트인 OnWillConnect와 OnConnectComplete를 제공합니다.
Open 메서드는 Active 속성을 True로 설정하고 연결을 활성화합니다. 연결이 완료되면 Active 속성을 False로 설정하거나 Close 메서드를 호출하여 연결을 끊을 수 있습니다. 일반적으로 양식의 OnClose 이벤트 처리기에서 Close 메서드를 호출합니다.
ADOTable1.닫기;
계속하기 전에 데이터 세트 메서드 및 속성을 사용하려면 데이터의 현재 상태에 대한 지식이 필요하다는 점을 아는 것이 중요합니다. 간단히 말해, 데이터 세트의 State 속성은 언제든지 데이터 세트에서 발생할 수 있는 작업과 발생할 수 없는 작업을 결정합니다.
어떻게 지내세요?
데이터 세트가 닫혀 있으면 데이터 상태에 비활성 연결이 표시됩니다. 연결이 닫히면 데이터에 대해 어떤 작업, 동작 또는 메서드도 수행할 수 없습니다. 데이터세트에 대한 연결을 처음 열면 데이터세트는 기본 찾아보기 상태에 있습니다. "귀하의" 데이터 상태를 항상 알아야 합니다. 예를 들어 데이터세트를 DBGrid에 연결하면 사용자는 기본 데이터세트(또는 레코드세트)를 볼 수 있지만 일부 데이터를 변경하려면 상태를 편집으로 설정해야 합니다.
프로그램이 데이터를 처리할 때 데이터 세트의 상태가 지속적으로 변경된다는 점을 이해하는 것이 중요합니다. 예를 들어 DBGrid(탐색 상태)에서 데이터를 탐색할 때 사용자는 레코드 편집을 시작하고 상태는 자동으로 편집으로 변경됩니다. 물론 이는 데이터 시각화 컨트롤(DBGrid, DBEdit)의 AutoEdit 속성이 True로 설정된 경우의 기본 동작입니다.
하지만 상태를 어떻게 알 수 있나요? ADOTable(또는 기타 DataSet 구성 요소)에는 상태 변경을 처리하는 트리거가 없습니다.
살펴보겠습니다. 각 DataSet 구성 요소에 대해 일반적으로 DataSource 구성 요소를 사용하여 하나 이상의 데이터 시각화 컨트롤에 대한 연결을 렌더링합니다. 그게 다야.
각 데이터 소스 구성 요소에는 기본 데이터 세트 상태가 변경될 때마다 트리거되는 OnStateChange 이벤트가 있습니다. 양식 제목을 사용하여 ADOTable1 데이터 세트 구성 요소의 현재 상태를 표시하려면 OnStateChange 이벤트 핸들러에 다음 코드를 배치합니다.
PROcedure TForm1.DataSource1StateChange(보내는 사람: TObject);
var ds: 문자열 ;
시작하다
ADOTable1 . 상태
dsInactive: ds:='닫힘';
dsBrowse: ds:='탐색 중';
dsEdit: ds:='편집 중';
dsInsert: ds:='새 레코드 삽입 중';
또 다른
ds:='다른 주'
끝 ;
Caption:='ADOTable1 상태: ' + ds;
끝 ;