��� 4. ������ master-detail. ������������� ������������ �������� "MAS_" ��� ������������ ����������.
������ �� ����� ������� � ��������, ����������, ������ master-detail. ��� ����� �� ������� �� ����� ����������:
DBGrid2: TDBGrid;
DataSource2: TDataSource;
pFIBDataSet2: TpFIBDataSet;
ReadTransaction2: TpFIBTransaction;
WriteTransaction2: TpFIBTransaction;
"������" �� ��� ��, ��� � ���������� ������ �����������. ������� SelectSQL ��� pFIBDataSet2:
SELECT * FROM EMPLOYEE
WHERE DEPT_NO = ?DEPT_NO
��������, ��� �� ����� ������� ��� ������ detail-������� ������ ��� �����������, ������� �������� � ������� ������. �������� ��������� ?DEPT_NO ������ ������� �� ���� DEPT_NO ������� DEPARTMENT. ����� ��� ����������� �������������, ���������� ������ �������� pFIBDataSet2.DataSource ������ DataSource1. ������ ����������� �������������� ������� ��� pFIBDataSet2 �����, ��� �� ������ ��� ������ ��� pFIBDataSet1.
����� �������������� ��������� �� ������ ������ ��������� ��������� � ���������� �������. ����������, � ���������, ������ ��� InsertSQL:
INSERT INTO EMPLOYEE(
EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE,
DEPT_NO,
JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY
)
VALUES(
?EMP_NO, ?FIRST_NAME, ?LAST_NAME, ?PHONE_EXT, ?HIRE_DATE,
?DEPT_NO,
?JOB_CODE, ?JOB_GRADE, ?JOB_COUNTRY, ?SALARY
)
|
��������, ��� ��� ���������� ������ ����������, �� ������ ������ �������� ?DEPT_NO ������� ��������� ���� DEPT_NO �� ������� DEPARTMENT. FIBPlus ��������� ������ ��� ������������� ��� ������ �������� "MAS_":
INSERT INTO EMPLOYEE(
EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, HIRE_DATE,
DEPT_NO,
JOB_CODE, JOB_GRADE, JOB_COUNTRY, SALARY
)
VALUES(
?EMP_NO, ?FIRST_NAME, ?LAST_NAME, ?PHONE_EXT, ?HIRE_DATE,
?MAS_DEPT_NO,
?JOB_CODE, ?JOB_GRADE, ?JOB_COUNTRY, ?SALARY
)
|
������ �� ������� ����� �������, ��� �������� ��� ���� EMPLOYEE.DEPT_NO ����� ����� �� ���� DEPT_NO ������� DEPARMENT, ������� �������� master-�������� ��� ������� EMPLOYEE. ���� ��������� ���������� ������ � ������ UpdateSQL:
UPDATE EMPLOYEE SET
FIRST_NAME = ?FIRST_NAME,
LAST_NAME = ?LAST_NAME,
PHONE_EXT = ?PHONE_EXT,
HIRE_DATE = ?HIRE_DATE,
DEPT_NO = ?MAS_DEPT_NO,
JOB_CODE = ?JOB_CODE,
JOB_GRADE = ?JOB_GRADE,
JOB_COUNTRY = ?JOB_COUNTRY,
SALARY = ?SALARY
WHERE
EMP_NO = ?OLD_EMP_NO
|
������ ������� ������� ��� � ���������:
procedure TForm1.Button1Click(Sender: TObject);
begin
pFIBDatabase1.DBName := DBNameE.Text;
pFIBDatabase1.ConnectParams.UserName := UserNameE.Text;
pFIBDatabase1.ConnectParams.Password := PasswordE.Text;
pFIBDatabase1.Open;
pFIBDataSet1.Open;
pFIBDataSet2.Open;
end;
|
����� ��������� ����������. �������� ����� � ���� �� DBGrid1 �� ������ ��������� ��� ������������� ���������� ���������� � DBGrid2. ������ master-detail ��� ��������.
���. 14.
��������� ������ ������� ��� �������.
|