48
FBGBKL?JKL<HH;J:AH<:GBYJHKKBCKDHCN?>?J:PBB <HJHG?@KDBC=HKM>:JKL<?GGUCMGB<?JKBL?L NZdmevl_lijbdeZ^ghcfZl_fZlbdbbf_oZgbdb DZn_^jZl_ogbq_kdhcdb[_jg_lbdb bZ\lhfZlbq_kdh]hj_]mebjh\Zgby JZajZ[hldZijbeh‘_gbc[Za^Zgguo \kj_^_Delphi F_lh^bq_kdh_ ihkh[b_dki_pdmjkm 'Ijh]jZffbjh\Zgb_ bgnhjfZpbhgguo kbkl_f^eyklm^_glh\ dmjkZ^/hbdmjkZ\/h nZdmevl_lZ IFF KhklZ\bl_ev Jm^Ze_\<= <hjhg_‘

Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

Embed Size (px)

Citation preview

Page 1: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

FBGBKL?JKL<H�H;J:AH<:GBY�JHKKBCKDHC�N?>?J:PBB

<HJHG?@KDBC�=HKM>:JKL<?GGUC�MGB<?JKBL?L

NZdmevl_l�ijbdeZ^ghc�fZl_fZlbdb�b�f_oZgbdb

DZn_^jZ�l_ogbq_kdhc�db[_jg_lbdb �b�Z\lhfZlbq_kdh]h�j_]mebjh\Zgby

JZajZ[hldZ�ijbeh`_gbc�[Za�^Zgguo �\�kj_^_�Delphi

F_lh^bq_kdh_�ihkh[b_�d�ki_pdmjkm ©Ijh]jZffbjh\Zgb_ �bgnhjfZpbhgguo�kbkl_fª�

^ey�klm^_glh\���dmjkZ�^/h�b���dmjkZ�\/h �nZdmevl_lZ�IFF

KhklZ\bl_ev���Jm^Ze_\�<�=�

<hjhg_`������

Page 2: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

2

Ij_^bkeh\b_

>Zggh_� �ihkh[b_�ij_^gZagZq_gh�klm^_glZf���dmjkZ�nZdmevl_lZ�ijbdeZ^ghc�fZ�l_fZlbdb�b�f_oZgbdb�<=M��<�ihkh[bb��baeZ]Zxlky�hkgh\u�kha^Zgby�ijbeh`_gbc�[Za�^Zgguo�\�kj_^_�Delphi ̂ ey�Windows 95. Delphi - fhsgZy�mgb\_jkZevgZy�kbk�l_fZ�ijh]jZffbjh\Zgby�^ey�Windows gZ�hkgh\_�yaudZ�Object Pascal, \dexqZx�sZy�\�k_[y�kj_^kl\Z�ih^^_j`db�[Za�^Zgguo� �;>�� Hkgh\guf�gZijZ\e_gb_f�bk�ihevah\Zgby Delphi�y\ey_lky�jZajZ[hldZ�Z\lhghfguo� �i_j_ghkbfuo��dhff_jq_�kdbo�ijbeh`_gbc��mf_xsbo�jZ[hlZlv�dZd�k�ehdZevgufb��lZd�b�k�m^Ze_ggufb�[Z�aZfb�^Zgguo�\�kj_^_�deb_gl-k_j\_j��kha^Zgb_�jZkij_^_e_gguo�bgnhjfZpbhgguo�kbkl_f���Kj_^b�[eb`Zcrbo�ZgZeh]h\�b�dhgdmj_glh\�Delphi \�wlhc�h[eZklb� fh`�gh�hlf_lblv�Clarion,�K���Builder, Power Builder b, hlqZklb��Visual Basic.) Delphi - wlh�bgkljmf_gl�ijh]jZffbklZ��Z�g_�dhg_qgh]h�ihevah\Zl_ey��>ey�i_j\hgZqZev�gh]h�bamq_gby�KM;>�b�^ey�j_r_gby�ijhkluo�aZ^Zq�ih�Z\lhfZlbaZpbb�hnbkguo�jZ[hl� [he__� m^h[gufb� y\eyxlky� ki_pbZebabjh\Zggu_ � kbkl_fu� bgl_jij_lb�jmxs_]h�lbiZ��gZijbf_j��Visual FoxPro, Microsoft Access beb�Paradox.

P_evx�ihkh[by�g_�y\ey_lky�kbkl_fZlbabjh\Zggh_�baeh`_gb_�kijZ\hqghc�bgnhjfZpbb��?]h�aZ^ZqZ�khklhbl�\�^jm]hf: [ukljh�gZmqblv�klm^_glZ��g_aZ\bkb�fh�hl�mjh\gy�_]h�ih^]hlh\db��hkgh\Zf�kha^Zgby�ijh]jZff�^ey�[Za�^Zgguo��<ha�fh`ghklb�Delphi�ljm^ghh[hajbfu��<�wlbo�bgnhjfZpbhgguo� ©aZjhkeyoª�\Z`gh�h[hagZqblv�©ljhibgdmª��ih�dhlhjhc�m^h[gh�ijh[bjZlvky�\i_j_^��ih�f_j_�g_h[�oh^bfhklb�hlklmiZy�\�klhjhgu�aZ�gh\ufb�nZdlZfb�

>ey�m]em[e_ggh]h�bamq_gby�fZl_jbZeZ�fh]ml�[ulv�j_dhf_g^h\Zgu�dgb]b�[1-3]��Yaud�SQL ijhs_�\k_]h�hk\hblv�ih�[4].�<�[5] hibkZgZ�f_lh^bdZ�ijh_dlbjh�\Zgby�[Za�^Zgguo �k�bkihevah\Zgb_f k_j\_jZ�InterBase��>ey�i_j\hgZqZevgh]h �ha�gZdhfe_gby�k�Delphi fh`gh�bkihevah\Zlv�f_lh^bq_kdb_�mdZaZgby� [9-11]. :[kh�exlgh�g_h[oh^bfuf�bgkljmf_glhf�ijb�ex[hc�jZ[hl_�k�Delphi y\ey_lky�\kljh�_ggZy�kijZ\hqgZy�kbkl_fZ��Z�ijb�j_r_gbb�keh`guo�aZ^Zq�qZklh�ijboh^blky�bam�qZlv�b�bkoh^gu_�l_dklu�[b[ebhl_db \bamZevguo�dhfihg_glh\.

JZ[hlZ�k�ihkh[b_f�ij_^iheZ]Z_l�agZgb_�hkgh\�[Za�^Zgguo�b�KM;>�\�jZf�dZo�dmjkZ�©;Zau�^Zgguo�b�wdki_jlgu_�kbkl_fuª��qblZ_fh]h�gZ���dmjk_�^�h��n-lZ�IFF��mf_gb_�ihevah\Zlvky�klZg^Zjlgufb�\bamZevgufb��dhfihg_glZfb �Delphi. Baeh`_gb_�hkgh\Zgh�gZ�\_jkbyo�Delphi 3.0-4.0 Client/Server Suite.

Page 3: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

3

���F_lh^bdZ�kha^Zgby�ijbeh`_gbc

�����<\_^_gb_

Kj_^kl\Z�jZ[hlu�k�[ZaZfb�^Zgguo�\�Delphi fh`gh�jZa^_eblv�gZ�^\_�]jmiiu� • mgb\_jkZevgu_�mlbeblu�k�jZa\bluf�ihevah\Zl_evkdbf�bgl_jn_ckhf��DataBase

Desktop, ReportSmith, DataBase Explorer). • dhfihg_glu� Delphi� ^ey� jZajZ[hldb� Z\lhghfguo� ijh]jZff� \_^_gby� [Za�

^Zgguo. Mgb\_jkZevgu_�mlbeblu�ij_^klZ\eyxl�kh[hc�kbevgh�mijhs_ggu_�\ZjbZg�

lu�h[uqguo�KM;>� k \_kvfZ�h]jZgbq_ggufb�\hafh`ghklyfb�� Ihwlhfm�bo�p_e_�khh[jZagh� bkihevah\Zlv� � ebrv� \� dZq_kl\_� \kihfh]Zl_evgh]h� bgkljmf_glZ�� gZ�ijbf_j��^ey�kha^Zgby�beb�baf_g_gby�kljmdlmju�[Zau�^Zgguo��hleZ^db�aZijhkh\�b�l�^�

Fu�[m^_f�jZkkfZljb\Zlv�lhevdh�gh\u_�ki_pbnbqgu_�^ey�Delphi kj_^kl\Z�jZajZ[hldb�gZ�hkgh\_�dhfihg_glh\��<�qZklghklb��jZkkfhljbf�h[smx�f_lh^bdm�jZajZ[hldb��bkihevah\Zgb_�dhfihg_glh\�^hklmiZ�d�[ZaZf�^Zgguo�b�\bamZevguo�dhfihg_glh\�kha^Zgby�ihevah\Zl_evkdh]h �bgl_jn_ckZ�

I_j_^�gZqZehf�jZ[hlu�k�;>�g_h[oh^bfh�m[_^blvky��qlh�gZ�`_kldbc�^bkd�dhfivxl_jZ �mklZgh\e_gZ��[b[ebhl_dZ�BDE (Borland DataBase Engine��ijhp_kkhj�[Za� ^Zgguo). NZceu�BDE aZibku\Zxlky ijh]jZffhc� mklZgh\db�Delphi. JZkih�eh`_gb_�BDE j_]bkljbjm_lky�\�j__klj_�Windows. BDE j_Zebah\Zg�\�\b^_��^bgZ�fbq_kdb�aZ]jm`Z_fuo�[b[ebhl_d� �DLL ���<�BDE \oh^yl�^jZc\_ju�gbadhmjh\g_�\h]h� ^hklmiZ� d�nZceZf� ;>� jZaguo�nhjfZlh\�� ^jZc\_ju� yaudh\hc� ih^^_j`db��bgl_jij_lZlhju�SQL b�^j��Bgl_jn_ck��h[jZam_fuc�nmgdpbyfb� �BDE, ba\_kl_g��ih^�gZa\Zgb_f� IDAPI. BDE y\ey_lky� ihkj_^gbdhf�f_`^m� ijbeh`_gb_f� b�;>, hk\h[h`^Zxsbf� ijbeh`_gb_� (gh� g_� jZajZ[hlqbdZ�)� hl� g_h[oh^bfhklb� agZgby�^_lZe_c�^hklmiZ�d�nZceZf�� �f_klhgZoh`^_gby�nZceh\�b�^Z`_�hlqZklb�hl� �Zjob�l_dlmju�;>��Dhg_qgmx�j_ZebaZpbx�ex[uo�^_ckl\bc�k�;>�[_j_l�gZ�k_[y�^jZc\_j�BDE. BDE�ih^^_j`b\Z_l�jZ[hlm��k�nZceZfb�i_jkhgZevguo�KM;>�Paradox (*.db), dBase-kh\f_klbfuo�KM;>��*.dbf),�b�k�nZceZfb�m^Ze_gguo�[Za�^Zgguo��jZkiheh�`_gguo�gZ�SQL-k_j\_jZo�InterBase, Oracle, Informix b�^j.�:jobl_dlmjZ�BDE hl�djulZ�b�fh`_l�[ulv�^hiheg_gZ�gh\ufb�^jZc\_jZfb��

D�kh`Ze_gbx��BDE lZd�^h�dhgpZ�b�g_��[ue�hleZ`_g�jZajZ[hlqbdZfb��<�ih�ke_^g_c� \_jkbb�Delphi 5 l_ogheh]by�BDE ihkl_i_ggh� \ul_kgy_lky� �?)��Ihy\b�ebkv�dhfihg_glu�gZ�hkgh\_�[he__�mgb\_jkZevghc�l_ogheh]bb�^hklmiZ�d�^Zgguf�ADO nbjfu�Microsoft��^ey�^hklmiZ�d�;>�InterBase kha^ZgZ�hl^_evgZy�ki_pbZeb�abjh\ZggZy�ebg_cdZ�dhfihg_glh\��bkihevamxsbo�API wlhc�KM;>��BDE ̂ ey�gbo�g_�lj_[m_lky���H^gZdh wlb�gh\u_�\hafh`ghklb��g_�f_gyxsb_�kmlb�\hijhkh\��fu�jZkkfZljb\Zlv�g_�[m^_f��lZd�dZd�gZ�fhf_gl�gZibkZgby�ihkh[by��yg\Zjv������]���Delphi 5 _s_� g_� ihemqbeZ�rbjhdh]h� jZkijhkljZg_gby� �\hafh`gh�� ih� ijbqbg_�ljZ^bpbhggh�aZ\ur_gguo�kbkl_fguo�lj_[h\Zgbc��RAM g_�f_gvr_ 64M b�l�i����

Page 4: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

4

Ijb�jZ[hl_�k�BDE j_dhf_g^m_lky�kha^Z\Zlv�ZebZku��:ebZk (Alias, ik_\^h�gbf��-�mkeh\gh_�h[hagZq_gb_�ki_pbnbdZpbb�dZlZeh]Z��]^_�gZoh^ylky�nZceu�;>� GZijbf_j��ijb�mklZgh\d_�Delphi Z\lhfZlbq_kdb�kha^Z_lky�ZebZk�DBDEMOS ̂ ey�h[hagZq_gby�dZlZeh]Z� \DELPHI3\DEMOS\DATA\��]^_�ojZgylky�nZceu�^_fhgkl�jZpbhgguo�b� mq_[guo� [Za� ^Zgguo��J_dhf_g^m_lky� \�ijh]jZffZo�bkihevah\Zlv�bf_ggh� ZebZku�� Z� g_� dhgdj_lgu_� bf_gZ� dZlZeh]h\��<� wlhf� kemqZ_� ijh]jZffu�ijbh[j_lZxl� ^hihegbl_evgmx� ]b[dhklv�� ijb�baf_g_gbb�f_klhiheh`_gby�nZc�eh\�g_l�g_h[oh^bfhklb�i_j_^_eu\Zlv�ijh]jZffm��Z�^hklZlhqgh�i_j_hij_^_eblv �ik_\^hgbf� k�ihfhsvx��gZijbf_j�� mlbeblu DB Explorer.�<k_� ZebZku�b�^jm]b_�iZjZf_lju� b� gZkljhcdb� BDE j_]bkljbjmxlky� \� dhgnb]mjZpbhgghf� nZce_�idapi.cfg. NZce�idapi.cfg ^he`_g�gZoh^blvky�gZ�h[s_^hklmighf�b�hldjulhf�^ey�aZibkb� k_l_\hf� beb� ehdZevghf� ^bkd_��Hlf_lbf�� qlh� dZ`^Zy� lZ[ebpZ�nhjfZlZ�Paradox ojZgblky�\�hl^_evghf�nZce_�� .db), \k_�lZ[ebpu�KM;>�InterBase ojZgyl�ky�\�h^ghf�nZce_� �gdb��>Zevg_cr__�baeh`_gb_�hjb_glbjh\Zgh�gZ�bkihevah\Z�gb_�lZ[ebp�Paradox b�InterBase.

�Kha^Zgb_� kljmdlmju� lZ[ebpu� b� __� aZiheg_gb_� bgnhjfZpb_c�fh`_l� \u�ihegylvky�g_kdhevdbfb� kihkh[Zfb: ki_pbZebabjh\Zggufb �KM;>� lbiZ�Paradox beb� FoxPro�� � ih^^_j`b\Zxsbfb� lj_[m_fuc� nhjfZl� ^Zgguo, mlbeblZfb� Data Base Desktop (DBD) beb�DB Explorer, k�ihfhsvx�dhfihg_glh\�Delphi.

G_h[oh^bfh� mqblu\Zlv�� qlh�DBD � ��� iehoh� jZ[hlZ_l� k� dbjbeebq_kdbfb �rjbnlZfb�b�����g_�bkihevam_l�\k_o�\hafh`ghkl_c�InterBase.�Ihwlhfm��hkgh\gh_�gZagZq_gb_�DBD –� kha^Zgb_� beb� baf_g_gb_� kljmdlmju� ehdZevguo� lZ[ebp��bg�^_dkh\�b�^jm]bo�f_lZ^Zgguo�

MlbeblZ�DB Explorer��^jm]h_�gZa\Zgb_�SQL Explorer) k\h[h^gZ�hl�wlbo�g_�^hklZldh\�b�fh`_l�ijbf_gylvky�^ey�\\h^Z�bgnhjfZpbb�b�hleZ^db�SQL-aZijhkh\. Hkh[_ggh�m^h[gZ�hgZ�ijb�jZ[hl_�k�InterBase��l�d��iha\hey_l�kha^Z\Zlv�b�baf_gylv�f_lZ^Zggu_ InterBase��\�lhf�qbke_��kljmdlmjm�lZ[ebp���H^gZdh��b�m�DB Explorer ijb]hlh\e_gu�©kxjijbauª�^ey�ihevah\Zl_ey���

�����Hkgh\gu_�dhfihg_glu Ex[h_�ijbeh`_gb_��jZ[hlZxs__�k�;>��^he`gh�kh^_j`Zlv�\�k\h_f�khklZ\_��dZd�fbgbfmf��ljb�dhfihg_glZ��<h-i_j\uo��dhfihg_gl�^ey�k\yab�k�ijhp_kkhjhf�[Za�^Zgguo�b�q_j_a�g_]h� k�nbabq_kdbfb� lZ[ebpZfb��Wlh�fh`_l� �[ulv� �dhfihg_gl�TTable �jZ[hlZ�k�lZ[ebpZfb�;>�� TQuery��\uiheg_gb_�SQL-aZijhkh\��d�;>)�beb�TStoredProc� �\uiheg_gb_�ojZgbfuo�gZ�k_j\_j_�;>�ijhp_^mj�.�<h-\lhjuo��dhf�ihg_gl� TDataSource, kh_^bgyxsbc� i_j_^Z\Z_fu_� dhfihg_glZfb � TTable beb�TQuery�gZ[hju�^Zgguo��lZ[ebpu�b�aZijhku��k�\bamZevgufb�dhfihg_glZfb �ihev�ah\Zl_evkdh]h�bgl_jn_ckZ��<-lj_lvbo��\bamZevgu_�dhfihg_glu�^ey�kha^Zgby�lZ�dh]h�bgl_jn_ckZ, hlh[jZ`Zxsb_�gZ[hju�^Zgguo�jZaebqgufb�kihkh[Zfb��\�\b^_�lZ[ebp��wdjZgguo�nhjf�b�^j���ih�\u[hjm�ihevah\Zl_ey��

Page 5: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

5

�<�ijhkl_cr_f�kemqZ_�bkihevamxlky�ljb�dhfihg_glZ�TTable, TDataSource b�TDBGrid.�JZkkfhljbf�f_lh^bdm�bo�bkihevah\Zgby��

Dhfihg_gl�TTable hibku\Z_l� eh]bq_kdmx� \bjlmZevgmx� lZ[ebpm� -� h[jZa�nbabq_kdhc�lZ[ebpu��nZceZ�^Zgguo���K_cqZk�i_j_qbkebf�lhevdh�hkgh\gu_,�\k_�]^Z�bkihevam_fu_��k\hckl\Z TTable, ̂ hklmigu_�q_j_a�bgki_dlhj�h[t_dlh\�

DataBaseName,�lbi String - kh^_j`bl�eb[h�ZebZk�[Zau�^Zgguo��eb[h�ihe�gmx�ki_pbnbdZpbx�dZlZeh]Z��]^_�gZoh^ylky�nZceu�;>�

TableName: TFileName - bfy� lZ[ebpu��Wlb� ^\Z� k\hckl\Z� ij_^gZagZq_gu�^ey�ijb\yadb�TTable d�nbabq_kdhc�lZ[ebp_�q_j_a�BDE.

Name - bfy� wda_fieyjZ� dhfihg_glZ� \� ijh]jZff_��Ih� mfheqZgbx� bf__l�agZq_gb_�Table1.

Active��lbi�Boolean - mklZgh\dZ�Active \�True hldju\Z_l�lZ[ebpm�b�^_eZ_l�__�^hklmighc�^ey�ijhkfhljZ��Ih�mfheqZgbx�- False.

<Z`g_crb_�^hihegbl_evgu_ k\hckl\Z: IndexName: String - bfy�Zdlb\gh]h�\lhjbqgh]h�bg^_dkZ� IndexFieldNames: String - dexq_\h_�ihe_�Zdlb\gh]h�bg^_dkZ� Ijbf_qZgby� 1. Wlb�^\Z�k\hckl\Z�\aZbfhbkdexqZxsb��^ey�mihjy^hq_gby�lZ[ebpu�ke_�

^m_l�mdZau\Zlv�eb[h�h^gh��eb[h�^jm]h_� 2. ?keb�gb�h^gh�ba�gbo�g_�mdZau\Zlv��lh��lZ[ebpZ�[m^_l�Z\lhfZlbq_kdb�mih�

jy^hq_gZ�ih�i_j\bqghfm�bg^_dkm� 3. <�IndexName�mdZau\Z_lky�bfy�\lhjbqgh]h�bg^_dkZ���Z�\�IndexFieldNames

-�dexq_\u_�ihey��dZd�i_j\bqgh]h��lZd�b�\lhjbqgh]h�bg^_dkh\� 4. ?keb�bg^_dk� y\ey_lky� khklZ\guf�� lh�\� k\hckl\_� IndexFieldNames�i_j_�

qbkeyxlky�q_j_a�lhqdm�k�aZiylhc�ihey��ba�dhlhjuo�hg�khklhbl� 5. <�bgki_dlhj_�h[t_dlh\�agZq_gby�k\hckl\Z�\u[bjZxlky�k�ihfhsvx�dhf�

[bgbjh\Zggh]h�kibkdZ��\�dhlhjhf�^ey�dZ`^hc�lZ[ebpu�i_j_qbke_gu�\k_�^hklmigu_�bg^_dku�

MasterSource: TDataSource - kh^_j`bl�bfy�dhfihg_glZ�TDataSource, hib�ku\Zxs_]h�]eZ\gmx�lZ[ebpm�^ey�^Zgghc�lZ[ebpu�

MasterFields: String - bfy�ihey��ih�dhlhjhfm�mklZgZ\eb\Z_lky� k\yav�k�]eZ\�ghc�lZ[ebp_c�

Filter: String -�eh]bq_kdh_�mkeh\b_�nbevljZpbb�aZibk_c�ijb�ijhkfhlj_� Filtered: Boolean - mklZgh\dZ� \� True Zdlb\babjm_l� nbevlj�� AgZq_gb_� ih�

mfheqZgbx�– False. Ihke_� ihf_s_gby� dhfihg_glh\� gZ� nhjf_� ke_^m_l� mklZgh\blv� k\hckl\Z�

h[t_dlZ�TTable (DataBaseName b TableName)��k\yau\Zxsbo�_]h�k�j_Zevghc�lZ[�ebp_c�

Ke_^mxsbc� wlZi� -� k\yau\Zgb_� h[t_dlZ� TDataSource c h[t_dlhf� TTable. >ey�wlh]h�gZ^h�mdZaZlv�\ _]h�k\hckl\_��DataSet: TDataSet bfy��agZq_gb_�k\hckl\Z��Name��wda_fieyjZ�TTable.

AZ^ZqZ�dhfihg_glZ�TDBGrid (©k_ldZ�^Zgguoª��-�hlh[jZ`_gb_�b�j_^Zdlbjh�\Zgb_�^Zgguo�gZ� wdjZg_�\� lZ[ebqghf�\b^_��Qlh[u�k\yaZlv�DBGrid k�^Zggufb��

Page 6: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

6

gZ^h�mdZaZlv�\�_]h�k\hckl\_�DataSource bfy�dhfihg_glZ�TDataSource, q_j_a�dh�lhjuc�i_j_^Zxlky�^Zggu_�

;eZ]h^Zjy� bkihevah\Zgbx� dhfihg_glZ� TDataSource dhfihg_gl� TDBGrid klZgh\blky�[he__�ki_pbZebabjh\Zgguf ��Z�ke_^h\Zl_evgh��[he__�ijhkluf�b�m^h[�guf��?]h�aZ^ZqZ�-�lhevdh�\bamZevgh_�ij_^klZ\e_gb_�^Zgguo��TDBGrid g_�aZ\bkbl�gb�hl�nhjfZlZ�nZceh\��gb�hl�bf_gb�dhgdj_lghc�lZ[ebpu��_]h�©agZ_lª�Table), gb�hl�dhgdj_lgh]h�lbiZ�gZ[hjZ�^Zgguo�-�lZ[ebpu�beb�aZijhkZ�

EZ[hjZlhjgZy�jZ[hlZ���1.�Kha^Zgb_�ijhklhc�nhjfu�;>� IjhklZy�nhjfZ�bkihevam_lky�^ey�jZ[hlu�k�h^ghc�lZ[ebp_c�� 1. Hldjhcl_�gh\uc�ijh_dl�k�imklhc�nhjfhc� 2. JZaf_klbl_� gZ� nhjf_� dhfihg_glu� TTable b� TDataSource. Bo� fh`gh�

gZclb�gZ�kljZgbp_�Data Access�iZeblju�dhfihg_glh\��Wlh�-�g_\bamZevgu_�dhf�ihg_glu��gZ�nhjf_�hgb�bah[jZaylky�\�\b^_�ibdlh]jZff��Z�\h�\j_fy�\uiheg_gby�\b^gu�g_�[m^ml��

3. <u[_jbl_�dhfihg_gl�Table1 b�hldjhcl_�kibkhd�ik_\^hgbfh\�\�k\hckl\_�DataBaseName. MklZgh\bl_�ik_\^hgbf�DBDemos.

4. <\_^bl_�bfy�lZ[ebpu�TableName ba�DBDemos. ?keb�ik_\^hgbf�[ue�aZ�^Zg�ijZ\bevgh��lh�\�kibkd_�\hafh`guo�agZq_gbc�k\hckl\Z�TableName ihy\ylky�bf_gZ�\k_o�lZ[ebp�ba�^Zggh]h�dZlZeh]Z��<u[_jbl_�gm`gmx, gZijbf_j��country.db �klZlbklbq_kdb_�^Zggu_�h�]hkm^Zjkl\Zo��Zf_jbdZgkdh]h�dhglbg_glZ���

5. <u[_jbl_�dhfihg_gl DataSource1��K\y`bl_�_]h�k�Table1��mdZaZ\�bfy�Ta-ble1 \�k\hckl\_ DataSet.

Jbk��1

Page 7: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

7

6. JZaf_klbl_�dhfihg_gl�TDBGrid (kljZgbpZ� Data Control iZeblju�dhfih�g_glh\���K\y`bl_� _]h� k�DataSource1��mdZaZ\�bfy�DataSource1 \�k\hckl\_�Data-Source.�IjZ\bevghklv�k\yau\Zgby��dhfihg_glh\�ijh\_jvl_�ih�jbk�1.

7. �MklZgh\bl_�k\hckl\h�Active h[t_dlZ�Table1 \�True.�LZ[ebpZ�hldjh_lky�b�__�kh^_j`bfh_�hlh[jZablky�\�k_ld_�^Zgguo�(DBGrid).

���Hldhfibebjmcl_ �b�\uihegbl_�ijbeh`_gb_��� ���MklZgh\bl_�Active \�False��Z�\�h[jZ[hlqbd�kh[ulby�kha^Zgby�nhjfu�On-

Create \klZ\vl_�Table1.Open. L_i_jv�lZ[ebpZ�hldjh_lky�lhevdh�\h�\j_fy�\uihe�g_gby�ijbeh`_gby��Qlh[u�wlh�ijh\_jblv��ih\lhjbl_�rZ]���

QZklh�[u\Z_l�m^h[gh�ijhkfZljb\Zlv�b�j_^Zdlbjh\Zlv�lZ[ebpm�\�\b^_�g_�kdhevdbo�kljhd��dZ`^Zy�ba�dhlhjuo�hlh[jZ`Z_l�h^gh�ihe_�l_dms_c�aZibkb���>ey�wlhc�p_eb�ij_^gZagZq_g�dhfihg_gl�TDBEdit (kljZgbpZ�Data Control)��GZ�nhjf_�ke_^m_l� jZaf_klblv� klhevdh� h[t_dlh\�TDBEdit�� kdhevdh� ihe_c�<u� ohlbl_�ijh�kfZljb\Zlv�� Wda_fieyj� k\yau\Z_lky� k� ihe_f� k� ihfhsvx� ^\mo� k\hckl\: Data-Source (a^_kv� mdZau\Z_lky� wda_fieyj� h[t_dlZ-bklhqgbdZ� ^Zgguo�� b� DataField (mdZau\Z_lky�bfy�ijhkfZljb\Z_fh]h�ihey��

>ey�hlh[jZ`_gby�]jZnbq_kdbo�ihe_c��lbiZ�Graphics, Blob) b�l_dklh\uo�ihe_c��lbiZ�Memo) ij_^klZ\e_gu�\bamZevgu_��dhfihg_glu�TDBImage b� TDBMemo��khhl\_lkl\_ggh�

�I_j_f_s_gb_�ih�aZibkyf�lZ[ebpu�m^h[gh�hj]Zgbah\Zlv�k�ihfhsvx�dhf�ihg_glZ�TDBNavigator. <g_rgbc�\b^�wlh]h�\bamZevgh]h�dhfihg_glZ�gZihfbgZ_l�iZg_ev�mijZ\e_gby�ie__jZ. <�qZklghklb��a^_kv�ijbkmlkl\mxl�dghidb�i_j_oh^Z�gZ�ke_^mxsmx�b�ij_^u^msmx�aZibkb��gZ�i_j\mx��b�ihke_^gxx�aZibkb��\klZ\db�gh\hc�aZibkb�b�^j��

<k_�gZa\Zggu_�dhfihg_glu�k\yau\Zxlky�k�gZ[hjhf�^Zgguo�q_j_a�k\hb�k\hckl\Z�DataSource b�DataField.

EZ[hjZlhjgZy�jZ[hlZ���2��kZfhklhyl_evgZy� GZibrbl_�ijbeh`_gb_�^ey�ijhkfhljZ�lZ[ebpu biolife.db��kh^_j`Zs_c�l_d�

klh\u_� b� ]jZnbq_kdb_� ^Zggu_�� <f_klh� TDBGrid bkihevamcl_� TDBEdit, TDBImage, TDBMemo b�TDBNavigator. >ey�b^_glbnbdZpbb�ihe_c�i_j_^�dZ`^uf�\bamZevguf�dhfihg_glhf�ihf_klbl_�h[t_dl�TLabel k�ih^ibkvx��Ijbf_jguc j_�amevlZl�jZ[hlu�ijbeh`_gby�^he`_g�bf_lv�\b^�jbk�2.

Page 8: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

8

Jbk�2

1.3. MklZgh\e_gb_�k\ya_c�f_`^m�lZ[ebpZfb

Kha^Zgb_�h^ghk\yaghc�nhjfu. H^ghk\yagZy�nhjfZ�kh^_j`bl�^\_�lZ[ebpu� -�]eZ\gmx�b�ih^qbg_ggmx��dhlhju_�k\yaZgu�f_`^m�kh[hc�q_j_a�h^bgZdh\u_�ihey��Ih^qbg_ggZy��lZ[ebpZ�h[yaZl_ev�gh� ^he`gZ� [ulv� ijhbg^_dkbjh\ZgZ � ih� k\yamxs_fm� ihex��GZijbf_j�� ]eZ\gZy�lZ[ebpZ�kh^_j`bl�ihegu_�k\_^_gby�h�aZdZaqbdZo��Z�ih^qbg_ggZy�-�h�aZdZaZo��bfb�k^_eZgguo��H^ghfm�aZdZaqbdm�fh`_l�khhl\_lkl\h\Zlv�g_kdhevdh�kljhd�\�ih^qb�g_gghc� lZ[ebp_�� h^gZdh� lZf� hg� ij_^klZ\e_g� ebrv� k\hbf� mq_lguf� ghf_jhf�CustNo. Ihe_�CustNo \u[bjZ_lky�\�dZq_kl\_��k\yamxs_]h�ihey�

>ey�kha^Zgby�k\yab�\�dhfihg_gl_�TTable�ih^qbg_gghc�lZ[ebpu�g_h[oh^b�fh�^hihegbl_evgh �aZ^Zlv�agZq_gby�k\hckl\�MasterSource (bfy�dhfihg_glZ�Data-Source ]eZ\ghc�lZ[ebpu), MasterField (bfy�k\yamxs_]h�ihey�]eZ\ghc�lZ[ebpu���IndexFieldNames (bfy�Zdlb\gh]h�bg^_dkgh]h�ihey�^ey�ih^qbg_gghc�lZ[ebpu��\�dZq_kl\_�dhlhjh]h�\u[bjZ_lky�k\yamxs__�ihe_��

Hlf_lbf��qlh�aZibkb�\�ih^qbg_gghc�lZ[ebp_�^hihegbl_evgh �nbevljmxlky�ih�mkeh\bx� kh\iZ^_gby�h^ghbf_gguo�ihe_c��Ihwlhfm�\�ih^qbg_gghc� lZ[ebp_�ihdZau\Zxlky�lhevdh�aZdZau��k^_eZggu_�l_dmsbf�aZdZaqbdhf�ba�]eZ\ghc�lZ[eb�pu�

EZ[hjZlhjgZy�jZ[hlZ���3 Kha^Z^bf�ijbeh`_gb_��hlh[jZ`Zxs__�^Zggu_�ba�^\mo�k\yaZgguo�lZ[ebp�-

]eZ\ghc�customer.db b�ih^qbg_gghc�orders.db.

Page 9: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

9

1. JZaf_klbl_� \� hdg_� nhjfu� ^\Z� dhfie_dlZ� dhfihg_glh\� TTable, TDataSource� b� TDBGrid � �ih� h^ghfm� gZ� dZ`^mx� lZ[ebpm�� b� h^bg� dhfihg_gl�DBNavigator�^ey�]eZ\ghc�lZ[ebpu�

2. K\y`bl_�dhfihg_glu�k�lZ[ebpZfb customer.db b�orders.db��dZd�wlh�^_eZ�ehkv�jZg__�

3. MklZgh\bl_� k\yav� f_`^m� lZ[ebpZfb�� aZ^Z\� agZq_gby� k\hckl\� Master-Source, MasterField, IndexFieldNames ^ey� ih^qbg_gghc� lZ[ebpu��Ko_fZ� mklZ�gh\e_gby�k\ya_c�ijb\_^_gZ�gZ�jbk��3.

4. Hldhfibebjmcl_ �b�\uihegbl_�ijbeh`_gb_� 5. Kha^Zcl_�ZgZeh]bqgh_�ijbeh`_gb_�k�ihfhsvx�mlbeblu�Wdki_jlZ�nhjf�

[Za�^Zgguo��imgdl�f_gx�Help).

Jbk��3

EZ[hjZlhjgZy�jZ[hlZ���4��kZfhklhyl_evgZy�� Kha^Zgb_� fgh]hk\yaghc� nhjfu�� Kha^Zcl_� nhjfm�� kh^_j`Zsmx� ljb� k\y�

aZggu_�lZ[ebpu��I_j\Zy�lZ[ebpZ�Customer.db y\ey_lky�]eZ\ghc�� �k�g_c�k\yaZgZ�ih^qbg_ggZy�lZ[ebpZ�Orders.db, dhlhjZy��\�k\hx�hq_j_^v��y\ey_lky�]eZ\ghc�lZ[�ebp_c�^ey�Items.db.�<�lZ[ebp_�Items kh^_j`Zlky�oZjZdl_jbklbdb�aZdZah\��H[sZy�f_lh^bdZ�lZdZy�`_��dZd�b�ijb�kha^Zgbb�h^ghk\yaguo�nhjf��>ey�k\yab�lZ[ebp�Or-ders�b�Items bkihevamcl_�ihe_�OrderNo.

Page 10: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

10

�����Fh^meb�^Zgguo

JZg__� fu� jZaf_sZeb� \k_� dhfihg_glu� ^hklmiZ� d� ^Zgguf� g_ihkj_^kl\_ggh� gZ�]eZ\ghc�nhjf_�ijbeh`_gby��H^gZdh�jZaf_s_gb_�gZ�h^ghc�nhjf_�[hevrh]h�dh�ebq_kl\Z�jZaghjh^guo�dhfihg_glh\�gZjmrZ_l�ijbgpbi�fh^mevghklb�b� aZljm^�gy_l�jZajZ[hldm��GZqbgZy�k�\_jkbb����, \�Delphi�ihy\beZkv�\hafh`ghklv�hdhgqZ�l_evgh�jZa^_eblv�\bamZevgu_�b�g_\bamZevgu_�dhfihg_glu�[Za�^Zgguo��\ug_ky�\k_�g_\bamZevgu_� dhfihg_glu�DataSet b DataSource \� ki_pbZevgmx�jZagh\b^�ghklv�nhjfu� -�fh^mev�^Zgguo� (Data Module)��LZdhc�fh^mev�kh^_j`bl�\kx�bg�nhjfZpbx�h�[Za_�^Zgguo��ojZgblky�hl^_evgh�gZ�^bkd_�b�fh`_l�[ulv�bkihevah�\Zg�jZaebqgufb�ijbeh`_gbyfb��<�hlebqb_�hl�h[uqghc�nhjfu��fh^mev�^Zgguo�g_�\b^_g�\h�\j_fy�\uiheg_gby�

<�qZklghklb��\�fh^me_�^Zgguo�p_e_khh[jZagh�ojZgblv�dhfihg_glu�TQuery kh� \kljh_ggufb� keh`gufb� aZijhkZfb�� g_kdhevdh� \ZjbZglh\� dhfihg_glh\ TTable c jZaebqgufb� lZ[ebpZfb�b�bg^_dkZfb�b� l�i�� �kf��ijbf_j�\�jZ[hl_� [5]). Bkihevah\Zgb_�fh^me_c�\h\k_�g_�h[yaZl_evgh; bo�ij_bfms_kl\Z� �ijhy\eyxlky��ij_`^_� \k_]h,� \� lj_oa\_gghc� Zjobl_dlmj_� ;>� [2], dh]^Z� h^bg�fh^mev� ^Zgguo��jZkiheh`_gguc� gZ� k_j\_j_� ijbeh`_gbc�� bkihevam_lky� fgh`_kl\hf� ©lhgdboª�deb_glkdbo�ijbeh`_gbc�gZ�jZ[hqbo�klZgpbyo.

Hlf_lbf�kjZam�`_�g_dhlhjmx�imlZgbpm�\�l_jfbgheh]bb��Fh^mev�^Zgguo (Data Module) b�ijh]jZffguc�fh^mev�(Unit) -�wlh�jZagu_�\_sb� Fh^mev�^Zgguo�-�wlh�jZagh\b^ghklv�nhjfu��b�^ey�g_]h�kms_kl\m_l�k\hc�Unit.

EZ[hjZlhjgZy�jZ[hlZ���� KgZqZeZ�jZkkfhljbf�i_j\uc� wlZi� -� kha^Zgb_�fh^mey�^Zgguo�gZ�ijbf_j_�

;>�ba�eZ[hjZlhjghc�jZ[hlu������ 1. Hldjhcl_�gh\uc�ijh_dl� 2. <u[_jbl_�File | New… Data Module. Ihy\blky�gh\h_�fZe_gvdh_�hdgh� -

fh^mev�^Zgguo��Ihf_klbl_�TTable b�TDataSource \�fh^mev�^Zgguo��K\y`bl_�wlb�dhfihg_glu�b�mklZgh\bl_�gm`gu_�k\hckl\Z��dZd�h[uqgh��

3. Baf_gbl_�gZa\Zgb_�nhjfu��k\hckl\h�Name) - CountryTables. 4. I_j_c^bl_�d�hdgm�dh^Z��AZf_lvl_��qlh�gh\uc�ijh]jZffguc� �fh^mev�gZ�

au\Z_lky�Unit2, b�\�g_f�hibku\Z_lky�deZkk��ihjh`^_gguc�hl�TDataModule, Z�g_�hl�h[uqgh]h�TForm. <u[_jbl_�imgdl�File | Save As b�khojZgbl_�fh^mev�\�<Zr_f�dZlZeh]_�k�bf_g_f�CountryModule. LZf�ihy\ylky�^\Z�nZceZ�CountryModule.pas b�CountryModule.dfm.

5. <u[_jbl_�File | Close All. G_�khojZgycl_�ijh_dl� L_i_jv�kha^Zgguc�fh^mev�fh`_l�bkihevah\Zlvky�\�ex[hf�gh\hf�ijbeh`_�

gbb��jZ[hlZxs_f�k�lZ[ebp_c�Country.db��GZijbf_j���^ey�ih^dexq_gby�fh^mey�d��imklhfm�ijh_dlm�ijh^_eZcl_�ke_^mxsb_�^_ckl\by�

1. <u[_jbl_�imgdl�f_gx�File | New Application.

Page 11: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

11

2. <u[_jbl_�imgdl��f_gx�Project | Add to Project... b�gZc^bl_�gZ�^bkd_��jZ�g__�kha^Zgguc�fh^mev.�I_j_c^bl_�gZ� ]eZ\gmx�nhjfm�b�ih^dexqbl_�d�g_c�fh�^mev�^Zgguo��\u[jZ\�imgdl�File | Use Unit b�bfy�fh^mey�CountryModule. Khhl�\_lkl\mxsZy�^bj_dlb\Z�Use [m^_l�\klZ\e_gZ�\�fh^mev�Unit1 Z\lhfZlbq_kdb�

3. JZaf_klbl_�gZ�]eZ\ghc�nhjf_�h[t_dl�TDBGrid b�k\y`bl_�_]h�k TDataSource, mdZaZ\�\�khhl\_lkl\mxs_f�k\hckl\_� agZq_gb_ CountryTables.DataSource1.�Ijbeh`_gb_�]hlh\h��

I_j_^_eZcl_�k�bkihevah\Zgb_f�fh^me_c�^Zgguo�ijbeh`_gby�ba�eZ[hjZ�lhjguo�jZ[hl 1-4.

���GZ\b]Zpbhgguc�^hklmi�d�;>

<�Delphi ih^^_j`b\Zxlky�^\Z�kihkh[Z�^hklmiZ�d�[ZaZf�^Zgguo��I_j\uc�kihkh[��j_Zebah\Zgguc� dhfihg_glhf� TTable,� hkgh\Zg� gZ� i_j_f_s_gbb� ih� hl^_evguf�aZibkyf lZ[ebpu�� LZdhc� ih^oh^� gZau\Z_lky� gZ\b]Zpbhgguf� �Record-hjb_glbjh\Zgguf��� Dhfihg_gl� � TQuery�� gZijhlb\�� \ha\jZsZ_l� p_eu_� gZ[hju�^Zgguo�� ihemq_ggu_� ihke_� \uiheg_gby� hi_jZlhjh\� yaudZ� SQL. Wlh� - SQL-hjb_glbjh\Zgguc ��[he__�©j_eypbhggucª�ih^oh^��H^gZdh�h[Z�dhfihg_glZ�y\ey�xlky�ihlhfdZfb�deZkkZ�TDataSet��gZ[hj�^Zgguo��b�bf_xl�fgh]h�h[sbo�mgZke_�^h\Zgguo�hl TDataSet�gZ\b]Zpbhgguo�k\hckl\�b�f_lh^h\��dhlhju_�fh`gh�ijb�f_gylv�d�\ha\jZsZ_fhfm��gZ[hjm�^Zgguo��<�^Zgghf�jZa^_e_�fu�[m^_f�jZkkfZl�jb\Zlv��\�hkgh\ghf�� �bf_ggh� wlb�mgb\_jkZevgu_�k\hckl\Z�b�f_lh^u��ijbf_gyy�bo��[_a�h]jZgbq_gby�h[sghklb���d�dhfihg_glm�TTable��>ey�beexkljZpbb��_keb�g_�h]h\Zjb\Z_lky� ijhlb\gh_�� [m^_f� bkihevah\Zlv� ijbf_j� ijhklhc� ;>� ©AZdZauª��hibkZgghc�\�Ijbeh`_gbb�

�����JZ[hlZ�k�iheyfb�gZ[hjZ�^Zgguo DZd� \� ijh]jZff_� h[jZlblvky� d� dhgdj_lghfm� ihex� dhgdj_lghc� aZibkb? <h-i_j\uo��gZ^h�k^_eZlv�wlm�aZibkv�l_dms_c��dZd�wlh�k^_eZlv��kf�i�������>ey�^hklmiZ�d�dhgdj_lghfm�nbabq_kdhfm�ihex� � l_dms_c� aZibkb�ij_^gZagZq_g�deZkk�TField �eh]bq_kdh_�ihe_�. <�g_f�kh[jZgu� �bgdZikmebjh\Zgu��\k_\hafh`gu_�k\hckl\Z��f_lh^u�b�kh[ulby��dhlhju_�fh]ml�ihgZ^h[blvky�ijb�jZ[hl_��kh�klhe[phf�lZ[eb�pu��GZijbf_j��k\hckl\h�Value lbiZ�Variant1 ojZgbl�agZq_gb_�ihey��k\hckl\h�Dis-playLabel –� aZ]heh\hd� klhe[pZ�� k\hckl\h�DisplayFormat – nhjfZl�hlh[jZ`_gby�ihey�b�l�i��<f_klh�TField \�ijh]jZffZo�h[uqgh�bkihevamxlky�_]h�lbibabjh\Zg�gu_�ihlhfdb��ki_pbZevgh�ij_^gZagZq_ggu_�^ey�jZ[hlu�k�ihe_f�dhgdj_lgh]h�lb�iZ�^Zgguo���TStringField, TBooleanField, TDateField, TFloatField, TIntegerField b�^j����Lbi�^Zgguo�e_]dh�ihgylv�ih�gZa\Zgbx�deZkkZ�

1 Variant – lbi i_j_f_gguo� dhlhjuc fh`gh baf_gylv \h \j_fy \uiheg_gby ijh]jZffu� < i_j_f_ggmx lbiZ Vari-antfh`gh aZibkZlv agZq_gby ex[uo lbih\� ijbq_f nZdlbq_kdbc lbi i_j_f_gghc hij_^_ey_lky \ fhf_gl ijb�

k\Zb\Zgby� <ZjbZglgu_ i_j_f_ggu_ kh\f_klbfu k i_j_f_ggufb \k_o ^jm]bo lbih\� Ih^jh[g__ kf� \ [8].

Page 12: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

12

������Kha^Zgb_�h[t_dlh\-ihlhfdh\�TField Kms_kl\m_l�ljb�kihkh[Z�

1) K�ihfhsvx�j_^ZdlhjZ�ihe_c��MdZaZl_eb�gZ�h[t_dlu�TField \dex�qZxlky�\�hibkZgb_�nhjfu��Z�wda_fieyju�Z\lhfZlbq_kdb�kha^Zxlky�ijb�kha^Zgbb�nhjfu�b�mgbqlh`Zxlky�ijb�__� aZdjulbb. LZdb_�ihey�bgh]^Z g_�kh\k_f�ijZ�\bevgh�gZau\Zxl�klZlbq_kdbfb��Wlhl�kihkh[�m^h[_g�l_f��qlh�iha\hey_l�jZ[hlZlv�k�ihe_f�dZd�k�h[uqguf�dhfihg_glhf�b�j_^Zdlbjh\Zlv�_]h�k\hckl\Z�gZ�wlZi_��\b�amZevghc�jZajZ[hldb�

2) Ih� mfheqZgbx�� Wda_fieyju� TField� kha^Zxlky� Z\lhfZlbq_kdb� ijb�hldjulbb�lZ[ebpu� �\�iheghf� khhl\_lkl\bb� k�qbkehf�b� lbihf� __�nbabq_kdbo�ihe_c�� b� mgbqlh`Zxlky� ijb� __� aZdjulbb��Hlh[jZ`Zlvky� \� \bamZevguo� dhfih�g_glZo�[m^ml�\k_�ihey��bf_xsb_ky�\�lZ[ebp_�

3) Ijh]jZffgh�� l�_��k�ihfhsvx�kh[kl\_gguo�f_lh^h\-dhgkljmdlhjh\��OZjZdl_jbklbdb � ihe_c�� \j_fy� kha^Zgby� b� � \j_fy� m^Ze_gby� hij_^_eyxlky� ijh�]jZffbklhf��Wlhl� kihkh[� [he__� fhsguc�� gh�f_g__� m^h[guc�� lZd� dZd� hl� ijh�]jZffbklZ�hg�lj_[m_l��m\u!)�g_dhlhjhc��d\ZebnbdZpbb�

�������J_^Zdlhj�ihe_c

JZkkfhljbf�gZ�dhgdj_lghf�ijbf_j_�i_j\uc�kihkh[�kha^Zgby�ihey��<h�fgh]bo�kemqZyo�[u\Z_l�g_h[oh^bfh�h]jZgbqblv�qbkeh�ihe_c��baf_gblv�ihjy^hd�bo�ke_�^h\Zgby��baf_gblv�aZ]heh\db��^h[Z\blv�gh\u_�ihey��kh^_j`Zsb_�j_amevlZlu�\u�qbke_gbc�gZ^�bf_xsbfbky�iheyfb��GZijbf_j��\�lZ[ebp_�Country kha^Zlv�gh\h_�ihe_�Density (iehlghklv�gZk_e_gby�gZ�d\��df���LZdb_�\hafh`ghklb�ij_^hklZ\ey_l�Fields Editor (j_^Zdlhj�ihe_c�. J_^Zdlhj�ihe_c�jZ[hlZ_l�k�eh]bq_kdbfb�iheyfb��nbabq_kdb_� ihey� lZ[ebpu� hklZxlky� [_a� baf_g_gby�� Lbibabjh\Zggu_� h[t_dlu�TField�\dexqZxlky�\�hibkZgb_�nhjfu�b�l_f�kZfuf�klZgh\ylky�^hklmigufb�gZ�wlZi_�\bamZevghc�jZajZ[hldb�

EZ[hjZlhjgZy�jZ[hlZ������Kha^Zgb_�\uqbkey_fuo�ihe_c� 1. Hldjhcl_�gh\uc�ijh_dl��jZaf_klbl_�gZ�nhjf_�dhfihg_glu�TTable, TDa-

taSource b TDBgrid��K\y`bl_�wlb�dhfihg_glu��K\hckl\h�DataBaseName b�Table-Name m�TTable�mklZgh\bl_�\�DBDemos b�Country.db, khhl\_lkl\_ggh��JZaf_klbl_�TDBNavigator b�k\y`bl_�_]h�k�TDataSource.

2. >\Z`^u�s_edgbl_�gZ�h[t_dl_�Table1. Ihy\blky�hdgh�j_^ZdlhjZ�ihe_c, i_j\hgZqZevgh�imklh_��l�d��h[t_dlu�TField _s_�g_�kha^Zgu�

3. GZ`fbl_�ijZ\mx�dghidm�furb�b�\�ihy\b\r_fky�dhgl_dklghf�f_gx�\u�[_jbl_�imgdl�Add Fields. <�hdg_�Available Fields [m^ml�i_j_qbke_gu�\k_�nbabq_�kdb_�ihey�lZ[ebpu��<u[_jbl_�ba�gbo�l_�ihey��dhlhju_�<u�ohlbl_�hklZ\blv��gZ�ijbf_j��Name, Area, Population.�GZ`fbl_�Ok.

Page 13: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

13

4. <u[_jbl_�\�dhgl_dklghf�f_gx�imgdl�New Field��<�jZkdju\r_fky�hdg_�aZ^Zcl_�bfy�\uqbkey_fh]h�ihey�- Density b�_]h�lbi�- Float, mklZgh\bl_�neZ`hd�Calculated��GZ`fbl_�Hk�b�aZdjhcl_�j_^Zdlhj�ihe_c�

5. M[_^bl_kv�� qlh� h[t_dlu-ihlhfdb� TField \dexq_gu� \� hibkZgb_� deZkkZ�nhjfu��AZihfgbl_��dZd� kljhylky�bo�gZa\Zgby�b� lbi��JZkdjhcl_�dhf[bgbjh\Zg�guc� kibkhd� dhfihg_glh\� \� bgki_dlhj_� h[t_dlh\�� <u[_jbl_� h[t_dl� Ta-ble1Density.�Baf_gbl_� _]h� k\hckl\Z: DisplayLabel - Iehlghklv��DisplayFormat - 0.000. :gZeh]bqgh�baf_gbl_�aZ]heh\db�^jm]bo�ihe_c�

6. GZibrbl_� ke_^mxsbc� h[jZ[hlqbd� kh[ulby� OnCalcFields dhfihg_glZ�TTable (agZq_gby�ihe_c�^hklmigu�q_j_a�k\hckl\h�Value�h[t_dlh\�TField): procedure TForm1.Table1CalcFields(DataSet: TDataSet); begin Table1Density.Value:=Table1Population.value/Table1Area.Value end;

Jbk��

7. MklZgh\bl_�Active \�True. <uihegbl_�ijbeh`_gb_��J_amevlZl�_]h�jZ[hlu�[m^_l�bf_lv�\b^�jbk���� �������H[jZs_gb_�d�ihex F_lh^�dhfihg_glh\ TDataSet�k�gZa\Zgb_f� function FieldByName(const FieldName: String): TField;

^Z_l�mgb\_jkZevguc�kihkh[�h[jZs_gby�d�h[t_dlZf�TField, g_aZ\bkbfuc�hl�lh]h��dZdbf�h[jZahf�hgb�[ueb�kha^Zgu�

IZjZf_ljhf�f_lh^Z�y\ey_lky�gZa\Zgb_�ihey��Z�j_amevlZlhf�jZ[hlu��-�kkue�dZ�gZ�wda_fieyj�deZkkZ�TField ^ey�mdZaZggh]h�ihey��GZihfgbf��qlh�h[jZs_gb_�d�hl^_evguf� Zljb[mlZf�ihey� �aZ]heh\dm�� kh^_j`Zgbx�b�^j���ijhba\h^blky�q_j_a�

Page 14: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

14

k\hckl\Z�dhfihg_glZ�TField. GZijbf_j��qlh[u�baf_gblv�aZ]heh\hd�ihey Address \�lZ[ebp_�Cust ;>��“AZdZau”, �bkihevamcl_�dhgkljmdpbx: 7DEOH��)LHOG%\1DPH�µ$GGUHVV¶��'LVSOD\/DEHO� ¶:^j_k¶;

?keb�h[t_dl�[ue�kha^Zg�k�ihfhsvx�J_^ZdlhjZ�ihe_c��lh�d�g_fm�fh`gh�h[jZlvky�dZd�k�ihfhsvx�FieldByName��lZd�b�ih�bf_gb��Bfy�h[t_dlZ�kljhblky�ih�ijZ\bem��bfy�gZ[hjZ�^Zgguo�bfy�ihey��gZijbf_j� Table1Address.DisplayLabel:=’ :^j_k’;

D�agZq_gbx�ihey�fh`gh�h[jZlblvky�eb[h�k�ihfhsvx�k\hckl\Z�Value lbiZ Variant, eb[h�k�ihfhsvx�k\hckl\�AsNNN lbiZ�NNN��<�k\hckl\_�Value ojZgylky�agZq_gby�ke_^mxsbo�lbih\:

string ^ey�h[t_dlh\ TStringField, longInt ^ey�\k_o�p_euo�lbih\�h[t_dlh\�TField, double ^ey�\k_o�\_s_kl\_gguo�lbih\�TField, boolean ^ey�h[t_dlh\�lbiZ�TBooleanField TDataTime ^ey�h[t_dlh\�lbiZ�TDateField, TDateTimeField, TTimeField

H^gZ�ba�gZb[he__�qZkluo�aZ^Zq�-�hlh[jZ`_gb_�agZq_gby��ihey�\�\bamZevghf�dhf�ihg_gl_��gZijbf_j��TEdit��beb�h[jZlgZy�hi_jZpby��Ijb�ql_gbb�ijhbkoh^bl�ij_�h[jZah\Zgb_�agZq_gby�Value d�lbim�i_j_f_gghc��dm^Z� �hgh�[m^_l�aZibku\Zlvky��gZijbf_j� ^ey�p_eh]h�ihey�Kolvo Edit1.text:=Table1.FieldByName(‘Kolvo’).Value;

[m^_l�wd\b\Ze_glgh Edit1.text:=IntToStr(Table1.FieldByName(‘Kolvo’).Value);

Ijb�aZibkb�\�k\hckl\h Value ke_^m_l�ihfgblv��qlh�^ey�wlh]h�k\hckl\Z��\�hlebqb_�hl�h[uqguo�\ZjbZglguo�i_j_f_gguo��f_lh^� aZibkb�[m^_l�iulZlvky�ij_h[jZah�\Zlv� lbi� ijbk\Zb\Z_fhc� i_j_f_gghc� d� lbim� ihey�� mdZaZgghfm� \� lZ[ebp_� �kf��\ur_���b�wlh�fh`_l bgh]^Z�ijb\h^blv�d�hrb[dZf�\j_f_gb�\uiheg_gby��GZijb�f_j� ijZ\bevgu�h[jZs_gby Table1.FieldByName(‘Kolvo’).Value:=100; Table1.FieldByName(‘Kolvo’).Value:=Edit1.text; // ‘100’ Table1.FieldByName(‘Kolvo’).Value:=StrToInt(Edit1.text);//‘100’

b�hrb[hqgu�h[jZs_gby Table1.FieldByName(‘Kolvo’).Value:=Edit1.text; // ’01.01.80’ Table1.FieldByName(‘address’).Value:=100.

;he__�m^h[gu�b�[_ahiZkgu�k\hckl\Z�AsString: String, AsInteger: integer, AsFloat: Double, AsDateTime: TDateTime, AsCurrenty: Currenty�� ij_h[jZamxsb_� d� lbim�ihey��mdZaZgghfm�\�gZa\Zgbb (g_dhlhju_�dheebabb�a^_kv�fh]ml�[ulv� ©hleh\e_�guª� dhfibeylhjhf). <Z`guf� ijZdlbq_kdb� y\ey_lky� k\hckl\h� AsString deZkkZ�TField.�K�ihfhsvx�wlh]h�k\hckl\Z�fh`gh�h[jZsZlvky�d��[hevrbgkl\m�lbih\�dZd�d�kljhdh\uf�i_j_f_gguf��GZijbf_j�� Edit1.text:=Table1.FieldByName(‘Date’).AsString; Table1.FieldByName(‘Date’).AsString:=Edit1.text;//’10.10.89'

Page 15: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

15

<Z`gh�mqblu\Zlv: ¾� F_lh^�FieldByName \ha\jZsZ_l� kkuedm�gZ�h[t_dl�TField�� k\hckl\h�

Value ^ey�dhlhjh]h�bf_eh� lbi�Variant��ihwlhfm�ex[u_�ijbk\Zb\Zgby�k\hckl\m�Value \� ijb\_^_gguo� \ur_� ijbf_jZo� [ueb� jZaj_r_gu� dhfibeylhjhf� �^Zev�g_crb_�ijh[e_fu�k�ijb\_^_gb_f�lbih\�\h�\j_fy�\uiheg_gby�ijh]jZffu�dhf�ibeylhjZ�m`_�g_�dZkZxlky��

¾� >ey�lbibabjh\Zgguo�h[t_dlh\-ihlhfdh\�TField��d�dhlhjuf�\k_]^Z�hlghkylky�©klZlbq_kdb_ª�ihey��k\hckl\h Value�ihebfhjngh�i_j_hij_^_ey_lky�b�bf__l�m`_�dhgdj_lguc�lbi��Ihwlhfm�ijbk\Zb\Zgb_ Table1Kolvo.Value := Edit1.text; \uah\_l�hrb[dm�dhfibeypbb��^h]Z^Zc�l_kv��dZdmx���IjZ\bevgh�^ey�©klZlbq_kdboª�ihe_c��[m^_l Table1Kolvo.Value := StrToInt(Edit1.text); beb Table1Kolvo.AsString := Edit1.text;

Qlh[u�h[jZlblvky�d�agZq_gbx�ihey��fh`gh��lZd`_�bkihevah\Zlv�k\hckl\h� property FieldValues [F: string]: variant,

y\eyxs__ky�k\hckl\hf�©ih�mfheqZgbxª�gZ[hjh\�^Zgguo��gZijbf_j�� 7DEOH���)LHOG9DOXHV�>µ$GGUHVV¶@� ¶Fhkd\Z¶� beb 7DEOH�>µ$GGUHVV¶@� ¶Fhkd\Z¶�

JZ[hlZlv� k� FieldValues� ke_^m_l� lZd�`_� hklhjh`gh�� dZd� b� kh� k\hckl\hf�Value: Variant. �������Ihemq_gb_�bgnhjfZpbb�h�iheyo <h�\j_fy�jZ[hlu�ijh]jZffu�\k_]^Z�_klv�jbkd�h[jZlblvky�d�g_kms_kl\mxs_fm�ihex�lZ[ebpu��Bgh]^Z�a^_kv�ihfh]Z_l�dhfihg_gl�TFieldDefs gZ[hjZ�^Zgguo��kh�^_j`Zsbc��bgnhjfZpbx��h�qbke_�b�oZjZdl_jbklbdZo �nbabq_kdbo�ihe_c�lZ[ebpu��k\yaZgghc�k�wlbf�G>��

H[jZlblvky�d�TFieldDefs fh`gh�q_j_a�k\hckl\h�G>� property FieldDefs: TFieldDefs,

\ha\jZsZxs__�kkuedm�gZ�wda_fieyj�TFieldDefs. K\hckl\Z�TFieldDefs:

property Count: integer; �<ha\jZsZ_l�qbkeh�h[t_dlh\�TFieldDef,�dZ`^uc�ba�dhlhjuo�hibku\Z_l�dhgdj_lgh_�ihe_�lZ[ebpu� property Items[Index: Integer]: TFieldDef; Kh^_j`bl� gZ[hj� h[t_dlh\�TFieldDef. Index baf_gy_lky�hl�0 ̂ h�Count-1.

K\hckl\Z�TFieldDef: property DataType: TFieldType; <ha\jZsZ_l�lbi�ihey��dh^bjh\Zgguc�bf_�gh\Zggufb�dhgklZglZfb� property FieldNo: Integer ; <ha\jZsZ_l�nbabq_kdbc�ghf_j�ihey�\�lZ[ebp_� property Required: Boolean; <ha\jZsZ_l�True, _keb�ihe_�lj_[m_l�h[yaZl_ev�gh]h�aZiheg_gby�

Page 16: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

16

property Size: Integer; <ha\jZsZ_l�jZaf_j�ihey�\�[ZclZo��>ey�[hevrbgkl\Z�qbkeh\uo�lbih\�jZaf_j�ihey�g_�aZ^Z_lky�b�hij_^_ey_lky�lbihf�ihey�

OZjZdl_jbklbdb� eh]bq_kdbo�ihe_c� �h[t_dlh\�TField) fh`gh�magZlv� k�ih�fhsvx�kj_^kl\��yaudZ�Object Pascal ̂ey�ijh\_jdb�lbiZ�\j_f_gb�\uiheg_gby�

EZ[hjZlhjgZy�jZ[hlZ���

���JZaf_klbl_�gZ�nhjf_�b�kh_^bgbl_�dhfihg_glu�TTable (bfy T1), TData-

Source, TDBgrid�� K\y`bl_� T1 k� dZdhc-gb[m^v� lZ[ebp_c� b� mklZgh\bl_� Active \�True. JZaf_klbl_�dhfihg_gl�TComboBox k�bf_g_f�CB1�b�ljb�iZju�dhfihg_glh\�TLabel b�TEdit.

2.�Kha^Zcl_�h[jZ[hlqbdb ke_^mxsbo�kh[ulbc� OnCreate ̂ey�nhjfu:

procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin // �AZiheg_gb_�kibkdZ�bf_gZfb�nbabq_kdbo�ihe_c for i:=0 to Table1.FieldDefs.Count-1 do cb1.Items.add(T1.FieldDefs.Items[i].Name); end;

OnChange ^ey�CB1: procedure TForm1.CB1Change(Sender: TObject); begin // �Hij_^_e_gb_�lbih\�eh]bq_kdbo�ihe_c Edit1.text :=T1.FieldByName(CB1.text).AsString; Edit2.text := T1.FieldByName(CB1.text).ClassName; // Hij_^_e_gb_�lbih\�agZq_gbc if VarType(T1.FieldByName(cb1.text).value)=VarDate then Edit3.text :='TDate' else if VarType(T1.FieldByName(cb1.text).value)=VarInteger then

Edit3.text :='VarInteger' else if VarType(T1.FieldByName(cb1.text).value)=VarDouble then Edit3.text :='VarDouble' else if VarType(T1.FieldByName(cb1.text).value)=VarString then Edit3.text :='VarString' end;

���Ihke_�dhfibeypbb�b�aZimkdZ�\u[_jbl_�bfy�ihey�\�dhf[bgbjh\Zgghf �kibkd_��ijb�wlhf�hdgh�ijh]jZffu�ijbf_l�\b^

Page 17: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

17

Jbk��

���>hjZ[hlZcl_�ijh]jZffm��qlh[u�hgZ�ihdZau\ZeZ� khklZ\�b�oZjZdl_jbklb�db�nbabq_kdbo�ihe_c (k\hckl\h FieldDefs: TFieldDefs G>), Z lZd`_�khklZ\�b�oZ�jZdl_jbklbdb�eh]bq_kdbo ihe_c (k\hckl\h Fields [index: integer]: TField G>). Bfy�ihey,�k�dhlhjuf�k\yaZg�h[t_dl�TField, kh^_j`blky�\��_]h�k\hckl\_�Field-Name: string; bfy�h[t_dlZ��dZd�h[uqgh��kh^_j`blky�\�k\hckl\_�Name.�Qbkeh�eh�]bq_kdbo�ihe_c�fh`gh�magZlv��bkihevamy�k\hckl\h�G>�FieldCount: integer;

���>hjZ[hlZcl_�ijh]jZffm��qlh[u�hgZ�fh]eZ�\h�\j_fy�\uiheg_gby�hldju�\Zlv�ex[mx�lZ[ebpm�ba�[Zau�^Zgguo�k�ex[uf�aZj_]bkljbjh\Zgguf�ZebZkhf���MdZaZgb_: bkihevamcl_�dhfihg_gl�TSession.)

������GZ\b]Zpby�ih�gZ[hjm�^Zgguo

L_dmsZy�aZibkv�–�wlh�aZibkv�� �^hklmigZy�\�^Zgguc�fhf_gl�^ey�ijhkfhljZ� �beb�fh^bnbdZpbb��>ey� ^hklmiZ� d� dhgdj_lghfm� ihex� l_dms_c� aZibkb� g_h[oh^bfh�h[jZlblvky�d�wda_fieyjm�h[t_dlZ�TField ̂ Zggh]h�ihey��MdZaZl_ev�l_dms_c�aZib�kb� �gZau\Z_lky�dmjkhjhf�gZ[hjZ�^Zgguo��>ey�baf_g_gby�dmjkhjZ� �G>�ij_^gZ�agZq_gu�ke_^mxsb_�f_lh^u h[t_dlh\�TDataSet: procedure First; I_j_^\b]Z_l�dmjkhj�d�i_j\hc�aZibkb�G>� procedure Last; I_j_^\b]Z_l�dmjkhj�d�ihke_^g_c�aZibkb�G>� procedure Next ; �I_j_f_sZ_l�dmjkhj�gZ�h^gm�aZibkv�\gba� procedure Prior; I_j_f_sZ_l�dmjkhj�gZ�h^gm�aZibkv�\\_jo� K\hckl\h� BOF: Boolean�mklZgZ\eb\Z_lky�\�True��dh]^Z�dmjkhj�gZoh^blky�gZ�i_j�\hc�aZibkb��Z�k\hckl\h�EOF: Boolean mklZgZ\eb\Z_lky�\�True, dh]^Z�dmjkhj�gZ�oh^blky�gZ�ihke_^g_c�aZibkb� K\hckl\h�RecordCount \ha\jZsZ_l�qbkeh�aZibk_c�\�G>� F_lh^ function MoveBy (n: integer): integer;

i_j_f_sZ_l�dmjkhj�gZ�n aZibk_c�d�dhgpm�gZ[hjZ�^Zgguo��n>0) beb�d�gZqZem�gZ�[hjZ��n<0).

Page 18: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

18

Ke_^m_l�ihfgblv��qlh�i_j_f_s_gb_�ijhbkoh^bl�\�khhl\_lkl\bb�k�eh]bq_�kdbf�ihjy^dhf�aZibk_c��hij_^_ey_fuf�Zdlb\guf�bg^_dkhf� �kf�i�������dhlhjuc�fh`_l�hlebqZlvky�hl�nbabq_kdh]h�ihjy^dZ��Ihwlhfm��qlh[u�g_�aZimlZlvky��ijb�gZ\b]Zpbb�g_evay�baf_gylv�ihe_��hij_^_eyxs__�Zdlb\guc�bg^_dk��Djhf_�lh]h��ijb�Zdlb\babjh\Zgghf�nbevlj_��kf�i�������i_j_f_s_gb_�ijhbkoh^bl�\gmljb�h[�eZklb�G>��m^h\e_l\hjyxs_c�mkeh\bx�nbevljZ��GZijbf_j��f_lh^�Last i_j_c^_l�g_� gZ� ihke_^gxx�nbabq_kdmx� aZibkv�� Z� gZ� ihke_^gxx� aZibkv�� h]jZgbq_ggmx�

mkeh\b_f�nbevljZ� >ey�i_j_f_s_gby�ih�G>�\gba�gm`gh�\uihegblv�ke_^mxsb_�^_ckl\by:

with Table1 do begin First; while not EOF do begin �����^_ckl\b_�gZ^�l_dms_c�aZibkvx! Next; end; end;

>ey�i_j_f_s_gby�ih�G>�\\_jo: with Table1 do begin Last; while not BOF do begin ��^_ckl\b_�gZ^�l_dms_c�aZibkvx! Prior; end; end;

2.3. >_ckl\by�gZ^�l_dms_c�aZibkvx <hafh`ghklv�\g_k_gby�baf_g_gbc�\�G>� aZ\bkbl�hl� _]h� khklhygby��G_dhlhju_�hkgh\gu_�khklhygby�G>�hibkZgu�\�lZ[ebp_���

�������������������������������������������������������������������������LZ[ebpZ�� Khklhygb_ HibkZgb_ I_j_\h^�\�khklhygb_ dsInActive G>�aZdjul F_lh^�Close dsBrowse AZibkv�ijhkfZljb\Z_l�

ky��gh�g_�baf_gy_lky�(khklhygb_�ih�mfheqZ�gbx�

F_lh^� Open (hldju\Z_l� aZ�djuluc� G>); f_lh^� Post (nbdkbjm_l� gZ� ^bkd_� baf_�g_ggmx�aZibkv); f_lh^�Cancel �hlf_gy_l�baf_g_gby�

dsEdit L_dmsZy� aZibkv� j_^Zd�lbjm_lky

F_lh^�Edit

dsInsert <klZ\e_gZ� � beb� ^h[Z\�e_gZ�gh\Zy�aZibkv

F_lh^u�Insert�beb Append

dsFilter G>�nbevljm_lky K\hckl\h�Filtered:=False dsCal-cFields

Hij_^_eyxlky� \uqbk�ey_fu_� ihey�� Baf_g_�gby� \�G>� \ghkblvky�g_�fh]ml�

Page 19: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

19

K\hckl\h�State�� \ha\jZsZxs__� agZq_gby��ijb\_^_ggu_� \�i_j\hf� klhe[p_�lZ[ebpu��iha\hey_l�magZlv�l_dms__�khklhygb_�G>�

Ijb�j_^Zdlbjh\Zgbb�G>�g_ihkj_^kl\_ggh�\�k\yaZgghf�k�gbf�\bamZevghf�dhfihg_gl_��gZijbf_j TDBGrid��gZ[hj�^Zgguo i_j_\h^blky�\�khklhygb_�j_^Zd�lbjh\Zgby�Z\lhfZlbq_kdb��ijb�wlhf�k\hckl\h�AutoEdit dhfihg_glZ�TDataSource ^he`gh�[ulv�mklZgh\e_gh�\�True).

Ijb�fh^bnbdZpbb�G>�ba�ijh]jZffu�ke_^m_l�kgZqZeZ�\ua\Zlv�f_lh^u�Edit, Insert beb�Append��Z�ihke_�fh^bnbdZpbb�–�f_lh^�Post (aZdj_ie_gb_)�beb�Cancel �hlf_gZ���GZijbf_j� with Table1 do begin Edit; FieldByName(‘Address’).value:=’ Fhkd\Z’; Post; end;

Ijb�bkihevah\Zgbb�\bamZevguo�dhfihg_glh\�j_^Zdlbjh\Zgby� �gZijbf_j��

TDBGrid, TDBEdit��wlb�f_lh^u�\uau\Zxlky�Z\lhfZlbq_kdb. >ey�mklZgh\db�agZq_gbc�ihe_c�l_dms_c�aZibkb fh`gh�lZd`_�bkihevah\Zlv�

f_lh^ procedure SetFields(const V: array of const);

IZjZf_lj�V - hldjuluc�fZkkb\�k�we_f_glZfb�\ZjbZglgh]h�lbiZ1 [8]. F_lh^u�Edit b�Post \kljh_gu�\�SetFields��ihwlhfm�hl^_evgh�\uibku\Zlv�bo�g_�lj_[m_lky��GZijbf_j� Table1.SetFields ([5, ‘ B\Zgh\’, ‘ Fhkd\Z’]).

Lbi�b�ihjy^hd�we_f_glh\�^he`_g�khhl\_lkl\h\Zlv�lbim�b�ihjy^dm�ihe_c��ebr�

gb_�we_f_glu�\�fZkkb\_�g_�mqblu\Zxlky��^ey�g_^hklZxsbo�we_f_glh\�ihey�g_�f_gyxl�agZq_gby�

>ey�\klZ\db�gh\hc�aZibkb�b�aZiheg_gby�__�agZq_gbyfb�fh`gh�bkihevah�\Zlv�ZgZeh]bqguc�f_lh^ procedure InsertRecord(const V: array of const);

>ey�^h[Z\e_gby�–�f_lh^ procedure AppendRecord(const V: array of const);

F_lh^�EmptyTable m^Zey_l�\k_�aZibkb�ba�G>� >ey�m^Ze_gby��l_dms_c�aZibkb�kem`bl�f_lh^ Delete.

������NbevljZpby�gZ[hjZ�^Zgguo

NbevljZpby�G>�hagZqZ_l��qlh�ihevah\Zl_ex�[m^_l�\b^gZ�ebrv�qZklv�G>��m^h\�e_l\hjyxsZy�g_dhlhjhfm�eh]bq_kdhfm�mkeh\bx��gZau\Z_fhfm�mkeh\b_f�nbevl�jZpbb��Nbevlj�fh`_l�gZoh^blvky�\�Zdlb\ghf�beb�g_Zdlb\ghf�khklhygbb��<�i_j�

1 Hldjuluc fZkkb\ ijb i_j_^Zq_ \ ijhp_^mjm fh`_l bf_lv jZagh_ qbkeh we_f_glh\ b aZ^Z\Zlvky \ \b^_ kibkdZ

agZq_gbc \ d\Z^jZlguo kdh[dZo �gh g_ imlZlv k fgh`_kl\hf��� Const \ gZqZe_ hagZqZ_l� qlh fZkkb\ i_j_^Z_lky ihagZq_gbx (gh g_ q_j_a kl_d!). Const \ dhgp_ - qlh fZkkb\ \ZjbZglguc b _]h we_f_glu fh]ml bf_lv jZaguc lbi�

?s_ g_ aZimlZebkv? Lh]^Z ijh^he`bf�

Page 20: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

20

\hf�kemqZ_�k\hckl\h�Filtered: Boolean gZ[hjZ�^Zgguo�^he`gh�[ulv�mklZgh\e_gh�\�True. Ih�mfheqZgbx�nbevlj�\udexq_g�b�Filtered jZ\gh�False. Mkeh\b_�nbevl�jZpbb�fh`_l�[ulv�aZ^Zgh�^\mfy�kihkh[Zfb��<�i_j\hf�ba�gbo�bkihevam_lky�k\hc�kl\h Filter lbiZ String,�^hklmigh_�dZd�ijh]jZffgh��lZd�b�q_j_a�bgki_dlhj�h[t_d�lh\��GZijbf_j��ijb�aZ^Zgbb�mkeh\by Filter:=’Price>100’;

[m^ml� ^hklmigu� lhevdh� aZibkb� lh\Zjh\� k� p_ghc�� [hevr_c� ���� m�_�� <� mkeh\bb�fh`gh�ijbf_gylv�hi_jZlhju�hlghr_gby��lZdb_�`_��dZd�\�Pascal’_��b�eh]bq_kdb_�hi_jZlhju�AND, OR, NOT.

K\hckl\h FilterOptions: TFilterOptions iha\hey_l�aZ^Zlv�j_`bfu�nbevljZ�pbb��Ih� mfheqZgbx� FilterOptions=[] �� agZq_gb_� foCaseInsensitive bkihevam_lky��qlh[u�nbevljZpby�ijhbkoh^beZ�[_a�mq_lZ�j_]bkljZ�[md\��agZq_gb_� foNoPartial-Compare – qlh[u� nbevljZpby� ijhbkoh^beZ� ijb� mkeh\bb� lhqgh]h� kh\iZ^_gby�kljhd��D�kh`Ze_gbx��\�gug_�^hklmiguo�\_jkbyo��Delphi �Z�hiul�ihdZau\Z_l��qlh�lZd�[m^_l�b�\h�\k_o�ihke_^mxsbo�\_jkbyo�� wlh�k\hckl\h�g_�ihgbfZ_l�jmkkdbo�[md\��Ihwlhfm�ij_^ihqlbl_evguf �y\ey_lky�\lhjhc��[he__�]b[dbc�kihkh[�aZ^Zgby�mkeh\by�nbevljZpbb��k�bkihevah\Zgb_f�h[jZ[hlqbdZ�kh[ulby�OnFilterRecord.

Kh[ulb_��OnFilterRecord gZklmiZ_l�ijb�Zdlb\baZpbb�nbevljZ��l�_��ijb�mk�lZgh\d_�Filtered�\ True).�H[jZ[hlqbd�kh[ulby�bf__l�^\Z�iZjZf_ljZ: bfy�nbevl�jm_fh]h�gZ[hjZ�^Zgguo�DataSet: TDataSet b�iZjZf_lj�Accept: Boolean, \ha\jZ�sZxsbc� j_amevlZl� ijh\_jdb� mkeh\by� nbevljZpbb�� <� hlnbevljh\Zgguc� G>�\dexqZxlky� lhevdh� aZibkb��^ey� dhlhjuo�Accept bf__l� agZq_gb_�True.� �<gmljb�h[jZ[hlqbdZ�i_j_f_gghc�Accept ijbk\Zb\Z_lky�eh]bq_kdh_�mkeh\b_�nbevljZpbb��\�dhlhjhf�fh]ml�bkihevah\Zlvky�[h]Zlu_�kj_^kl\Z�Delphi ̂ ey�jZ[hlu�kh�kljhdZ�fb��GZijbf_j�

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept:=( 3RV�µB\¶��'DWD6HW>µ1DPH¶@� �); // Mkeh\b_�g_lhqgh]h�kh\iZ^_gby�kljhd end;

A^_kv�ba\_klgZy�<Zf�nmgdpby�Pos ijh\_jy_l��\klj_qZxlky�eb�\�gZqZe_�ih�

ey Name� [md\u� B\. (Ih� ih\h^m� ©g_ihgylghcª� aZibkb� DataSet[‘Name’]� kf��i����������Qlh[u�nbevlj�[ue�g_qm\kl\bl_e_g�d�j_]bkljm���gZ^h�aZibkZlv� Accept:=(Pos(‘ B<’, AnsiUpperCase(DataSet[‘Name’]))=1);

?keb�aZ^Zgu�mkeh\by�b�\�k\hckl\_��Filter��b�\�h[jZ[hlqbd_ OnFilterRecord, lh�hgb�h[Z�mqblu\Zxlky�

Nbevlju� bkihevamxlky�� \� hkgh\ghf�� ^ey� ihbkdZ� aZibk_c�� gh� ihbkd� wlhl�\_kvfZ�f_^e_gguc��lZd�dZd�hkgh\Zg�gZ�ihke_^h\Zl_evghf�i_j_[hj_�aZibk_c��>ey�G>�TTable, ijb�\hafh`ghklb��ke_^m_l�bkihevah\Zlv�[he__�[uklju_�f_lh^u�bg�^_dkgh]h�ihbkdZ�

Page 21: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

21

�����Bg^_dku�b�bg^_dkguc�ihbkd

F_lh^u�� jZkkfhlj_ggu_�\�ij_^u^msbo�ih^jZa^_eZo��h^bgZdh\h�ijb]h^gu�^ey�gZ[hjh\�^Zgguo�TTable b�TQuery.�Bkihevah\Zgb_�bg^_dkh\�–�hkh[_gghklv�dhf�ihg_glZ�TTable.

������Kha^Zgb_�bg^_dkZ Bg^_dk�–�wlh�\kihfh]Zl_evgZy�kljmdlmjZ��hij_^_eyxsZy�eh]bq_kdh_�jZkiheh`_�gb_�aZibk_c�\�lZ[ebp_���>ey�h^ghc�lZ[ebpu�fh`_l�kms_kl\h\Zlv�g_kdhevdh�bg�^_dkh\� �aZ^Zxsbo�khjlbjh\dm�ih�jZaguf�iheyf���h^bg�ba�dhlhjuo�fh`_l�[ulv�Zdlb\guf��:dlb\guc�bg^_dk�baf_gy_l�ihjy^hd�ijhkfhljZ�b�gZ\b]Zpbb�\�lZ[eb�p_�

Ihe_��^ey�dhlhjh]h�kha^Zg�bg^_dk��gZau\Z_lky�bg^_dkguf�ihe_f,�beb�dex�qhf��Bg^_dk��kha^Zgguc�^ey mgbdZevgh]h�i_j\bqgh]h�dexqZ�lZ[ebpu��–�i_j\bq�guc�bg^_dk, bg^_dku��kha^Zggu_�ih�^jm]bf�iheyf��–�\lhjbqgu_�bg^_dku��>ey�lZ[ebp�Paradox i_j\bqguc�bg^_dk�^he`_g�kms_kl\h\Zlv,�bgZq_�g_\hafh`gh kha�^Zgb_�hklZevguo�bg^_dkh\��H[uqgh�\�dZq_kl\_�i_j\bqgh]h�dexqZ�\u[bjZxl�ih�e_��kh^_j`Zs__�mgbdZevguc�dh^��^ey�aZibkb��Bg^_dku�fh]ml�hij_^_eylvky�lZd`_�gZ�hkgh\_�khklZ\gh]h�dexqZ��khklhys_]h�ba�g_kdhevdbo�ihe_c�

Kha^Z\Zlv�bg^_dku�m^h[g__�\k_]h�k�ihfhsvx�mlbeblu�DBD (^ey�lZ[ebp�InterBase \iheg_�ijb]h^_g�SQL Explorer [5])��ijb�wlhf�mdZau\Zxlky�ihey��ih�dh�lhjuf�kljhblky�bg^_dk�b�bfy�bg^_dkZ��>ey�bg^_dkh\��ihkljh_gguo�ih�h^ghfm�ihex b�g_�bkihevamxsbo�dZdb_-eb[h�\uqbke_gby��bfy�bg^_dkZ�fh`_l�kh\iZ^Zlv�k�bf_g_f�ihey�

<gmljb�ijbeh`_gby�bg^_dk�kha^Z_lky�f_lh^hf procedure AddIndex(const Name, Fields: string; Options: TIndexOp-tions);

A^_kv�Name - bfy�gh\h]h�bg^_dkZ� Fields –�kibkhd�ihe_c��hij_^_eyxsbo�bg^_dk� �q_j_a� lhqdm� k� aZiylhc��� Options –�fgh`_kl\h� Zljb[mlh\� bg^_dkZ�� kh�klhys__�ba�agZq_gbc

· ixPrimary��i_j\bqguc�bg^_dk� · ixUnique��mgbdZevguc�bg^_dk� · isDescending��bg^_dk�ih�m[u\Zgbx) · ixCaseInsensitive��bg^_dk��g_qm\kl\bl_evguc�d�j_]bkljm) · ixExpression��\uqbkey_fuc�bg^_dk��lhevdh�^ey dBASE). I_j\bqgu_�bg^_dku�wlhl�f_lh^�g_�kha^Z_l��ohly�hipby�ixPrimary ij_^m�

kfhlj_gZ� I_j_^�kha^Zgb_f�bg^_dkZ�g_h[oh^bfh�m[_^blvky��qlh�gb�h^gh�ijbeh`_gb_�

g_�jZ[hlZ_l�k�;>�b�mklZgh\blv�k\hckl\h�Exclusive:=True. Ijbf_j: AddIndex(By_FIO_Address,’FIO;Address’,[ ]);

Kms_kl\mxsb_�bg^_dku�Zdlb\babjmxlky�k�ihfhsvx�k\hckl\Z�IndexName beb�IndexFieldNames (kf��ijbf_qZgby�d�i����).

Page 22: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

22

�������Ihemq_gb_�bgnhjfZpbb�h[�bg^_dk_

K\hckl\h�IndexDefs�lbiZ�TIndexDefs h[t_dlZ�TTable kh^_j`bl�\kx�bgnhjfZpbx�

h�kms_kl\mxsbo�bg^_dkZo�lZ[ebpu� G_dhlhju_� �k\hckl\Z��b�f_lh^u�deZkkZ TIndexDefs �iheguc�i_j_q_gv�kf��\�[3]): property Count: integer ; qbkeh�bg^_dkh\� property Items[Index: Integer]: TIndexDef; - gZ[hj�h[t_dlh\�lbiZ�TIn-dexDef��kh^_j`Zsbo�bgnhjfZpbx�h�dhgdj_lghf�bg^_dk_, procedure Updates; - h[gh\e_gb_�gZ[hjZ�TIndexDef k�mq_lhf�\gh\v�kha^Zgguo�bg^_dkh\� G_dhlhju_�k\hckl\Z��deZkkZ�TIndexDef: property Name: String; -�bfy�bg^_dkZ� property Fields: string; - kibkhd�ihe_c��\oh^ysbo�\�bg^_dk� property Options : TIndexOptions;

EZ[hjZlhjgZy�jZ[hlZ���

Kha^Z^bf�njZ]f_gl�ijh]jZffu��\�dhlhjhf�fh`gh�\u[bjZlv�Zdlb\gu_�bg^_dku�ba�knhjfbjh\Zggh]h �kibkdZ� 1. JZaf_klbl_�� dZd� h[uqgh�� ljb� dhfihg_glZ� ^ey� ^hklmiZ d� ;>�� k\yaZ\� bo� k�lZ[ebp_c�Cust��dhfihg_gl�ListBox b�Label. 2. Kha^Zcl_�h[jZ[hlqbdb�kh[ulby�OnCreate ^ey�nhjfu� �b�OnClick ^ey�List-Box1: procedure TForm1.FormCreate(Sender: TObject); var i: integer; begin ListBox1.Clear; Table1.IndexDefs.Update; for i:=0 to Table1.IndexDefs.Count-1 do ListBox1.Items.Add(Table1.IndexDefs[i].Name); end; procedure TForm1.ListBox1Click(Sender: TObject); begin Label1.Caption:= Table1.IndexDefs.Items[ListBox1.Itemindex].Fields; Table1.IndexName:=ListBox1.Items[ListBox1.ItemIndex]; end;

?keb�\k_�[ueh�k^_eZgh�ijZ\bevgh��lh�ihke_�aZimkdZ�ijbeh`_gb_�[m^_l�bf_lv�\b^�jbk���

<u[hj�kljhdb�\�kibkd_�baf_gbl�ihjy^hd�khjlbjh\db��H[jZlbl_�\gbfZgb_��qlh�i_j\bqguc�bg^_dk�g_�bf__l�bf_gb�b�h[hagZqZ_lky�imklhc�kljhdhc�

Page 23: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

23

Jbk��

�������Bg^_dkguc�ihbkd J_dhf_g^mxlky�^\Z�f_lh^Z�bg^_dkgh]h�ihbkdZ�FindKey b�FindNearest��I_j\uc�f_lh^��ij_^gZagZq_gguc �^ey�lhqgh]h�ihbkdZ��hibku\Z_lky�ke_^mxsbf�h[jZahf: function FindKey(const KeyValues: array of const): boolean;

IZjZf_lj�KeyValues aZ^Z_l�kibkhd�agZq_gbc�dexq_\uo�ihe_c��H[uqgh�wlh�lhevdh�h^gh�agZq_gb_��G_kdhevdh�agZq_gbc�bkihevamxlky�^ey�ihbkdZ�ih�khklZ\�ghfm�dexqm��F_lh^�ij_^iheZ]Z_l��qlh�g_h[oh^bfuc�bg^_dk�m`_�Zdlb\babjh\Zg�k�ihfhsvx�mklZgh\db�k\hckl\�IndexFieldNames beb�IndexName. <�kemqZ_�mki_r�

gh]h�ihbkdZ�f_lh^�\ha\jZsZ_l�True�b�i_j_f_sZ_l�mdZaZl_ev�gZ�gZc^_ggmx� aZ�ibkv��\�kemqZ_�g_m^Zqb�\ha\jZsZ_l�False.

<�hlebqb_�hl�g_]h��f_lh^�ijb[eb`_ggh]h�ihbkdZ procedure FindNearest (const KeyValues: array of const);

\k_]^Z�mki_r_g. Hg�gZoh^bl�aZibkv��agZq_gb_�bg^_dkgh]h�ihey�dhlhjhc�[hevr_�beb�jZ\gh�agZq_gbx KeyValues. Ih�mfheqZgbx�bkihevamxlky�i_j\bqgu_�bg^_d�ku� Qlh[u� ihbkd� ihke_^h\Zl_evgh� mlhqgyeky� ih� f_j_� \\h^Z� \k_� gh\uo� [md\��\klZ\vl_�\uah\�f_lh^Z�FindNearest�\�h[jZ[hlqbd�kh[ulby�OnChange dhfihg_glZ�TEdit.

Ijhbeexkljbjm_f�jZkkfhlj_ggu_�gZfb�f_lh^u�^hklmiZ�ke_^mxs_c�eZ[h�jZlhjghc�jZ[hlhc�

EZ[hjZlhjgZy�jZ[hlZ����

Kha^Zgb_�nhjfu�^ey�\_^_gby�`mjgZeZ�aZdZah\� P_ev�ijbeh`_gby�–�Z\lhfZlbaZpby�aZg_k_gby�^Zgguo�\�lZ[ebpm�©AZdZauª��

G_h[oh^bfu_�k\_^_gby�\u[bjZxlky�ba�lZ[ebp�©AZdZaqbdbª�b�©Lh\Zjuª��?keb�aZdZaqbd�hlkmlkl\m_l�\�lZ[ebp_��hg�lm^Z�^h[Z\ey_lky��Ihbkd�aZdZaqbdZ�\_^_lky�ijb[eb`_gguf�bg^_dkguf�f_lh^hf��Ijb�g_h[oh^bfhklb�fh`gh�ijhkfhlj_lv�k\yaZggmx�bgnhjfZpbx�ba�lj_o�lZ[ebp�

���Kha^Z^bf�nhjfm��ij_^klZ\e_ggmx�gZ�jbk����G_h[oh^bfu_�dhfihg_glu�;>: ljb�ljhcdb�TTable, TDataSource, TDBGrid, TDBNavigator. Ihke_^gbc�k\yau�

Page 24: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

24

\Z_lky�k�dhfihg_glhf�TTable ^ey�lZ[ebpu�©AZdZauª��K�lZ[ebp_c�©Lh\Zjuª�k\y�`bl_�dhfihg_glu��Detal_Code: TDBText b����Detal_Price: TDBText. MklZgh\bl_�k\yab�f_`^m�lZ[ebpZf�Cust b�Cd ih�ihex�Nc �b�f_`^m�lZ[ebp_c�Cd b�Detal��ih�ihex�Nd. MklZgh\bl_���k\hckl\h�Active ^ey�\k_o�lZ[ebp�\ True.

2.�<�hdg_�]jmiiu�CustBox1: TGroupBox�jZkiheh`bl_�we_f_glu�^ey�j_^Zd�lbjh\Zgby Zljb[mlh\�aZdZaqbdZ�EditCust: TEdit, EditAdres: TEdit, EditCode: TEdit, FindCust: TButton, AddCust: TButton, ExtractCust: TButton, LabelAdres: TLabel.

3. GZ�iZg_eb CDPanel: TPanel �jZkiheh`bl_ we_f_glu�^ey�j_^Zdlbjh\Zgby�aZdZaZ�NdLabel: Tlabel, Edit_Detal_Name: TEdit, Edit_Detal_Kol: TEdit, PriceLabel: TLabel, Edit_Detal_Total: TEdit, Edit_Date: TEdit, FindDetal: TButton, ExtractDetal: TButton, CustDetal: TButton k�khhl\_lkl\mxsbfb�f_ldZ�fb-h[hagZq_gbyfb�

���JZaf_klbl_�^\Z�\udexqZl_ey�Cust_CD_Link: TCheckBox b Cd_Detal_Link: TCheckBox ^ey�hldexq_gby�k\yab�f_`^m�lZ[ebpZfb�

Jbk��

���Kha^Zcl_�h[jZ[hlqbdb�kh[ulbc: procedure TForm1.FindCustClick(Sender: TObject); begin Table1.IndexName := 'Cust_Name'; // �:dlb\baZpby�bg^_dkZ Table1.FindNearest([EditCust.text]); // �Ijb[eb`_gguc�ihbkd end;

Page 25: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

25

procedure TForm1.FindDetalClick(Sender: TObject); begin Cd_Detal_Link.Checked := false; Cd_Detal_LinkClick(sender); Table3.IndexName := 'detal_Name'; Table3.FindNearest([Edit_Detal_Name.text]); end; procedure TForm1.AddCustClick(Sender: TObject); begin Table1.AppendRecord([Nil, EditCust.Text, EditAdres.Text]); end; procedure TForm1.Cd_Detal_LinkClick(Sender: TObject); begin with Table3 do if Not (Cd_Detal_Link.Checked) then begin IndexName := 'detal_Name'; MasterSource := Nil; MasterFields := ' '; end else begin IndexFieldNames := 'Nd'; MasterSource := DataSource2; MasterFields := 'Nd'; end; end; procedure TForm1.Cust_CD_LinkClick(Sender: TObject); begin with Table2 do if Not (Cust_Cd_Link.Checked) then begin IndexFieldNames := 'No'; MasterSource := Nil; MasterFields :=' '; end else begin IndexFieldNames := 'nc'; MasterSource := DataSource1; MasterFields := 'Nc'; end; end; procedure TForm1.CustDetalClick(Sender: TObject); begin Cust_Cd_Link.Checked := false; Cust_CD_LInkClick(sender); Edit_Date.text := DateToStr(date);

Page 26: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

26

Table2.AppendRecord ([Nil,EditCode.Text,Table3[Detal_Code.DataField], Edit_Detal_Kol.Text,Edit_Detal_Total.Text, strToDate(Edit_Date.Text)]); end; procedure TForm1.Edit_Detal_KolChange(Sender: TObject); begin if Edit_Detal_Kol.Text<>'' then Edit_Detal_Total.Text := IntToStr(StrToInt(Edit_DEtal_Kol.text) *Table3['Price']); end; procedure TForm1.ExtractCustClick(Sender: TObject); begin EditCust.text := Table1['Name']; EditCode.Text := Table1['nc']; EditAdres.Text := Table1['Address']; end; procedure TForm1.ExtractDetalClick(Sender: TObject); begin Edit_Detal_Name.text :=Table3['Name']; end;

6. Kh[ulbyf�OnChange�dhfihg_glh\�EditCust�b�Edit_Detal_Name�ijbk\hc�l_� q_j_a� bgki_dlhj� h[t_dlh\� h[jZ[hlqbdb� kh[ulbc� FindCustClick b�FindDetalClick��khhl\_lkl\_ggh�

7. Ihke_�hdhgqZl_evghc�hleZ^db�\b^hbaf_gbl_�ijh]jZffm��bkihevamy ^ey�\\h^Z�^Zgguo, ]^_�wlh�\hafh`gh��dhfihg_glu�TDBEdit b�TDBLookupComboBox. Ihke_^gbc� dhfihg_gl� bkihevam_lky� ^ey� aZiheg_gby� h^ghc� lZ[ebpu� ^Zggufb��\u[jZggufb�ba�^jm]hc��k\yaZgghc� k�g_c�lZ[ebpu��;he__�ih^jh[gmx�bgnhjfZ�pbx�kf��\�[1-3].

8. Baf_gbl_�kljmdlmjm�lZ[ebpu�Detal��^h[Z\b\�ihe_�©HklZlhd�gZ�kdeZ^_ª�b�fh^bnbpbjmcl_�ijh]jZffm�lZd��qlh[u�g_evay�[ueh�ijh^Zlv�hlkmlkl\mxsbc�gZ�kdeZ^_�lh\Zj���Fgh]b_�\hjhg_`kdb_�nbjfu��\jy^�eb�[m^ml�\�\hklhj]_�hl�lZdh]h�mkh\_jr_gkl\h\Zgby��

3. SQL-hjb_glbjh\Zgguc�^hklmi�d�;>

�����Bkihevah\Zgb_�SQL

Yaud�SQL (Structured Query Language) ijbgyl�\�dZq_kl\_�hkgh\gh]h�^ey�jZ[hlu�k�m^Ze_ggufb�;>�\�kj_^_��deb_gl-k_j\_j�[1], gh�\k_�qZs_�bkihevam_lky�b�ijb�jZ�[hl_�k�ehdZevgufb�^Zggufb���

>ey�\dexq_gby�\�ijh]jZffm�hi_jZlhjh\�SQL \�Delphi kms_kl\m_l�ki_pb�Zevguc�dhfihg_gl� - TQuery,�jZkiheh`_gguc�gZ�kljZgbp_�Data Access iZeblju�dhfihg_glh\��Hg� bf__l�fgh]h� h[sbo� k\hckl\� k� dhfihg_glhf�TTable b� lZd`_�fh`_l�bkihevah\Zlvky�^ey�ijhkfhljZ�b�j_^Zdlbjh\Zgby�^Zgguo��gh�h[eZ^Z_l�b�jy^hf�ki_pbnbqguo�k\hckl\��Ih�kjZ\g_gbx�c TTable hg�fh`_l�jZ[hlZlv�kjZam�k�

Page 27: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

27

g_kdhevdbfb�lZ[ebpZfb�b�hl[bjZlv�^Zggu_�ih�g_kdhevdbf�djbl_jbyf��Hlf_lbf��qlh�gZ�ijZdlbd_�h[uqgh�ijboh^blky�bkihevah\Zlv g_�lhevdh�j_eypbhggu_��gh�b�jZkkfhlj_ggu_�gZfb�h[sb_�gZ\b]Zpbhggu_�k\hckl\Z�b�f_lh^u�TQuery, �mgZke_�^h\Zggu_�bf�hl�deZkkZ�TDataSet.

GZb[he__�\Z`gu�ke_^mxsb_�hkh[_gghklb: 1) <�TQuery mdZau\Z_lky�lhevdh�ZebZk��Z�k\hckl\h�TableName hlkmlkl\m_l��

Lj_[m_fu_�lZ[ebpu�mdZau\Zxlky�\�l_dkl_�aZijhkZ� ��� L_dklu�SQL-aZijhkh\ aZibku\Zxlky� \� k\hckl\h�SQL h[t_dlZ� TQuery.

Wlh�k\hckl\h�lbiZ�TStrings ij_^klZ\ey_l�kh[hc�h[t_dl-fZkkb\�kljhd��Ijb�\u[h�j_�_]h�\�bgki_dlhj_�h[t_dlh\�aZimkdZ_lky�ki_pbZebabjh\Zgguc �j_^Zdlhj�kljhd��K\hckl\h SQL fh`_l�kh^_j`Zlv�l_dkl�lhevdh�h^gh]h�aZijhkZ�

AZijhk�fh`_l�[ulv�hldjul�b�\uiheg_g�m`_�gZ�wlZi_�jZajZ[hldb�ijbeh`_�gby�khhl\_lkl\mxs_c�mklZgh\dhc�k\hckl\Z�Active��J_amevlZl��\uiheg_gby�aZijh�kZ�hlh[jZ`Z_lky�\�k\yaZgghf�\bamZevghf�dhfihg_gl_�hlh[jZ`_gby�^Zgguo��gZ�ijbf_j�\�TDBGrid.

Ijb�jZ[hl_�ijbeh`_gby�aZijhk�fh`_l�[ulv�\uiheg_g�f_lh^Zfb Open beb�ExecSQL. F_lh^�Open bkihevam_lky�� _keb� aZijhk�bkihevam_l�ijbeh`_gb_�SE-LECT b� \ha\jZsZ_l� ijbeh`_gbx� j_amevlZl��F_lh^� ExecSQL bkihevam_lky� \h�\k_o�hklZevguo�kemqZyo�

L_dkl�aZijhkZ�fh`_l�[ulv�aZibkZg�\�k\hckl\h�SQL�^\mfy�kihkh[Zfb�����k�ihfhsvx� ki_pbZebabjh\Zggh]h � j_^ZdlhjZ�� \uau\Z_fh]h� q_j_a� bgki_dlhj� h[t�_dlh\� gZ� wlZi_� jZajZ[hldb� ijh]jZffu� b� ��� k� ihfhsvx� kh[kl\_gguo� f_lh^h\�h[t_dlZ�deZkkZ�TStrings (Add, Clear, LoadFromFile�b�^j� [9]��gZ�wlZi_�\uiheg_gby�ijh]jZffu.�Ijhbeexkljbjm_f�h[Z�kihkh[Z�ke_^mxsbfb�eZ[hjZlhjgufb�jZ[h�lZfb.

EZ[hjZlhjgZy�jZ[hlZ����� Kha^Zcl_� � nhjfm�� hlh[jZ`Zxsmx� ^Zggu_� ba� ^\mo� k\yaZgguo� lZ[ebp� -

]eZ\ghc�cust.db b�ih^qbg_gghc�cd.db. 1. JZaf_klbl_� \� hdg_�nhjfu� � dhfihg_glu�Query1: TQuery, DataSource1:

TDataSource b�DBGrid1: TDBGrid.�Hlf_lbf��ohly�lZ[ebp�^\_��jZaf_sZ_lky�lhev�dh�h^bg�dhfihg_gl�^Zgguo�TQuery��Bf_gZ�lZ[ebp�b�k\yab�f_`^m�gbfb�mdZau\Z�xlky�\�l_dkl_�aZijhkZ� K\y`bl_�mklZgh\e_ggu_�dhfihg_glu�h[uqguf�h[jZahf��mklZgh\b\�k\hckl\h�DataSet h[t_dlZ�DataSource1�\�Query1��<�dZq_kl\_�agZq_gby�k\hckl\Z�DataBaseName h[t_dlZ�Query1 aZ^Zcl_�ZebZk�DBDemos.

2. <uah\bl_� ki_pbZebabjh\Zgguc � j_^Zdlhj�� gZ`Z\� gZ� dghidm

... kijZ\Z� hl��k\hckl\Z�SQL \�bgki_dlhj_�h[t_dlh\��<\_^bl_�kljhdb SELECT cust.name, cd.nc FROM cust, nc WHERE (cust.nc=cd.nc)

3. MklZgh\bl_�k\hckl\h�Active h[t_dlZ�TQuery \�True. Hldhfibebjmcl_ �b�\uihegbl_��ijbeh`_gb_�

JZkkfhljbf�\lhjhc�kihkh[�aZibkb�aZijhkh\��Hkgh\gh_�ijZ\beh��baf_gylv�k\hckl\h�SQL fh`gh�lhevdh�ijb�aZdjulhf�aZijhk_��

Page 28: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

28

KlZg^ZjlgZy�ihke_^h\Zl_evghklv �^_ckl\bc��

4XHU\��&ORVH�����Fh`_l�ijbf_gylvky�^Z`_�ijb�aZdjulhf�aZijhk_ Query1.SQL.Clear; // �HqbkldZ�aZijhkZ Query1.SQL.Add (‘SELECT * FROM cust’); 4XHU\��2SHQ����������beb�4XHU\��$FWLYH� 7UXH

EZ[hjZlhjgZy�jZ[hlZ������

Kha^Zgb_�bgl_jZdlb\gh]h �j_^ZdlhjZ�aZijhkh\ JZajZ[hlZcl_� ijbeh`_gb_�� dhlhjh_� iha\heyeh� [u� baf_gylv� b� \uihegylv�

aZijhk� \h� \j_fy� \uiheg_gby� ijh]jZffu�� \u[bjZlv� ih�`_eZgbx� ihevah\Zl_ey�kihkh[�^hklmiZ�d�^Zgguf� �q_j_a�TTable beb�TQuery).�Lj_[m_fuc�\g_rgbc�\b^�ijbeh`_gby�ihdZaZg�gZ�jbk����

Jbk��

1. �Hldjhcl_� gh\uc� ijh_dl�� JZaf_klbl_� \� hdg_� nhjfu� � dhfihg_glu�

Query1: TQuery, Table1: TTable, DataSource1: TDataSource b�DBGrid1: TDBGrid. K\y`bl_�DBGrid1 b�DataSource1. (DataSource1�[m^_l�k\yaZg�k�Table1 beb�Query1 \�oh^_�\uiheg_gby��

2. �MklZgh\bl_� agZq_gby� ke_^mxsbo� k\hckl\� Table1� b� Query1: Data-BaseName - DBDemos , Active - False.

3. �JZkiheh`bl_�gZ�nhjf_�^\_�dghidb�-�KlZjl�b�<uoh^��ljb�iZg_eb��GZ�iZ�g_eb�Panel1 ihf_klbl_�h[t_dlu�ComboBox1 b�Label1 ^ey�\\h^Z�bf_gb�lZ[ebpu��

Page 29: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

29

AZihegbl_� kibkhd� ComboBox1� bf_gZfb� lZ[ebp�� dhlhju_� ij_^iheZ]Z_lky� ijh�kfZljb\Zlv� �bkihevamcl_�k\hckl\h� Items \�bgki_dlhj_�h[t_dlh\���GZ�\lhjhc�iZ�g_eb� �Panel2) jZaf_klbl_� ZgZeh]bqgu_�ComboBox2�b�Label2�^ey�\\h^Z� aZijhkZ�SQL�b� aZg_kbl_� \� kibkhd�ComboBox2�g_kdhevdh�ij_^iheZ]Z_fuo� aZijhkh\��GZ�lj_lv_c�iZg_eb� �Panel3) jZkiheh`bl_�kljhdm�j_^Zdlbjh\Zgby� �Edit1) ^ey�\\h^Z�eh]bq_kdh]h�mkeh\by�nbevljZ�b� �dghidm-\udexqZl_ev�CheckBox1�^ey�Zdlb\baZ�pbb�nbevljZ�

4. JZaf_klbl_�]jmiim�dghihd-i_j_dexqZl_e_c�RadioGroup1��qlh[u�fh`gh�[ueh�\u[bjZlv�f_`^m�dhfihg_glZfb �TTable b�TQuery. Kha^Zcl_�^ey�wlhc�]jmi�iu�h[jZ[hlqbd�kh[ulby�OnClick: procedure Tform1.RadioGroup1Click(Sender: TObject); begin case RadioGroup1.ItemIndex of 0: begin Panel1.Enabled:=True; Panel2.Enabled:= False; end; 1: begin Panel2.Enabled:= True; Panel1.Enabled:= False; end; end; end;

LZdbf� h[jZahf�� ijb� \u[hj_� h^gh]h� ba� kihkh[h\� ^hklmiZ�� gZijbf_j��TTable, Zevl_jgZlb\guc�^hklmi�aZij_sZ_lky��iZg_ev�kh�kljhdhc�aZijhkZ�klZgh�\blky�g_^hklmighc��enabled:=False).

5. Kha^Zcl_�h[jZ[hlqbd�kh[ulby� OnClick dghidb�ClZjl� procedure TForm1.Button1Click(Sender: TObject); begin case RadioGroup1.ItemIndex of 0: begin �������7DEOH��&ORVH�����AZdjulb_�lZ[ebpu Ta EOH��7DEOH1DPH� &RPER%R[��7H[W�����Bfy�lZ[ebpu DataSource1.DataSet:=Table1; // K\yav�dhfihg_glh\ �������7DEOH��)LOWHU� �(GLW��7H[W������MklZgh\dZ�nbevljZ Table1.Filtered:=Checkbox1.Checked; �������7DEOH��2SHQ��������Hldjulb_�lZ[ebpu end; 1: begin �������'DWD6RXUFH��'DWD6HW� 4XHU\�������K\yav�q_j_a�aZijhk Query1.C ORVH�����AZdjulb_�aZijhkZ Query1.Sql.Clear; // HqbkldZ�l_dklZ�aZijhkZ Query1.Sql.Add(Combobox2.Text); ��������������AZg_k_gb_�\�l_dkl�hlj_^Zdlbjh\Zgghc�kljhdb� �������4XHU\��)LOWHU� �(GLW��7H[W�������MklZgh\dZ�nbevljZ Query1.Filtered:=Checkbox1.Checked; �������4XHU\��2SHQ������<uiheg_gb_�aZijhkZ� end; end; { case } end;

Page 30: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

30

6.�Ijbeh`_gb_�]hlh\h��Ihkdhevdm�gZ�wlZi_�jZajZ[hldb�aZijhku�g_�kha^Z�\Zebkv��ijhkfhlj_lv�bo�j_amevlZlu�fh`gh�lhevdh�ihke_�dhfibeypbb�b�\uihe�g_gby�

7. Baf_gbl_� ijbeh`_gb_�� bkihevamy� ^ey� j_^Zdlbjh\Zgby� aZijhkZ� dhfih�g_gl�TMemo.

3.2. >bgZfbq_kdb_�aZijhku

JZkkfhlj_ggu_�\ur_�kihkh[u�ihkljh_gby�aZijhkh\�bf_xl�g_^hklZldb��AZijhk��\kljh_gguc� \�TQuery�gZ� wlZi_� jZajZ[hldb, g_evay� \b^hbaf_gblv� \h� \j_fy� \u�iheg_gby��Z�jZ[hlZ�k�aZijhkhf��j_^Zdlbjm_fuf�\h�\j_fy�\uiheg_gby, kebrdhf�keh`gZ��l�d��lj_[m_l�hl�ihevah\Zl_ey�agZgby�SQL.�<uoh^��dZd�\k_]^Z��aZdexqZ_l�ky�\�dhfijhfbkk_��\kljZb\Zlv�\�TQuery�aZijhk, kh^_j`Zsbc�g_kdhevdh�iZjZf_l�jh\��dhlhju_�fh]ml�[ulv�baf_g_gu�\h�\j_fy�\uiheg_gby��LZdb_�aZijhku�gZau�\Zxlky�^bgZfbq_kdbfb�

JZkkfhljbf�^\Z�kihkh[Z�kha^Zgby�^bgZfbq_kdbo�aZijhkh\� �������IZjZf_ljbaZpby�aZijhkh\

IZjZf_lju�aZijhkZ�aZibku\Zxlky�\�\b^_� �IZjZf_lj ��gZijbf_j�� SELECT* FROM cust WHERE name =:p1 AND address =:p2.

Ijb�hldjulbb�aZijhkZ�iZjZf_ljZf�:p1, :p2, … [m^ml�ijbk\h_gu�g_dhlhju_�agZq_gby��AgZq_gby�iZjZf_ljh\�^he`gu�[ulv�aZ^Zgu�k�ihfhsvx�f_lh^Z�Param-ByName dhfihg_glZ�TQuery. Wlhl�f_lh^�\ha\jZsZ_l�kkuedm�gZ�h[t_dl�TParam, Zkkhpbbjm_fuc�k� aZ^Zgguf�iZjZf_ljhf�b kha^Z\Z_fuc�ijb�hldjulbb� aZijhkZ. >ey�^hklmiZ� d� agZq_gbx�iZjZf_ljZ� kem`Zl� k\hckl\Z�TParam, lZdb_�dZd�Value: Variant, AsString: String, AsInteger: integer. GZijbf_j�� Query1.ParamByName(‘P2’).Value:=Edit1.Text; Query1.ParamByName(‘P2’).AsString:=Edit1.Text;

H^gZdh�g_kfhljy�gZ�\g_rgxx�koh`_klv�k�h[t_dlZfb�TField, lbi�iZjZf_l�jZ�a^_kv�iheghklvx�hij_^_ey_lky�ijbk\Zb\Z_fuf�agZq_gb_f��<�^Zgghf�ijbf_j_�wlh� kljhdh\uc� lbi�� ohly� ih� kfukem� aZijhkZ� iZjZf_lj� gZ� kZfhf� � � ^_e_�fh`_l�bf_lv��^jm]hc�g_kh\f_klbfuc�lbi��qlh�ijb\_^_l�d�hrb[d_�\h�\j_fy�\uiheg_gby�ijh]jZffu�

Hq_\b^gh�lZd`_��qlh�gZ�wlZi_�ijh_dlbjh\Zgby��dh]^Z�agZq_gby�iZjZf_ljh\�_s_�g_�ijbk\h_gu��lZdhc�aZijhk�hldjulv�g_evay�

Ihwlhfm� j_dhf_g^m_lky� gZ� wlZi_� ijh_dlbjh\Zgby� y\gh� �q_j_a� bgki_dlhj�h[t_dlh\��hij_^_eylv�lbi�h[t_dlh\�TParam; kh\iZ^_gb_�lbih\�ijb�ijbk\h_gbb�agZq_gbc�iZjZf_ljZf�[m^_l�dhgljhebjh\Zlvky�dhfibeylhjhf��qlh�kgbabl�\�blh]_�\_jhylghklv�hrb[db�ijb�\uiheg_gbb���

<� dZq_kl\_� ijbf_jZ� gZibr_f� ke_^mxs__� ijhkl_cr__� ijbeh`_gb_�� bk�ihevamxs__�^bgZfbq_kdb_�aZijhku�

1. GZ�nhjf_�jZaf_klbl_�dhfihg_glu�TQuery, TDataSource, TDBgrid. K\y�`bl_�bo�klZg^Zjlguf�h[jZahf��Bkihevamcl_�ZebZk Zakpar.�K\hckl\h�Active mklZ�

Page 31: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

31

gh\bl_�\�False.�Kha^Zcl_�h[t_dlu�Edit1, Edit2: TEdit ^ey�\\h^Z� agZq_gby�iZjZ�f_ljh\�b�dghidm�Button1.

2. AZg_kbl_�\�k\hckl\h�SQL h[t_dlZ�TQuery�kljhdm� SELECT * FROM cd WHERE Total > :p1 and Data= :p2

3. <uah\bl_� J_^Zdlhj� iZjZf_ljh\� aZijhkZ�� Zdlb\babjh\Z\� \� bgki_dlhj_�h[t_dlh\�k\hckl\h�Params�h[t_dlZ Query1.�Ihy\blky�hdgh�kh�kibkdhf�iZjZf_l�jh\�aZijhkZ��kf��jbk����kijZ\Z���<u^_ebl_�dZ`^uc�iZjZf_lj�b�^ey�g_]h�\�bgki_d�lhj_�h[t_dlh\��jbk����ke_\Z��\u[_jbl_�lbi��gZijbf_j��Type=Date) b�agZq_gb_�ih�mfheqZgbx (gZijbf_j��Value=19.11.98)���L_i_jv�<u�fh`_l_�ijh\_jblv�aZijhk�gZ�wlZi_�jZajZ[hldb��mklZgh\b\�Active \�True.

Jbk��

4. <�h[jZ[hlqbd�kh[ulby��OnClick ^ey�dghidb�Button1�aZibrbl_

Query1.Close; ���I_j_^�baf_g_gb_f�aZijhk�h[yaZl_evgh�gZ^h�aZdjulv Query1.ParamByName(‘p1’).AsInteger:=StrToInt(Edit1.text); Query1.ParamByName(‘p2’).AsDate:= StrToDate(Edit1.text); Query1.Open;

Ijbeh`_gb_�]hlh\h� Wnn_dlb\guf�ijb_fhf�^ey�iZjZf_ljbaZpbb�aZijhkZ�y\ey_lky�bkihevah\Z�

gb_�k\hckl\Z�DataSource dhfihg_glZ�TQuery. ?keb�\�fhf_gl�hldjulby�aZijhkZ�ijbeh`_gb_�h[gZjm`bl��qlh�m�h^gh]h�ba�iZjZf_ljh\�hlkmlkl\m_l�agZq_gb_��lh�\�dZq_kl\_�g_]h�[_j_lky�agZq_gb_�h^ghbf_ggh]h�ihey�ba�gZ[hjZ�^Zgguo��bfy�dhf�ihg_glZ�TDataSource �dhlhjh]h�mdZaZgh�\�k\hckl\_�DataSource dhfihg_glZ�TQuery. GZijbf_j��\�dZq_kl\_�agZq_gby�g_hij_^_e_ggh]h ��iZjZf_ljZ�nd \�aZijh�k_ SELECT * FROM cd WHERE cd.nd = :nd

[m^_l�ijbgbfZlvky�agZq_gb_�ihey�nd l_dms_c�aZibkb ^jm]hc�lZ[ebpu�Cust��?k�l_kl\_ggh_� lj_[h\Zgb_: G>� ^ey� lZ[ebpu�Cust ^he`_g� [ulv� hldjul� jZgvr_, q_f�aZijhk�k�iZjZf_ljhf�nd.

Page 32: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

32

3.2.2. Nhjfbjm_fu_�aZijhku Wlhl�kihkh[�y\ey_lky�[he__�mgb\_jkZevguf, gh�f_g__�[ukljuf��A^_kv�fh`gh�g_�lhevdh� aZ^Z\Zlv� agZq_gby�iZjZf_ljh\��gh�b� \b^hbaf_gylv�nhjfm� aZijhkZ, \\h�^blv� ^hihegbl_evgu_� mkeh\by�� kem`_[gu_� keh\Z� b� l�^��>ey� wlh]h� g_h[oh^bfh�dhgkljmbjh\Zlv�aZijhk�k�ihfhsvx�kj_^kl\�jZ[hlu�kh�kljhdZfb�yaudZ�Pascal, gZ�ijbf_j��Query1.Sql.Add(µKljhdZ¶���(GLW��WH[W).

EZ[hjZlhjgZy�jZ[hlZ�������kZfhklhyl_evgZy�

Kha^Zcl_� ijbeh`_gb_� ^ey� ijhba\hevgh]h� dhgkljmbjh\Zgby� ijhklh]h� aZ�ijhkZ, kh^_j`Zs_]h� eh]bq_kdh_� \ujZ`_gb_�� Ijbf_jguc� \b^� ]eZ\ghc� nhjfu�ijbeh`_gby�ihdZaZg�gZ�jbk�����

Jbk����

Hlf_lbf�� qlh� kbglZdkbk�nhjfbjm_fh]h� aZijhkZ�ijh\_jy_lky� dZ`^uc� jZa�

\h�\j_fy�\uiheg_gby��qlh�ijb�qZklhf�\uiheg_gbb�aZf_^ey_l�jZ[hlm��IZjZf_l�jbq_kdb_�aZijhku��a^_kv�bf_xl�ij_bfms_kl\h��l�d��hgb�nhjfbjmxlky�h^bg�jZa��ihwlhfm� bo�fh`gh� hldhfibebjh\Zlv \� bkihegy_fuc� dh^�� � Z� \� ^Zevg_cr_f�g_�ijh\_jylv�aZgh\h��Z�lhevdh�ih^klZ\eylv�gh\u_�iZjZf_lju��>ey�ih^]hlh\db�d�lZ�dhfm�bkihevah\Zgbx�iZjZf_ljbq_kdbo�aZijhkh\�kem`bl�f_lh^�Prepare, �dhlhjuc�j_dhf_g^m_lky�h^bg�jZa�\ua\Zlv�\�gZqZe_�jZ[hlu�ijbeh`_gby��gZijbf_j��\�h[�jZ[hlqbd_�OnCreate nhjfu�

�����J_^Zdlbjh\Zgb_�j_amevlZlh\�aZijhkZ

Hkgh\guf�bgkljmf_glhf�SQL ̂ ey�j_^Zdlbjh\Zgby��[Za�^Zgguo�y\eyxlky�hi_jZ�lhju� UPDATE, INSERT, DELETE��kf�[4]).�Qlh[u�k�bo�ihfhsvx�baf_gblv�agZq_�

Page 33: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

33

gby�ihe_c��g_h[oh^bfh�^ey�dZ`^h]h�lZdh]h�hi_jZlhjZ�aZ\_klb�hl^_evguc�dhf�ihg_gl�TQuery �b�hldju\Zlv�_]h�f_lh^hf�ExecSQL.

H^gZdh,�fh`gh�b�©gZijyfmxª, dZd�h[uqgmx�lZ[ebpm��j_^Zdlbjh\Zlv gZ[hj�^Zgguo�� \ha\jZsZ_fuc� dhfihg_glhf TQuery�� kh^_j`Zsbf� hi_jZlhj� SELECT. >_ckl\bl_evgh�� TQuery� hlghkblky� d� deZkkm� TDataSet, ihwlhfm� d� g_fm� fh`gh�ijbf_gblv�ihqlb�\k_�f_lh^u��baeh`_-ggu_�\�jZa^_e_����JZkkfhljbf�g_dhlhju_�hkh[_gghklb�wlh]h�kihkh[Z�

Qlh[u�aZijhk�fh`gh�[ueh�j_^Zdlbjh\Zlv��g_h[oh^bfh�kgZqZeZ�mklZgh\blv�k\hckl\h� RequestLive� dhfihg_glZ� TQuery \ True�� �Ih� mfheqZgbx� hgh� jZ\gh�False). Gh�wlh�ihfh]Z_l�g_�\k_]^Z��lZd�dZd��gZ�kZfhf�^_e_�g_�\kydbc�aZijhk�fh�`_l�[ulv�hlj_^Zdlbjh\Zg ��G_evay�j_^Zdlbjh\Zlv�aZijhku��kh^_j`Zsb_�Z]j_]Zl�gu_� nmgdpbb�� hi_jZlhju JOIN, UNION, ij_^eh`_gby� GROUP BY, DISTINCT, \u[hjdb� ba� g_kdhevdbo� lZ[ebp�� LZdbf� aZijhkZf�Delphi ijbk\Zb\Z_l� Zljb[ml�©lhevdh�^ey�ql_gbyª��k\hckl\h�CanModify dhfihg_glZ TQuery ijbgbfZ_l�agZq_�gb_�False, aZij_sZxs__� j_^Zdlbjh\Zgb_��IjbqbgZ� khklhbl� \� lhf��qlh�ijb�bk�ihevah\Zgbb�mihfygmluo�hi_jZlhjh\�hl^_evguf�iheyf�aZijhkZ�fh`_l�g_�khhl�\_lkl\h\Zlv� gb� h^ghc� aZibkb� j_Zevghc� lZ[ebpu�� eb[h�� gZijhlb\�� khhl\_lkl\h�\Zlv�g_kdhevdh�jZaguo�aZibk_c.

QZklbqgh� h[hclb� wlb� aZij_lu� fh`gh� k� bkihevah\Zgb_f� dhfihg_glZ TUpdateSQL. Kmlv�_]h�jZ[hlu�khklhbl�\�ke_^mxs_f��NZdlbq_kdb�^ey�j_^Zdlbjh�\Zgby�[m^ml�\uau\Zlvky�SQL-aZijhku�UPDATE, INSERT, DELETE, ^ey�dhlhjuo�f_gvr_�©ij_]jZ^ª.�<k_�baf_g_gby�^Zgguo�ijb�ijyfhf�j_^Zdlbjh\Zgbb�G>�(gZ�ijbf_j��ijb�ihfhsb�TDBGrid)�khojZgyxlky�\�ehdZevghf�ijhf_`mlhqghf�[mn_�j_�gZ�deb_glkdhc�fZrbg_���f_oZgbaf�dwrbjh\Zgby�baf_g_gbc���Z�mihfygmlu_�aZ�ijhku�dhjj_dlgh�i_j_ghkyl�\g_k_ggu_�baf_g_gby�ba�[mn_jZ�\�j_Zevgmx�lZ[ebpm�gZ�k_j\_j_�

EZ[hjZlhjgZy�jZ[hlZ����

��� JZaf_klbl_� gZ� nhjf_� �jbk����� dhfihg_glu� TQuery, TDataSource,

TDBGrid, TUpdateSQL b�k\y`bl_�bo� �>ey�TQuery mklZgh\bl_�k\hckl\Z: Active - True DatabaseName - ZakPar CachedUpdates - ���7UXH������JZaj_rZ_l�dwrbjh\Zggu_�baf_g_gby RequestLive - ���7UXH������JZaj_rZ_l�j_^Zdlbjh\Zlv�aZijhk UpdateObject - ��8SGDWH64/������KkuedZ�gZ�wda_fieyj�78pdateSQL. SQL - SELECT name, price, sum(rest) FROM detal GROUP BY name, price

Ihke_^gbc�aZijhk�ijh\h^bl�\uqbke_gb_�hklZldZ�gZ�kdeZ^_�^ey�lh\Zjh\��k�h^bgZdh\ufb�gZa\Zgbyfb�b�p_ghc��

���<uah\bl_� j_^Zdlhj� k\hckl\� h[t_dlZ UpdateSQL, s_edgm\�ih�g_fm�^\Z�jZaZ��<� ^bZeh]h\hf� hdg_� \u[_jbl_� h[gh\ey_fu_�ihey�name, price b� dexq_\u_�ihey�name, price��ih� dhlhjuf�[m^_l�ijhbkoh^blv� kjZ\g_gb_�gh\uo� aZibk_c�ba�[mn_jZ�kh�klZjufb�aZibkyfb�\�nbabq_kdhc�lZ[ebp_��GZ`fbl_�dghidm�Generate

Page 34: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

34

SQL. <�j_amevlZl_�ihemqZlky�aZijhku�^ey�h[gh\e_gby��m^Ze_gby�b�\klZ\db�aZib�k_c��GZijbf_j��aZijhk�^ey�h[gh\e_gby�[m^_l�bf_lv�\b^ UPDATE detal SET name = :name,price = :price WHERE name = :OLD_name AND price = :OLD_price

Ijb� �_]h�\uiheg_gbb�\f_klh�iZjZf_ljh\� �:name, :price�[m^ml�ih^klZ\e_gu�agZ�q_gby�h^ghbf_gguo�ihe_c�ba�[mn_jZ��>Ze__�wlb�agZq_gby�[m^ml�ijbk\h_gu�ih�eyf� �l_o�aZibk_c�nbabq_kdhc�lZ[ebpu��^ey�dhlhjuo�agZq_gby�dexq_\uo�ihe_c�kh\iZ^Zxl� kh� klZjufb� agZq_gbyfb��bf_\rbfbky� ^h� \uiheg_gby� aZijhkZ��Ih�ke_^gb_�agZq_gby��\�l_dkl_�aZijhkZ�hlebqZxlky�ijbklZ\dhc�:OLD_.

>ey� \uiheg_gby� � knhjfbjh\Zgguo� aZijhkh\�UPDATE, INSERT, DELETE kem`bl�f_lh^�dhfihg_glZ�TUpdateSQL procedure Apply (UpDateKind: TUpDateKind);

IZjZf_ljm� UpDateKind gZ^h� ij_^\Zjbl_evgh � ijbk\hblv� dhgklZglm�� h[h�agZqZxsmx�lbi�aZijhkZ, ukModify, ukInsert, ukDelete.

3. JZaf_klbl_� ^\_� dghidb� b� dhfihg_glu�TTable, TDataSource, TDBGrid ^ey�ijhkfhljZ�baf_g_gbc�\�lZ[ebp_�Detal.

4. Kha^Zcl_�h[jZ[hlqbdb�kh[ulbc OnClick ^ey�dghihd: procedure TForm1.Button1Click(Sender: TObject); begin Table1.Close; Table1.Open; end; procedure TForm1.Button2Click(Sender: TObject); begin Query1.Close; Query1.Open; end;

OnAfterPost ^ey�Query1: procedure TForm1.Query1AfterPost(DataSet: TDataSet); begin try UpdateSql1.Apply(ukModify); // <uihegy_l�aZijhk�fh^bnbdZpbb except // ihke_�kh[ulby�nbdkZpbb�baf_g_gby�aZibkb end; end;

��>h[Z\vl_�kZfhklhyl_evgh�\hafh`ghklv�\klZ\db�b�m^Ze_gby� I_j_^�\uiheg_gb_f�ijbeh`_gby�j_dhf_g^m_lky�\uclb�ba�kj_^u Delphi. J_amev�lZl�[m^_l�bf_lv�\b^�jbk����

Page 35: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

35

Jbk���

DZd�\b^gh�ba�jbkmgdZ��h^ghc�aZibkb�=\ha^v�\�G>�Query1 (\�gb`g_c�qZklb�

nhjfu��[m^_l�khhl\_lkl\h\Zlv�^\_�aZibkb�=\ha^v�\�G>�Table1 �\\_jom���?keb�ba�f_gblv�\�Query1�p_gm�]\ha^y�Price gZ�23 b�gZ`Zlv�dghidm�©H[gh\blv�lZ[ebpmª��lh�wlh�gh\h_�agZq_gb_�ihy\blky�kjZam�\�^\mo�kljhdZo�\_jog_c�lZ[ebpu�

Ih^q_jdg_f��qlh 1) dhfihg_gl�TUpdateSQL fh`_l�ijbf_gylvky�dZd�d�ehdZevguf��lZd�b�d�

m^Ze_gguf�;>, 2) kh[kl\_ggh�^ey�dwrbjh\Zgby�baf_g_gbc� � �DB��hg��dZd�ijZ\beh��g_�

gm`_g�� DB�bkihevamxlky�^ey�mkdhj_gby�jZ[hlu�\�k_lb��A^_kv�^hklZlhqgh�f_lh�^h\ ApplyUpdates �nbdkZpby� baf_g_gbc� gZ� k_j\_j_�, CommitUpdates �hqbkldZ�dwrZ�hl�aZnbdkbjh\Zgguo�baf_g_gbc� b�k\hckl\Z CachedUpdates: Boolean �jZa�j_r_gb_�dwrbjh\Zgby�baf_g_gbc��dhfihg_glZ�TQuery.

BlZd��dhfihg_gl�TUpdateSQL g_�y\ey_lky�h[yaZl_evguf�b�j_Zevgh�lj_[m�_lky ebrv� ijb� � g_h[oh^bfhklb� j_^Zdlbjh\Zlv� aZijhku� � ©lhevdh� ^ey� ql_gbyª��TUpdateSQL bf__l�©hkh[_gghklbª��>Z`_�\�ijhklhf�ijb\_^_gghf�\ur_�ijbf_j_�Z\lhjm�ihlj_[h\Zeky�h[oh^ghc�fZg_\j��gZclb�b�h[tykgblv��dhlhjuc�<Zf�ij_^eZ�]Z_lky�kZfhklhyl_evgh�

AZ^Zgb_: I_j_^_eZcl_�ijbf_j�eZ[��jZ[hlu���� �©@mjgZe� aZdZah\ª��� aZf_�gb\�TTable gZ�TQuery.�I_j_\_^bl_�;>�d�nhjfZlm�InterBase.

4. JZ[hlZ�k�k_j\_jhf�InterBase InterBase – wlh�ijhfure_ggZy�KM;>��ij_^gZagZq_ggZy�^ey�jZ[hlu�\�kj_^_�©deb�_gl-k_j\_jª��<�ijhp_kk_�h[mq_gby�fh`gh�bkihevah\Zlv�dZd�ihegmx�\_jkbx�Inter-Base��lZd�b�ehdZevguc�h^ghihevah\Zl_evkdbc �k_j\_j��\oh^ysbc�\�dhfie_dl�ih�klZ\db�Delphi, �ijb]h^guc� ^ey� \_^_gby� ehdZevguo�;>�b�^ey�ij_^\Zjbl_evghc �hleZ^db� ijbeh`_gbc� ^ey� kj_^u� ©deb_gl-k_j\_jª� gZ� ehdZevghc� W<F�� H[sZy�f_lh^bdZ� jZ[hlu� k� InterBase hibkZgZ� \� [5]�� A^_kv� [he__� ih^jh[gh�

Page 36: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

36

lh^bdZ�jZ[hlu�k�InterBase hibkZgZ�\�[5]��A^_kv�[he__�ih^jh[gh�jZkkfZljb\Zxlky�g_dhlhju_�hkh[_gghklb�kha^Zgby�ijbeh`_gbc��hlebqZxsb_�InterBase�hl�ehdZev�guo�KM;>�

4.1. Dhfihg_gl�TDataBase

Wda_fieyj�dhfihg_glZ�TDataBase Z\lhfZlbq_kdb��g_aZ\bkbfh�hl�`_eZgby�ijh�]jZffbklZ��kha^Z_lky�\�ijbeh`_gbb�^ey�dZ`^hc�hldjulhc�;>��Ijb�jZ[hl_�\�kj_�^_�deb_gl-k_j\_j�j_dhf_g^m_lky�_]h�kha^Z\Zlv�y\gh��i_j_ghky�khhl\_lkl\mxsbc�dhfihg_gl�gZ�nhjfm�beb�\�fh^mev�^Zgguo��Y\gh_�kha^Zgb_�h[_ki_qb\Z_l�^hklmi�d�k\hckl\Zf�b�f_lh^Zf�TDataBase. Hkgh\gu_�aZ^Zqb�TDataBase: mijZ\e_gb_�kh�_^bg_gb_f�k�;>��mijZ\e_gb_�ljZgaZdpbyfb��j_]bkljZpby�ihevah\Zl_ey�gZ�k_j\_�j_� G_dhlhju_�hkgh\gu_�k\hckl\Z�b�f_lh^u� PropertyAliasName: string;

AZ^Z_l�ZebZk�;>

Property Data-BaseName: string;

AZ^Z_l�ehdZevguc�ik_\^hgbf��bkihevam_fuc�^Ze__�\ k\hckl\_�DataBaseName�dhfihg_glZo�TDataSet.

Property Login-Prompt: Boolean;

True�hagZqZ_l��qlh�bfy�ihevah\Zl_ey�b�iZjhev�\k_]^Z�[m^ml� aZijZrb\Zlvky�ijb� kh_^bg_gbb� k�;>��False – [m^ml�kqblu\Zlvky�ba�k\hckl\Z�Params.

PropertyParams: TStrings;

Kibkhd� iZjZf_ljh\� kh_^bg_gby� k� ;>�� <� qZklghklb��a^_kv�mdZau\Zxlky�mq_lgh_�bfy�b�iZjhev�

Property Connected: Boolean

MdZau\Z_l��bf__l�eb�dhfihg_gl�Zdlb\gh_�kh_^bg_gb_�k�;>�

Procedure StartTransaction;

Ihke_�\uah\Z�\k_�baf_g_gby��\ghkbfu_�\�;>��kqblZ�xlky�hlghkysbfbky�d�l_dms_c�Zdlb\ghc�ljZgaZdpbb�

procedure Commit; AZ\_jrZ_l� \uiheg_gb_� l_dms_c� ljZgaZdpbb� b� nbd�kbjm_l�\k_�baf_g_gby�\�;>��

procedure RollBack; HldZl�ljZgaZdpbb� property IsTransac-tion: Boolean;

Khh[sZ_l��bf__lky�eb�Zdlb\gZy�ljZgaZdpby�

procedure ApplyUp-dates (const Data-Sets: array of TDataSet)

Ih^l\_j`^Z_l� dwrbjh\Zggu_� baf_g_gby� \� g_kdhev�dbo�G>��i_j_qbke_gguo� \� hldjulhf�fZkkb\_�Data-Sets.

property TransIsola-tion: TTransIsola-tion;

AZ^Z_l�mjh\_gv�baheypbb�ljZgaZdpbc�gZ�k_j\_j_ [1,2].

Ijbf_qZgby�� 1). <�ijhkl_cr_f�kemqZ_�^hklZlhqgh�bkihevah\Zlv k\hckl\Z�Aliasname, Da-

taBaseName.

Page 37: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

37

2). J_^Zdlbjh\Zgb_�k\hckl\�kh_^bg_gby�Params j_dhf_g^m_lky�k�ihfhsvx�

j_^ZdlhjZ��\uau\Z_fh]h�^\hcguf�s_eqdhf�ih�dhfihg_glm� 3)��GZ�wlZi_�hleZ^db�j_dhf_g^m_lky�ih^Z\blv�aZijZrb\Zgb_�mq_lgh]h�bf_�

gb�b�iZjhey��bkihevamy�k\hckl\Z LoginPrompt�b�Params. 4)��<�k\hckl\_�DataBaseName dhfihg_glh\ TDataSet l_i_jv mdZau\Z_lky�g_�

ZebZk�;>��Z�agZq_gb_�k\hckl\Z DataBaseName dhfihg_glZ TDataBase.

4.2��=_g_jZlhju

<�lZ[ebpZo�Paradox ̂ey�ojZg_gby��agZq_gbc�mgbdZevguo�i_j\bqguo�dexq_c�bk�ihevamxlky�ihey�AutoIncrement��h[_ki_qb\Zxsb_ ��Z\lhfZlbq_kdh_�ijbjZs_gb_�agZq_gby�ihey�ijb�^h[Z\e_gbb�gh\hc�aZibkb��<� InterBase \f_klh�wlh]h�bkihev�amxlky� ]_g_jZlhju��=_g_jZlhj� –� ojZgbfuc� gZ� k_j\_j_�f_oZgbaf�� \ha\jZsZx�sbc�ijb�h[jZs_gbb�d�g_fm�gh\h_�mgbdZevgh_�agZq_gb_��

Kha^Zgb_�]_g_jZlhjZ: &5($7(�*(1(5$725�Bfy=_g_jZlhjZ�

MklZgh\dZ�gZqZevgh]h�agZq_gby: 6(7�*(1(5$725�Bfy=_g_jZlhjZ�72�GZqAgZq_gb_�

Kha^Zgb_�b�mklZgh\dZ�\uihegy_lky�eb[h�k�ihfhsvx�hl^_evguo�aZijhkh\��eb[h�\�^bZeh]h\hf�j_`bf_�k�ihfhsvx�mlbeblu�SQL Explorer.

>ey�h[jZs_gby�d�]_g_jZlhjm�kem`bl�nmgdpby: GEN_ID �Bfy=_g_jZlhjZ��IjbjZs_gb_��

Kihkh[u�h[jZs_gby�d�]_g_jZlhjm� 1. C ihfhsvx��hi_jZlhjZ�INSERT. GZijbf_j��jZaf_klbl_�gZ�nhjf_�g_kdhevdh�kljhd�j_^Zdlbjh\Zgby��k\yaZg�

gu_� dhfihg_glu� Query1, DataSource1, DBGrid1 b� ^hihegbl_evgh � � hl^_evguc�Query2��<�k\hckl\h�SQL Query1 aZibrbl_ SELECT * FROM cust

Z�\��Query2 INSERT INTO cust(nc, name, address) VALUES (GEN_ID(G1,1), Edit1.Text, Edit2.Text)

A^_kv�G1 – bfy��jZg__�kha^Zggh]h�<Zfb�]_g_jZlhjZ� <�h[jZ[hlqbd�dghidb�©>h[Z\blv�aZibkvª�aZibrbl_ Query2.ExecSql; Query1.Close; Query1.Open;

���K�ihfhsvx�ljb]]_jZ. Kha^Zcl_��bkihevamy�mlbeblm�WISQL beb�SQL Explorer��ljb]]_j

CREATE TRIGGER by_nc FOR cust BEFORE INSERT AS BEGIN new.nc=gen_id(g1,1); END

Page 38: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

38

=_g_jZlhj�[m^_l�Z\lhfZlbq_kdb�\uau\Zlvky�ijb�j_^Zdlbjh\Zgbb�i_j_^�kh�[ulb_f�aZihfbgZgby�gh\hc�aZibkb��Dexq_\h_�ihe_�nd ihevah\Zl_e_f�g_�\\h^bl�ky; hgh�aZihegy_lky�]_g_jZlhjhf�

AZf_qZgby: ����Wlhl�f_lh^� ijb]h^_g� lhevdh� ^ey j_^Zdlbjh\Zgby�G>, \ha\jZsZ_fuo�

dhfihg_glhf�TQuery. Ijb�bkihevah\Zgbb�TTable ]_g_jZlhju�ke_^m_l�\uau\Zlv�ba�ojZgbfuo�ijhp_^mj�

2) <�hi_jZlhj_�INSERT, bkihevam_fhf�dZd�kZfhklhyl_evgh��lZd�b�\�khklZ\_�dhfihg_glZ� TUpdateSQL�� � dexq_\h_� ihe_�� ^ey� dhlhjh]h� ihkljh_g� ]_g_jZlhj��^he`gh�[ulv�hims_gh�

3. K�ihfhsvx�ojZgbfhc ijhp_^mju

CREATE PROCEDURE Get_Num RETURNS (n INTEGER) AS BEGIN n = gen_id(g1,1); END

Ijbf_j�� JZkiheh`bl_� ljb� k\yaZgguo� dhfihg_glZ� Table1, DataSource1, DBGrid1 b� h^bg� dhfihg_gl� SP1: TStoredProc.� AZibrbl_� \� k\hckl\_ DatabaseName ZebZk�;>��Z�\�k\hckl\h�StoredProcName bfy�ojZgbfhc�ijhp_^mju (Get_Num). Ijhkfhljbl_� k\hckl\h�Params b�m[_^bl_kv��qlh�iZjZf_lj�n�ojZgb�fhc�ijhp_^mju�lZf�ijbkmlkl\m_l�b�hibkZg�ijZ\bevgh��

<uah\�ojZgbfhc�ijhp_^mju�b�kqblu\Zgb_�\ha\jZs_ggh]h�_x�agZq_gby�aZ�ibrbl_�\�h[jZ[hlqbd_�kh[ulby�OnAfterInsert G>: procedure TForm1.Table1AfterInsert(DataSet: TDataSet); begin Sp1.Close; Sp1.Prepare; Sp1.ExecProc; Table1.FieldByName('nd').Value := Sp1.ParamByName('n').Value; Sp1.Close; end;

<k_�ljb�kihkh[Z�y\eyxlky�\aZbfhbkdexqZxsbfb.

4.3. OjZgbfu_�ijhp_^mju

OjZgbfZy� ijhp_^mjZ� � –� wlh�fh^mev��gZibkZgguc�gZ�ijhp_^mjghf� yaud_� Inter-Base, ojZgysbcky�\�;>�gZ�k_j\_j_�b�\uau\Z_fuc�ba�ijbeh`_gbc��QZklh�bkihev�am_fu_�lbih\u_�SQL-aZijhku�d�k_j\_jm�j_dhf_g^m_lky�hnhjfeylv�\�\b^_�ojZ�gbfuo� ijhp_^mj�� lZd� dZd� wlh� ih\urZ_l� [ukljh^_ckl\b_� kbkl_fu�� OjZgbfu_�ijhp_^mju kha^Zxlky�\�kj_^_�WISQL beb�SQL Explorer. NhjfZl�ojZgbfhc�ijh�p_^mju: &5($7(�352&('85(�BfyIjhp_^mju�>�<oIZj�Lbi�>�<oIZj�Lbi@�«�@ 5(78516�>�<uoIZj�Lbi�>�<uoIZj�Lbi@�«�@ AS

Page 39: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

39

< L_eh�ijhp_^mju>

Ijbeh`_gb_� h[f_gb\Z_lky� bgnhjfZpb_c� k� ojZgbfhc� ijhp_^mjhc� q_j_a�kibkhd�\oh^guo�b�\uoh^guo�iZjZf_ljh\��dZd�k�h[uqghc�ijhp_^mjhc�gZ�Pascal’e. <hafh`gu_�lbiu�iZjZf_ljh\�kf��\�Ijbeh`_gbb��� L_eh�ojZgbfhc�ijhp_^mju�bf__l�\b^ �H[ty\e_gby�ehdZevguo�i_j_f_gguo! BEGIN ����Hi_jZlhj! ����Hi_jZlhj!�« END

?keb�\�ojZgbfhc�ijhp_^mj_�bkihevamxlky�ehdZevgu_�i_j_f_ggu_��lh�\k_�hgb�^he`gu�[ulv�h[ty\e_gu: '(&/$5(�9$5,$%/(�BfyI_j_f_gghc��Lbi�

KbglZdkbk�yaudZ�\h�fgh]hf�ZgZeh]bq_g�Pascal. Ijb�gZibkZgbb�l_eZ�ojZ�gbfhc�ijhp_^mju�fh]ml�bkihevah\Zlvky: hi_jZlhj�ijbk\Zb\Zgby�BfyI_j_f_gghc� �\ujZ`_gb_; hi_jZlhjgu_�kdh[db�BEGIN …END, hi_jZlhj�IF(< mkeh\b_>)THEN <hi_jZlhj�> ELSE <hi_jZlhj2>, hi_jZlhj�pbdeZ WHILE (<mkeh\b_>) DO <hi_jZlhj> b�g_dhlhju_�^jm]b_�[1].

OjZgbfZy�ijhp_^mjZ�fh`_l�kh^_j`Zlv�jZaebqgu_�SQL-hi_jZlhju��Hi_jZ�lhj�SELECT�bkihevam_lky�\�jZkrbj_gghc�j_^Zdpbb��<�g_]h�^h[Z\ey_lky�ij_^eh�`_gb_�INTO :i_j_f_ggZy�[, :i_j_f_ggZy] . <�i_j_qbke_ggu_�i_j_f_ggu_�beb�\u�oh^gu_�iZjZf_lju�[m^ml�aZibkZgu�agZq_gby��\ha\jZsZ_fu_�hi_jZlhjhf SELECT.

OjZgbfu_�ijhp_^mju�^_eylky�gZ�ijhp_^mju�^_ckl\by�b�ijhp_^mju�hl[h�jZ��Ijhp_^mju�^_ckl\by�g_�\ha\jZsZxl�iZjZf_ljh\�beb�\ha\jZsZxl�h^bg� wd�a_fieyj� iZjZf_ljh\��Ih^� wda_fieyjhf� ihgbfZ_lky� kljhdZ� \� j_amevlbjmxs_f�gZ[hj_�^Zgguo��Ijhp_^mju�hl[hjZ�\ha\jZsZxl�g_kdhevdh�wda_fieyjh\��>ey�\u�ah\Z�ijhp_^mj�^_ckl\by�\�InterBase ijbf_gy_lky�dhfihg_gl�TStoredProc, ̂ ey�\u�ah\Z�ijhp_^mj�hl[hjZ�–�dhfihg_gl�TQuery.

EZ[hjZlhjgZy�jZ[hlZ�������<uah\�ijhp_^mj�^_ckl\by� 1. Kha^Zcl_�\�;>�ZakGdb ojZgbfmx�ijhp_^mjm:

CREATE PROCEDURE MAXIM (dname CHAR(10)) RETURNS (max_total integer) AS BEGIN SELECT max(cd.Total) FROM cd, detal WHERE (cd.nd=detal.nd)and (detal.name= :dname) into :max_total; END

2. JZaf_klbl_�gZ�nhjf_�dhfihg_glu��DataBase1: TDataBase, Query1, Data-Source1, DBGrid1 b�StoredProc1. GZkljhcl_�DataBase1 gZ�ZebZk�ZakGdb b�lZ[eb�

Page 40: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

40

lZ[ebpm� Detal b� hij_^_ebl_� ehdZevguc� ZebZk� db1. Kh_^bgbl_� i_j\u_� q_luj_�dhfihg_glZ��MklZgh\bl_�k\hckl\Z�StoredProc1:

Name - Sp1 StoredProcName - Maxim DatabaseName - Db1 ���<�h[jZ[hlqbd_�kh[ulby�s_eqdZ�ih�yq_cd_�lZ[ebpu�DBGrid1 aZibrbl_

procedure TForm1.DBGrid1CellClick(Column: TColumn); begin Sp1.Unprepare; // AZ^Zgb_�\oh^gh]h�iZjZf_ljZ�ojZgbfhc�ijhp_^mju: Sp1.ParamByName('Dname').AsString:= table1.FieldByName('Name').AsString; Sp1.Prepare; // K\yau\Zgb_�iZjZf_ljh\�Sp1 b�iZjZf_ljh\�OI Sp1.ExecProc; // �<uiheg_gb_�ojZgbfhc�ijhp_^mju // Hlh[jZ`_gb_�\uoh^gh]h�iZjZf_ljZ: Label2.Caption:=Sp1.ParamByName('max_total').AsString; end;

Jbk���

���Fh^bnbpbjmcl_�aZijhk�^ey�\u^Zqb�fZdkbfZevgh]h��fbgbfZevgh]h�b�

kj_^g_]h�aZdZaZ� EZ[hjZlhjgZy�jZ[hlZ�����<uah\�ijhp_^mj�hl[hjZ <�ijhp_^mjZo��\ha\jZsZxsbo�g_kdhevdh�kljhd��h[uqgh�bkihevam_lky�dhg�

kljmdpby

FOR �hi_jZlhj�6(/(&7! DO SUSPEND;

A^_kv�hi_jZlhj�SUSPEND \uihegy_lky�^ey�dZ`^hc�kljhdb��\ha\jZs_gghc�hi_�jZlhjhf�SELECT. Hi_jZlhj SUSPEND i_j_^Z_l�agZq_gby�\uoh^guo�iZjZf_ljh\ \uau\Zxs_fm� ijbeh`_gbx� b� ijbhklZgZ\eb\Z_l� jZ[hlm� ojZgbfhc� ijhp_^mju��

Page 41: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

41

ihdZ� ijbeh`_gb_� g_� aZijhkbl� ke_^mxsmx� ihjpbx� iZjZf_ljh\�� Ihke_� wlh]h�mijZ\e_gb_�kgh\Z�i_j_^Z_lky��hi_jZlhjm��SELECT.

Ba�ijbeh`_gby ojZgbfZy��ijhp_^mjZ�hl[hjZ�\uau\Z_lky�hi_jZlhjhf 6(/(&7� �)520��BfyOI!���kibkhd�\oh^guo�iZjZf_ljh\!�

���Kha^Zcl_�ojZgbfmx�ijhp_^mjm� CREATE PROCEDURE zakazy (dname CHAR(10)) RETURNS (out_nc INTEGER, out_data DATE, out_total INTEGER) AS BEGIN FOR SELECT cd.nc, cd.data, cd.total FROM cd, detal WHERE (cd.nd=detal.nd) and (detal.name= :dname) INTO :out_nc, out_data, out_total DO SUSPEND; END

>ZggZy�ijhp_^mjZ�\u\h^bl�bgnhjfZpbx�h�aZdZaZo�gZ�ba^_eb_��i_j_^Z\Z_�fh_�\h�\oh^ghf�iZjZf_lj_�

���JZkiheh`bl_�^\_�ljhcdb�dhfihg_glh\�TQuery, TDataSource, TDBGrid b h^bg�DataBase1: TDataBase.�K\y`bl_�bo�k�;>�ZakGdb (kf�jbk�����

Jbk���

���<�k\hckl\h�SQL ^ey�Query1 aZibrbl_

select * from detal

Z�\�k\hckl\h�SQL ^ey�Query2 select * from zakazy (:dname)

H[jZs_gb_�d�ojZgbfhc�ijhp_^mj_ zakazy (:dname) mdZau\Z_lky�ihke_ from�\f_�klh�bf_gb�lZ[ebpu�

���H[jZ[hlqbd�^ey�DBGrid1: procedure TForm1.DBGrid1CellClick(Column: TColumn); begin

Page 42: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

42

Query2.Close; Query2.ParamByName('Dname').asstring:= Query1.FieldByName('Name').asstring; Query2.open; end;

GZ�i_j\uc�\a]ey^��^ey�ih^h[gh]h�mklZgh\e_gby�k\ya_c�f_`^m�lZ[ebpZfb�m^h[g__�bkihevah\Zlv��k\hckl\Z�dhfihg_glh\�TTable��kf�i�������h^gZdh�\�©deb�_gl-k_j\_jguoª�ijbeh`_gbyo�ih^h[gu_�gZ\b]Zpbhggu_�ijb_fu�g_�j_dhf_g^m�xlky�

�����Ljb]]_ju

Ljb]]_j�–�wlh�ojZgbfZy�gZ�k_j\_j_�hkh[Zy�ijhp_^mjZ��Z\lhfZlbq_kdb�\uau\Z_�fZy�ijb�gZklmie_gbb�dZdh]h-eb[h�kh[ulby�\�;>��<�dZq_kl\_�kh[ulbc�jZkkfZljb�\Zxlky� baf_g_gb_�� m^Ze_gb_� beb� ^h[Z\e_gb_� aZibkb��D� ljb]]_jm� g_evay� h[jZ�lblvky�ba�ijbdeZ^ghc�ijh]jZffu��m�g_]h�hlkmlkl\mxl�\oh^gu_�b�\uoh^gu_�iZ�jZf_lju���K�ihfhsvx�ljb]]_jh\�h[uqgh�j_Zebamxlky�[bag_k-ijZ\beZ��aZ^Zxsb_�eh]bdm�jZ[hlm�k�;>��gZijbf_j��]_g_jZlhju�^ey�ih^^_j`Zgby�mgbdZevguo�agZq_�gbc�dexq_\uo�ihe_c��dZkdZ^gu_�\ha^_ckl\by�^ey�h[_ki_q_gby�kkuehqghc�p_eh�klghklb��\_^_gb_�j_]bkljZpbhgguo�`mjgZeh\��gZdZieb\Zgb_�klZlbklbdb�b�l�i�

Ljb]]_j�kha^Z_lky�hi_jZlhjhf &5($7(�75,**(5�BfyLjb]]_jZ�)25�BfyLZ[ebpu [ACTIVE | INACTIVE] {BEFORE | AFTER} {DELETE | INSERT | UPDATE} $6��L_eh�ljb]]_jZ!

ACTIVE|INACTIVE�mdZau\Z_l��Zdlb\_g�ljb]]_j�beb�g_l��Ih�mfheqZgbx�^_ckl\m_l�ACTIVE. BEFORE | AFTER�mdZau\Z_l�fhf_gl�\uiheg_gby�ljb]]_jZ��^h�beb�ihke_�aZihfb�gZgby�baf_g_gbc�\�;>� DELETE | INSERT | UPDATE�mdZau\Z_l�lbi�kh[ulby��gZ�dhlhjh_�j_Z]bjm_l�ljb]�]_j�

NhjfZl�l_eZ�ljb]]_jZ�b�Ze]hjblfbq_kdbc �yaud�lZdb_�`_��dZd�m�ojZgbfuo�ijhp_^mj��Hlebqb_�khklhbl�\�\hafh`ghklb�h[jZs_gby�d��klZjuf�b�gh\uf�agZq_�gbyf�klhe[ph\�lZ[ebpu��AZibkv�OLD.BfyKlhe[pZ��hagZqZ_l�h[jZs_gb_�d�kh�klhygbx�klhe[pZ�^h�\g_k_gby�\hafh`guo�baf_g_gbc��AZibkv�NEW.BfyKlhe[pZ – d�khklhygbx�klhe[pZ�ihke_�\g_k_gby�\hafh`guo�baf_g_gbc�

Ijbf_j�ljb]]_jZ�^ey�ih^^_j`Zgby�kkuehqghc�p_ehklghklb�iml_f�dZkdZ^�guo�baf_g_gbc�\�k\yaZgguo�lZ[ebpZo�

CREATE TRIGGER by_nc FOR cust ACTIVE BEFORE UPDATE AS BEGIN

Page 43: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

43

IF (old.nc <> new.nc) THEN UPDATE cd SET nc = new.nc WHERE nc=old.nc END

Ljb]]_j�^ey�dZkdZ^gh]h�m^Ze_gby�aZibk_c�gZibrbl_�kZfhklhyl_evgh� AZf_qZgb_: i_j_^�bkihevah\Zgb_f�lZdh]h�jh^Z�ljb]]_jh\�g_h[oh^bfh�m^Zeblv�ba�;>�h]jZgbq_gby�kkuehqghc�p_ehklghklb��_keb�hgb�bf_xlky�

AZ^Zgby�^ey�kZfhklhyl_evghc�jZ[hlu AZ^Zqb� ih� ijh_dlbjh\Zgbx� [Za� ^Zgguo� ^ey� dhgdj_lguo�ij_^f_lguo� h[eZkl_c�kf��\�f_lh^bq_kdbo�mdZaZgbyo [4,5]. Ijbf_jgu_�aZ^Zqb�gZ�ihkljh_gb_�SQL-aZijhkh\��J_r_gb_�dZ`^hc�aZ^Zqb�^he`�gh�bf_lv�\b^�aZdhgq_ggh]h�ijbeh`_gby��g_h[oh^bfu_�iZjZf_lju�^he`gu�\\h�^blky�k�ihfhsvx�\bamZevguo�dhfihg_glh\��J_r_gb_�ij_^klZ\ey_lky�\��^\mo�\Z�jbZglZo: gZ�hkgh\_�deb_glkdbo�aZijhkh\ b�k�bkihevah\Zgb_f�ojZgbfuo�ijhp_�^mj. 1. <�lZ[ebpZo�cust, detal, cd \u\_klb�nZfbebb�ihdmiZl_e_c�aZ^Zggh]h�lh\ZjZ�aZ�

aZ^Zgguc�ijhf_`mlhd�\j_f_gb��Ih\lhjyxsboky�ihdmiZl_e_c�ba� kibkdZ�bk�dexqblv�

2. GZclb�aZdZaqbdh\��m�dhlhjuo�bf_xlky�ihdmidb�^Zggh]h�lh\ZjZ��\�dhebq_kl\_��ij_\urZxs_f�kj_^gbc��h[t_f�ihdmihd�^Zggh]h�lh\ZjZ�

3. <� lZ[ebpZo� cust, detal, cd \u\_klb�gZa\Zgby�^_lZe_c��dmie_gguo�mdZaZgguf�aZdZaqbdhf�aZ�mdZaZggmx�^Zlm��

4. <u\_klb�nZfbebx�b�Z^j_k�aZdZaqbdZ��dmib\r_]h�aZ^Zgguc�lh\Zj�jZgvr_�^jm�]bo�

5. GZclb�gZa\Zgb_�lh\ZjZ, dhlhjuc�aZ^Zgguc�ihdmiZl_ev�ijbh[j_lZe�qZs_�^jm�]bo��l�_��gZ�dhlhjuc�hg�k^_eZe�[hevr_�\k_]h�aZdZah\��

6. <u\_klb�gZa\Zgby�lh\Zjh\��dmie_gguo�ihdmiZl_e_f��nZfbeby�dhlhjh]h�\dex�qZ_l�aZ^Zggu_�[md\u��g_�iha^g__�mdZaZgghc�^Zlu�

7. <u\_klb�nZfbebx� aZdZaqbdZ�� k^_eZ\r_]h� kZfuc� djmiguc� jZah\uc� aZdZa�gZ�mdZaZgguc�lh\Zj�

8. <�lZ[ebpZo�detal, cd \u\_klb�\u^Zlv�gZ�dZ`^mx�^Zlm�qbkeh�b�h[t_f�k^_ehd�gZ�mdZaZgguc�lh\Zj�

9. <u\_klb� gZa\Zgby� \k_o� lh\Zjh\�� dhlhju_� ijbh[j_e� ihdmiZl_ev�� dmib\rbc�gZb[hevr__�qbkeh�lh\Zjh\��<u\_klb�ba�gbo�lhevdh�lh\Zju��dmie_ggu_�ihke_�mdZaZggh]h�kjhdZ�

10. <u\_klb�h[s__�dhebq_kl\h�aZdZah\��fZdkbfZevguc�b�fbgbfZevguc�aZdZa��gZ�a\Zgb_�lh\ZjZ�ih�dZ`^hfm�lh\Zjm��dmie_gghfm�mdZaZgguf�aZdZaqbdhf�ba�mdZ�aZggh]h�]hjh^Z�

11. <u\_klb�gZa\Zgby� lh\Zjh\�� dmie_gguo�ihdmiZl_eyfb�ba� mdZaZggh]h� ]hjh^Z� _keb� kmffZ� k^_edb� ij_\urZeZ� \\_^_ggh_� qbkeh�� J_amevlZl� mihjy^hqblv� ih�gZa\Zgbx�lh\ZjZ��bkdexqb\�ih\lhjyxsb_ky�lh\Zju�

Page 44: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

44

12. GZclb�aZdZaqbdh\��qZs_�\k_]h�ihdmiZ\rbo�mdZaZgguc�lh\Zj� 13. GZclb�kmffm�aZdZah\��k^_eZgguo�gZ�mdZaZgguc�lh\Zj�aZ�^Zgguc�i_jbh^� 14. GZclb�gZa\Zgby�]hjh^h\��ba�dhlhjuo�qZs_�\k_]h�^_eZebkv�aZdZau�aZ�^Zgguc�

i_jbh^�\j_f_gb� 15. GZclb�aZdZaqbdZ�ba�mdZaZggh]h�]hjh^Z��dmib\r_]h�kZfuc�^_r_\uc�lh\Zj�ba�

\\_^_gghc�p_gh\hc�]jmiiu� 16. K� ihfhsvx� ljb]]_jh\� j_Zebah\Zlv� \_^_gb_�`mjgZeZ� klZlbklbdb�ijh^Z`�ih�

dZ`^hfm�]hjh^m�b�lh\Zjm� 17. Kha^Zlv�ljb]]_ju�^ey�h[_ki_q_gby�dZkdZ^guo�baf_g_gbc�\�;>�©AZdZauª� 18. Kha^Zlv�ljb]]_j�^ey�\_^_gby�`mjgZeZ�baf_g_gbc�^ey�lZ[ebpu�©>_lZebª� 19. >ey�;>� ©IhebdebgbdZª�gZibkZlv�ljb]]_j�^ey�\_^_gby�klZlbklbdb� aZ[he_\Z�

gbc�^ey�jZaguo�\hajZklguo�]jmii�

Ke_^mxsb_�aZ^Zqb�j_rblv�k�bkihevah\Zgb_f�bg^_dkh\�b�nbevljh\� 20. Ih^kqblZlv�kj_^gbc�h[t_f�k^_ehd�gZ�^Zgguc�lh\Zj�aZ�^Zgguc�i_jbh^� 21. Ih^kqblZlv�kmffm�aZdZah\��k^_eZgguo�ba�mdZaZggh]h�]hjh^Z�aZ�^Zgguc�i_jb�

h^� 22. Ih^kqblZlv�qbkeh�aZdZaqbdh\�ba�^Zggh]h�]hjh^Z��dmib\rbo�^Zgguc�lh\Zj� 23. <�;>�©GZmqgZy�dhgn_j_gpbyª�ih^kqblZlv�kmffm�\g_k_gguo�hj]\aghkh\�^hd�

eZ^qbdZfb�ba�^Zggh]h�]hjh^Z� 24. GZibkZlv�nhjfm�^ey�aZg_k_gby�bgnhjfZpbb�\�lZ[ebpm�Detal. I_j_^�aZg_k_gb�

_f�ijh\_jblv��bf__lky�eb�^Zgguc�lh\Zj�m`_�gZ�kdeZ^_� 25. GZibkZlv�nhjfm�^ey�aZg_k_gby�bgnhjfZpbb�\�lZ[ebpm�©Dhgn_j_gpbyª

Keh\Zjv�l_jfbgh\

:ebZk��Mkeh\gh_�gZbf_gh\Zgb_�dZlZeh]Z��]^_�gZoh^blky�;>��:ebZku�j_]bkljb�jmxlky�b�bkihevamxlky�BDE. ;ZaZ�^Zgguo. GZ[hj�\aZbfhk\yaZgguo�lZ[ebp� <lhjbqguc� bg^_dk��>hihegbl_evguc � bg^_dk�� kljhysbcky� ih� ex[hfm� dexqm��djhf_��i_j\bqgh]h�dexqZ� Bg^_dk��KljmdlmjZ��aZ^ZxsZy�eh]bq_kdbc�ihjy^hd�aZibk_c�\�lZ[ebp_��hlebqguc�hl�nbabq_kdh]h�ihjy^dZ� DeZkk��H[t_dlh\uc�lbi�i_j_f_gguo� Dexq��Ihe_��ih�dhlhjhfm�ijhbkoh^bl�khjlbjh\dZ�beb�ihbkd� Dhfihg_gl��JZagh\b^ghklv� deZkkZ�� � kihkh[gZy�\bamZevgh�i_j_ghkblvky�\�ijh�]jZffm� Dwrbjh\Zggu_�baf_g_gby��F_oZgbaf�^hklmiZ��ijb�dhlhjhf�\k_�baf_g_gby�\�lZ[ebp_�aZihfbgZxlky�\�[mn_j_�gZ�ehdZevghc�W<F�b�i_j_ghkylky�gZ�k_j\_j�hl�^_evghc�ljZgaZdpb_c� Fh^mev��G_aZ\bkbfh�dhfibebjm_fZy�ijh]jZffgZy�_^bgbpZ�

Page 45: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

45

Fh^mev�^Zgguo��G_hlh[jZ`Z_fZy�nhjfZ��dhgl_cg_j�^ey�dhfihg_glh\�^hklmiZ�d�^Zgguf�� H[t_dl��Wda_fieyj�deZkkZ. I_j\bqguc�bg^_dk. Bg^_dk��ihkljh_gguc�ih�i_j\bqghfm�dexqm. I_j\bqguc� dexq�� Ihe_�� mgbdZevguf� h[jZahf� b^_glbnbpbjmxs__� aZibkv� \�lZ[ebp_� LjZgaZdpby. Eh]bq_kdZy�_^bgbpZ�baf_g_gbc�^Zgguo��i_j_\h^ysZy�;>�ba�h^gh�]h�p_ehklgh]h�khklhygby�\�^jm]h_� KhklZ\ghc�dexq. Dexq��khklhysbc�ba�g_kdhevdbo�ihe_c� L_dmsZy�aZibkv��AZibkv��^hklmigZy�^ey�j_^Zdlbjh\Zgby� NhjfZ��<bamZevguc�dhfihg_gl��hlh[jZ`Z_fuc�\�\b^_�hdgZ��Dhgl_cg_j�^ey�\b�amZevguo�dhfihg_glh\��i_j_g_k_gguo�\�ijh]jZffm�

Ijbeh`_gb_

I���KljmdlmjZ�njZ]f_glZ�;>�©AZdZauª (nhjfZl Paradox) LZ[ebpZ�Cust (©AZdZaqbdbª) Ihe_ Lbi >ebgZ HibkZgb_ nc AutoIncrement Dh^�aZdZaqbdZ��i_j\bqguc�dexq� Name Alpha �kbf\hev�

guc� 20 Bfy�aZdZaqbdZ��\lhjbqguc�dexq�

Ad-dress

Alpha �kbf\hev�guc�

20 :^j_k��aZdZaqbdZ

LZ[ebpZ�Detal (©>_lZebª) nd AutoIncrement Dh^ ba^_eby��i_j\bqguc�dexq� Name Alpha �kbf\hev�

guc� 20 Bfy�ba^_eby��\lhjbqguc�dexq�

Price Number P_gZ��_^bgbpu�lh\ZjZ��m�_�� Rest Long Integer HklZlhd�gZ�kdeZ^_��rlmd� LZ[ebpZ�CD (©@mjgZe�aZdZah\ª) no AutoIncrement Ghf_j�aZdZaZ��i_j\bqguc�dexq� Nc Long Integer Dh^�aZdZaqbdZ Nd Long Integer Dh^�ba^_eby Kolvo Long Integer H[t_f�aZdZaZ��rlmd� Total Number H[t_f�aZdZaZ��m�_�� Data Date >ZlZ�aZdZaZ

Page 46: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

46

I���Lbiu�ihe_c�Paradox Lbi�ih�ey

H[h-ag�

OjZgbfu_�agZq_gby

Alpha A Kbf\hevgu_�agZq_gby�^ebghc�^h�����kbf\heh\� Number N QbkeZ�k�ieZ\Zxs_c�lhqdhc�\�^bZiZahg_�–10307 … 10 308.

Lhqghklv����agZqZsbo�pbnj Money $ :gZeh]bq_g��Number��gh�qbkeh�agZdh\�ihke_�aZiylhc�– 2.

<u\h^blky�agZd�$. Short S P_eu_�qbkeZ�\�^bZiZahg_�–32767 … 32767. LongIn-teger

L P_eu_�qbkeZ�\�^bZiZahg_�–2147 483648 … 2147483647.

BCD # Qbkeh\u_�agZq_gby�ih\ur_gghc�lhqghklb� Date D AgZq_gby�^Zlu��\�^bZiZahg_�hl����������� ^h� g.w.��^h�

31.12.9999) . Time T AgZq_gby�\j_f_gb� Time-stamp

@ AgZq_gby�^Zlu�b�\j_f_gb�

Memo M Kljhdh\u_�agZq_gby�^ebghc�k\ur_�����kbf\heh\��>h�����kbf\heh\�fh`_l�ojZgblvky�\�lZ[ebp_��hklZevgu_�hl^_evgh��\�MB-nZce_�

Format-ted Memo

F Lh�`_��gh�ojZgbl�l_dklu��nhjfZlbjh\Zggu_�rjbnlhf��p\_�lhf�b�l�i�

Graph-ics Fields

G =jZnbq_kdb_�bah[jZ`_gby�\�nhjfZl_�nZceh\�.bmp, .pcx, .tif, .gif, .eps��OjZgylky�\�hl^_evguo�nZceZo�

OLE O BgnhjfZpby�h[�h[t_dlZo�OLE (Object Linking and Embed-ding).

Logical L Eh]bq_kdb_�agZq_gby��‘True’, ‘False’. AutoIn-crement

± P_eu_�qbkeZ�lhevdh�^ey�ql_gby�k�Z\lhfZlbq_kdbf�ijbjZs_�gb_f��gZ���ijb�^h[Z\e_gbb�gh\hc�aZibkb��Bkihevamxlky�\�dZq_kl\_�i_j\bqgh]h�dexqZ�

Binary (Blob)

B Ijhba\hevgu_�^\hbqgu_�agZq_gby��bgl_jij_lbjm_fu �ijh�]jZffhc�ihevah\Zl_ey��OjZgylky�hl^_evgh��\�F<-nZce_�

Bytes Y Lh�`_��gh�ojZgylky�\f_kl_�k�lZ[ebp_c�

I���Lbiu�ihe_c�InterBase Lbi�ihey JZaf_j��

[Zcl OjZgbfu_�agZq_gby

SmallInt 2 P_eu_�qbkeZ�\�^bZiZahg_�–32767 … 32767. Integer 4 P_eu_�qbkeZ�\�^bZiZahg_�–2147 483648 … 2147483647.

Page 47: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

47

Float 4 QbkeZ�k�ieZ\Zxs_c�lhqdhc�\�^bZiZahg_������–3,4 ⋅1038 … 3,4 ⋅10 38

�^h�7�agZqZsbo��pbnj� Double precision

8 QbkeZ�k�ieZ\Zxs_c�lhqdhc�\�^bZiZahg_���� –1,7 ⋅10307 … 1,7⋅ 10 308 lhqghklvx�^h����agZqZsbo�pbnj�

Char(n) 0-32767 Kbf\hevguc�klhe[_p�^ebghc�n kbf\heh\. Var-Char(n)

0-32767 Kbf\hevguc�klhe[_p�i_j_f_gghc ^ebgu��kh^_j`Zsbc�^h�n kbf\heh\.

Date 8 >ZlZ�\�ij_^_eZo�hl������������^h���.12.5491�b�\j_fy� Blob I_j_f� Ex[hc�lbi�^\hbqguo�^Zgguo.

Ebl_jZlmjZ

1. RmfZdh\� I�<�� Delphi 3 b� jZajZ[hldZ� ijbeh`_gbc� [Za� ^Zgguo�� –�F��� ©Gh�eb^`ª��������–�����k� 2. >ZjZo\_eb^a_�I�=���FZjdh\�?�I��Delphi 4. - KI[�� «BHV-KZgdl-I_l_j[mj]ª� 1999. -�����k� 3. LxdZq_\�G�:���K\bjb^h\�X�L��Ijh_dlbjh\Zgb_�[Za�^Zgguo�\�Delphi. – <hjh�g_`: ©;bhfbdª��������–�����k� 4. :klZoh\Z�B�N���Lheklh[jh\�:�I���F_evgbdh\�<�F��SQL \�ijbf_jZo�b�aZ^ZqZo��–�<hjhg_`��������–�����k� 5. >hklmi� d� ;>� \ Delphi / Khkl.: F�<�;ZdeZgh\, G�:�LxdZq_\, X�L�K\bjb^h\; <hjhg_`. ]hk� mg-l. - <hjhg_`��������–����k� 6. Dh]k\_ee�>��Bamqb�kZf�ijh]jZffbjh\Zgb_ �[Za�^Zgguo�\�Delphi 2.0 k_]h^gy��- Fg���©Ihimjjbª��������-�����k� 7. >Zgl_fZgg�>���Fbr_e�>���L_cehj�>��Ijh]jZffbjh\Zgb_ �\�kj_^_�Delphi. - D���©>bZKhnl�El^ª��������-�����k� 8. ?iZg_rgbdh\� :��� ?iZg_rgbdh\� <�� Ijh]jZffbjh\Zgb_ � \� kj_^_� Delphi 2.0. QZklv�2. - F���«>B:EH=-FBNB», 1997. -�����k� 9. JZajZ[hldZ�Windows-ijbeh`_gbc��Delphi / Khkl�: <�=�Jm^Ze_\; <hjhg_`. ]hk� mg-l. –�<hjhg_`�����9. –����k� 10. Hkgh\u� jZajZ[hldb� ijbeh`_gbc� [Za� ^Zgguo� \� kj_^_� Delphi / Khkl�: <�=�Jm^Ze_\; <hjhg_`. ]hk� mg-l. –�<hjhg_`��������–����k� 11. H[t_dlgh-hjb_glbjh\Zggh_ �ijh]jZffbjh\Zgb_��Kha^Zgb_�gh\h]h�dhfihg_g�lZ / Khkl.: G�:�LxdZq_\, <�=�Jm^Ze_\, F�<.;ZdeZgh\; <hjhg_`. ]hk� mg-l. –�<h�jhg_`��������–����k�

Page 48: Zgby - edu.ru · 5 < ijhkl_cr_f kemqZ_ bkihevamxlky ljb dhfihg_glZ TTable, TDataSource b TDBGrid. JZkkfhljbf f_lh^bdm bo bkihevah\Zgby Dhfihg_gl TTable hibku\Z_l eh]bq_kdmx \bjlmZevgmx

48

KH>?J@:GB? IJ?>BKEH<B? ................................................................................................................................. 2

��F?LH>BD: KHA>:GBY IJBEH@?GBC ............................................................................. 3

���� <<?>?GB?.................................................................................................................................... 3 ���� HKGH<GU? DHFIHG?GLU ....................................................................................................... 4 ���� MKL:GH<E?GB? K<YA?C F?@>M L:;EBP:FB ...................................................................... 8 ����FH>MEB >:GGUO .................................................................................................................... 10

�� G:<B=:PBHGGUC >HKLMI D ;> ...................................................................................... 11

���� J:;HL: K IHEYFB G:;HJ: >:GGUO .................................................................................... 11 ������Kha^Zgb_ h[t_dlh\-ihlhfdh\ 7)LHOG ............................................................................. 12 ������ J_^Zdlhj ihe_c ................................................................................................................. 12 ������ H[jZs_gb_ d ihex ............................................................................................................ 13 ������ Ihemq_gb_ bgnhjfZpbb h iheyo..................................................................................... 15

���� G:<B=:PBY IH G:;HJM >:GGUO.......................................................................................... 17 ���� >?CKL<BY G:> L?DMS?C A:IBKVX ..................................................................................... 18 ����NBEVLJ:PBY G:;HJ: >:GGUO ............................................................................................. 19 ���� BG>?DKU B BG>?DKGUC IHBKD........................................................................................... 21

2.5.1 �Kha^Zgb_ bg^_dkZ .............................................................................................................. 21 ������ Ihemq_gb_ bgnhjfZpbb h[ bg^_dk_ ............................................................................... 22 ������ Bg^_dkguc ihbkd .............................................................................................................. 23

3. SQL-HJB?GLBJH<:GGUC >HKLMI D ;> ........................................................................ 26

���� BKIHEVAH<:GB? SQL ............................................................................................................ 26 ���� >BG:FBQ?KDB? A:IJHKU ..................................................................................................... 30 ������ IZjZf_ljbaZpby aZijhkh\ .............................................................................................. 30 ������Nhjfbjm_fu_ aZijhku ..................................................................................................... 32

���� J?>:DLBJH<:GB? J?AMEVL:LH< A:IJHK: .......................................................................... 32

�� J:;HL: K K?J<?JHF ,17(5%$6(....................................................................................... 35

���� DHFIHG?GL TDATA BASE....................................................................................................... 36 ���� =?G?J:LHJU............................................................................................................................. 37 ���� OJ:GBFU? IJHP?>MJU ......................................................................................................... 38 ���� LJB==?JU.................................................................................................................................. 42

A:>:GBY >EY K:FHKLHYL?EVGHC J:;HLU.................................................................. 43

KEH<:JV L?JFBGH<................................................................................................................... 44

IJBEH@?GB?................................................................................................................................. 45

I�� KLJMDLMJ: NJ:=F?GL: ;> ©A:D:AU» (NHJF:L PARADOX)............................................ 45 I�� LBIU IHE?C PARADOX ........................................................................................................... 46 I�� LBIU IHE?C INTERBASE........................................................................................................ 46

EBL?J:LMJ: ................................................................................................................................... 47

KH>?J@:GB? .........................................................HRB;D:� A:DE:>D: G? HIJ?>?E?G:�

KhklZ\bl_ev�Jm^Ze_\�<Ze_jbc�=_ggZ^v_\bq� J_^Zdlhj�;mgbgZ�L�>�