.


:




:

































 

 

 

 


- SQL




(FormTicket) (. 24). . . .

24

, .

(IBQuery) (IBUpdateSQL) DataSource
( , , , ) IBQueryTarif DataSourceTarif IBUpdateSQLTarif
IBQueryCntTick DataSourceCntTick DataSourceCntTick
( , ) IBQueryPass DataSourcePass DataSourcePass
IBQueryAsc    

 

( IBQueryTarif)

select TR_AL_NUM, TR_AP_FROM, TR_AP_TO, TR_CODE, TR_COST, TR_SL_TYPE from TARIFF

 

( IBQueryCntTick) , , .

 

SELECT count (TC.TC_NUM), f.fl_date FROM TARIFF TR

INNER JOIN flight f on f.fl_num = TR.tr_al_num

LEFT JOIN TICKET TC ON (TC.TC_TR_CODE = TR.tr_code AND TC.tc_fl_date = f.fl_date)

WHERE TR.TR_CODE =:tr

 

 

procedure TFormTicket.DataSourceTarifDataChange(Sender: TObject;

Field: TField);

Begin

IBQueryCntTick.Close;

IBQueryCntTick.ParamByName('tr').AsInteger:= IBQueryTarifTR_CODE.Value;

IBQueryCntTick.Open;

end;

:

select P.pr_name, P.pr_name2, P.pr_name3, T.tc_fl_num, Cast(T.tc_row as char(2))||tc_lit from person P

inner join ticket T on T.tc_pr_code = P.pr_code

where T.tc_tr_code =:TR and T.tc_fl_date =:dt

 

. onDataChange DataSourceCntTick

procedure TFormTicket.DataSourceCntTickDataChange(Sender: TObject;

Field: TField);

Begin

IBQueryPass.Close;

//

IBQueryPass.ParamByName('TR').AsInteger:= IBQueryTarifTR_CODE.Value;

IBQueryPass.ParamByName('DT').AsDate:= IBQueryCntTickFL_DATE.Value;

IBQueryPass.Open;

end;

, .

, (FormNewTicket), (. 25). TDBEdit , IBQueryTarif. : , , , . (DateTimePickerTicket) . (EditName, EditName2, EditName3) , , . .

(DBGridPRS) , .

, .

 

(IBQuery) DataSource
( ) IBQueryPRS DataSourcePRS
SQL IBQueryAny  
IBQueryNewNum  

(TBitBtn). Kind bkOK ( ModalResult mrOk) . ʻ. Kind bkCancel ( ModalResult mrCancel).

 

25

 

.

IBQueryPRS , . SQL :

SELECT PR_NAME, PR_NAME2, PR_NAME3, PR_CODE FROM PERSON

WHERE PR_NAME LIKE:NAME AND PR_NAME2 LIKE:NAME2 AND PR_NAME3 LIKE:NAME3

ORDER BY PR_NAME, PR_NAME2, PR_NAME3

, , .. EditName, EditName2 EditName3.

 

procedure TFormNewTicket.EditNameChange(Sender: TObject);

Begin

IBQueryPRS.Close;

IBQueryPRS.ParamByName('NAME').AsString:= EditName.Text + '%';

IBQueryPRS.ParamByName('NAME2').AsString:= EditName2.Text + '%';

IBQueryPRS.ParamByName('NAME3').AsString:= EditName3.Text + '%';

IBQueryPRS.Open;

end;

DBGridPRS , . , , , , EditName, EditName2, EditName3.

 

procedure TFormNewTicket.DBGridPRSDblClick(Sender: TObject);

Begin

EditName.Text:= IBQueryPRSPR_NAME.Value;

EditName2.Text:= IBQueryPRSPR_NAME2.Value;

EditName3.Text:= IBQueryPRSPR_NAME3.Value;

end;

 

IBQueryAny, IBQueryNewNum .

, . IBQueryNewNum SQL

select Max(TC_NUM) + 1 from TICKET

WHERE TC_FL_NUM =:fl

. , , ''. IBQueryAny . TFormNewTicket.

 

Public

sLit:String;

sNum:Integer;

 

FormNewTicket. OnShow

procedure TFormNewTicket.FormShow(Sender: TObject);

Var

inRow: Integer;

Begin

with FormTicket do begin // FormTicket

//

IBQueryNewNum.Close;

IBQueryNewNum.ParamByName('fl').AsInteger:=

IBQueryTarifTR_AL_NUM.AsInteger;

IBQueryNewNum.Open;

EditNum.Text:= IBQueryNewNum.Fields[0].AsString;

 

//

//

IBQueryAny.SQL.Text:= 'SELECT MAX(ticket.tc_row) FROM tariff '

+'INNER JOIN ticket ON (tariff.tr_code = ticket.tc_tr_code) '

+'WHERE tariff.tr_al_num = ' + IBQueryTarifTR_AL_NUM.AsString

+'AND tariff.tr_sl_type = ' + IBQueryTarifTR_SL_TYPE.AsString

+'AND ticket.tc_fl_date = ''' + DateToStr(DateTimePickerTicket.Date)

+'''';

IBQueryAny.Open;

 

sNum:= IBQueryAny.Fields[0].AsInteger;

//

IBQueryAny.SQL.Text:= 'SELECT MAX(ticket.tc_lit)FROM tariff '

+'INNER JOIN ticket ON (tariff.tr_code = ticket.tc_tr_code) '

+'WHERE tariff.tr_al_num = ' + IBQueryTarifTR_AL_NUM.AsString

+'AND tariff.tr_sl_type = ' + IBQueryTarifTR_SL_TYPE.AsString

+'AND ticket.tc_fl_date = ''' + DateToStr(DateTimePickerTicket.Date)

+ '''' + ' AND ticket.tc_row = ' + IntToStr(sNum);

 

IBQueryAny.Open;

 

sLit:= IBQueryAny.Fields[0].AsString;

 

//

IBQueryAny.SQL.Text:= 'SELECT SP.SP_INROW FROM SALON_IN_PLANE SP '

+'INNER JOIN TARIFF T '

+'ON T.TR_SL_TYPE = SP.SP_SL_TYPE INNER JOIN AIRLINE AL '

+'ON AL.AL_NUM = T.TR_AL_NUM AND SP.SP_PL_CODE = AL.AL_PL_CODE '

+'WHERE T.TR_CODE = ' + IBQueryTarifTR_CODE.AsString;

 

IBQueryAny.Open;

inRow:= IBQueryAny.Fields[0].AsInteger;

if sNum = 0 then begin

sNum:= 1; //

sLit:= '';





:


: 2016-11-12; !; : 307 |


:

:

, .
==> ...

1694 - | 1579 -


© 2015-2024 lektsii.org - -

: 0.023 .