1. 데이터베이스 별칭의 상태
Delphi의 내장 데이터베이스 엔진 BDE (Borland Database Engine), 강력한 데이터베이스 처리 기능을 제공하며 BDE는 Delphi 데이터베이스 기능의 핵심 부분입니다.
델파이 프로그램은 독립형 머신에서만 사용되는 로컬 데이터베이스를 사용하여 BDE를 통해 데이터베이스 데이터의 액세스를 직접 제어 할 수 있습니다. 이 액세스 컨트롤은 BDE 매개 변수의 구성을 기반으로합니다. 데이터베이스 별칭은 Delphi의 가장 일반적으로 사용되는 데이터베이스 액세스 컴포넌트가 정의 된 데이터베이스 별칭이며 액세스 할 수 없습니다 특정 데이터베이스 테이블. 따라서 데이터베이스 테이블을 작성할 때는 두 가지 프로세스가 있어야합니다. 하나는 해당 데이터베이스 별명이 존재하지 않으면 해당 데이터베이스 별칭이 먼저 설정되어야합니다 데이터베이스 별칭 (즉, DatabasEname) (즉, 데이터 이름) (즉, DatabasEname)에서 설정 해야하는 데이터베이스 테이블이 있는지 여부, 존재하지 않으면 설정 될 것입니다. 이러한 방식으로 원래 테이블의 데이터는 손실로부터 보호됩니다.
2. 세션 구성 요소 : Delphi 데이터베이스 프로그램과 BDE 간의 인터페이스
Delphi는 데이터베이스 응용 프로그램에 대한 세션 구성 요소를 자동으로 제공합니다. 이는 응용 프로그램의 BDE와의 인터페이스의 핵심입니다. 아래는 BDE 인터페이스에 관한 세션 구성 요소의 여러 프로세스에 대한 프로토 타입 설명입니다.
1. GetAliasNames (List : TSTRINGS);
2. ADDDARDALIAS (const name, path, defaultDriver : String); 예를 들어, CNTSSAMP라는 별칭을 추가하고 기본 데이터베이스 드라이버는 역설이며 저장 경로는 C :/delphp11입니다.
Session.AddDardAlias (CNTSSAMP, C :/DELPHP11, PARKILOX);
3. GetTableNames (const databaseName, Pattern : String; Extensions, SystemTables; List : TStrings);
4. SaveConfigfile;
또한 List.IndexOf (지정된 문자열)의 값을 사용하여 문자열 목록에 필요한 문자열이 있는지 여부를 결정하여 새 데이터베이스 별명 및 데이터베이스 테이블을 설정 해야하는지 확인하십시오.
3. 예
다음 코드를 작성하십시오. Formcreate 이벤트가 시작되면 데이터베이스 별명 CNTSSAM이 존재하는지 자동으로 테이블 TSK (라이브러리)가 표시됩니다. CNTSSAMP. 그렇지 않으면 TSK가 자동으로 생성됩니다.
절차 tform1. formcreate (발신자 : Tobject
var
AP : TSTRINGLIST; {StringList 변수}
답 : 정수;
시작하다
ap : = tstringlist.create;
세션 .getaliasnames (AP);
if (ap.indexof (cntssamp) = -1) 그런 다음 {별명이 존재하는지 결정}}
시작하다
답변 : = application.messagebox (별명 CNTSSAMP가 존재하지 않습니까? 지금 생성 되었습니까?, BDE 정보 창, MB — OKCANCEL); {CNGZSAMP라는 데이터베이스 별칭 추가}
대답 = idcancel이면
시작하다
Ap.free;
출구;
끝;
Session.AddDardAlias (CNTSSAMP, C :/DELPHP11, PARKILOX);
Session.SaveConfigFile; {BDE 구성 파일 저장}
끝 ;
ap.clear; {별칭의 모든 테이블 이름 목록 얻기 cngzsamp}
session.getTableNames (CNTSSAMP ,, False, False, AP);
if (ap.indexof (tsk) = -1) 그런 다음 {테이블이 존재하는지 결정}
시작하다
답변 : = application.messagebox (테이블 TSK는 별칭 CNTSSAMP에 존재하지 않습니다. 지금 생성 되었습니까?, 테이블 정보 창, MB — OKCANCEL);
대답 = idcancel이면
Ap.free;
출구;
끝;
표 1과 함께
시작하다
활성 : = 거짓;
DatabaseName : = CNTSSAMP; {Database alias}
tablemename : = tsk;
탁자 : = ttparadox; {데이터베이스 유형}
FieldDefs와 함께
시작 {add field}
분명한;
추가 (sh, ftstring, 30, false) {Book No. String (30)}
추가 (sm, ftstring, 30, false) {Book Title String (30)}
추가 (CBS, FTSTRING, 20, FALSE) {Publisher String (20)}
추가 (cbrq, ftdate, 0, false) {게시 날짜}
추가 (ys, ftinteger, 0, false);
끝;
indexdefs와 함께
시작 {index}
Clear;
추가 (shsy, sh, [1 차, ixunique]);
끝;
CreateTable;
끝;
끝 ;
Ap.Free; {릴리스 변수 AP}
끝;