Байланысты: «Бағдарламалау тілдері» пәнінен тәжірибелік жұмыстар жинағы
4.1 Мәліметтер қоры және қосымша. Реляциялық мәліметтер қоры және олармен жұмыс істеу механизмдері. Мәліметтер қорын құру Borland C++ Builder қолданып, бiр қолданушылық деректер қорымен, сонымен қатар ДҚБЖ серверлерімен, яғни Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, сондай-ақ ODBC-көздерімен жұмыс жасайтын қосымша құруға болады.
C++ Builder-де деректер жиыны – бұл жазбалар жиынынан тұратын объект, олардың әрқайсысы өрістерден және ағымдағы жазба көрсеткіштерінен тұрады. Деректер жиыны C++ Builder –де TDataSet абстрактілі класының (абстрактілі клас- басқа кластарды туындататын класс, бірақ берілген кластан объект экзамплярын құруға болмайды) тума класстары болады. Мысалы, Data Access парағының компоненттер палитрасындағы TQuery, TTable және TStoredProc компоненттері - TDBDataSet мұрагерлері, олар өз кезегінде TDataSet мұрагерлері. TDataSet - кестелерді ашу, сұраныстарды және жолдар бойынша ауыстыруларды орындайтын құралдармен қамтамасыз ететін, кестелерді басқару және сұраныстар абстракциясынан тұрады.
TDataSource компоненті DataSource компоненті TDataSet (TTable, TQuery, TStoredProc) және Data Controls компоненттері арасындағы аралық қызметін атқарады. Data Controls компоненттері - формада деректердің ұсынылуын қамтамасыз ететін басқару элементтері. TdataSet компоненттері Borland Database Engine (BDE) кітапханасымен байланысты басқарады, ал DataSource компоненті Data Controls компоненті деректерімен байланысты басқарады.
ДҚ-ның қарапайым қосымшаларында DataSource компоненті - TDataSet (TTable немесе TQuery) бір компонентімен және Data Controls (DBGrid, DBEdit және т.б.) бірнеше компонентімен байланысты. DataSource компонентінің TDataSet және DataControls компоненттерімен байланысы келесі қасиеттер мен оқиғаларды қолдану арқылы жүзеге асады: DataSet қасиеті – TDataSource компонентінің атын белгілейді. DataSet мәнін объектілер инспекторы арқылы орнатылады.
Enabled қасиеті - TDataSource және Data Controls компоненттері арасындағы байланысты белсенді етеді немесе тоқтады. Егер Enabled қасиетінің мәні true болса, онда TDataSource Data Controls компоненттерімен байланысқан, яғни деректер жиыны өзгерiстерiн қабылдайды. Enabled қасиетін қолдану TDataSource пен Data Controls визуальды компоненттерiн уақытша айыруға мүмкiндiк бередi. Мысалы, іздеу жағдайында, экранда барлық кестелерді парақтағанда кестеде үлкен көлемдегі жазбаларды көрсетпеу үшін.
AutoEdit қасиеті - Data Controls компоненттерінде өңдеу қалай басталатынын бақылайды. Егер мәні true болса, онда өңдеу тәртiбі TDataSet компонентімен байланысқан Data Controls компонентiнің фокус алу кезiнен басталады. Қарсы жағдайда өңдеу режимі TDataSet компонентінің Edit әдісін шақыру кезінде басталады, мысалы DBNavigator компонентіндегі Edit батырмасын қолданушы басқаннан кейін.
OnDataChange оқиғасы – өрістер, жазбалар, кестелер, сұраныстар мәндерін өзгерту кезінде шақырылады.
OnUpdateData оқиғасы - қолданушы TDataSet-тегі ағымдағы жазбаны өзгерткісі келгенде шақырылады.
TTable компоненті Деректер қорындағы кестелерге қатынаудың ең қарапайым жолы TТable компонентін қолдану, ол бір кестеге қатынауға рұқсат береді. Осы мақсатта жиі қолданатын қасиеттері төмендегілер:
Active – берілген кесте ашық (true) немесе жоқ (false) екенін көрсетеді.
DatabaseName - құрамында ізделінетін кесте бар каталог аты, немесе қашықтағы ДҚ псевдонимі (alias) (Псевдонимдер BDE конфигурациясы утилиталары арқылы орнатылады, немесе мәзірдің Database/Explore пункті арқылы шақырылатын SQL Explorer арқылы орнатылады). Бұл қасиет кесте жабық (оның Active қасиеті false болғанда) болған жағдайда ғана өзгертіледі.
Мысалы:
Table1->Active = false;
Table1->DatabaseName = "BCDEMOS"
Table1->Active = true;
TableName – кесте аты.
Exclusive – егер бұл қасиет true мәнін қабылдаса, кесте берілген қосымшамен ашық болғанда, кестені басқа ешқандай қолданушы аша алмайды. Егер бұл қасиет false (үнсіздік бойынша) болса, онда басқа қолданушыларда осы кестені аша алады.
IndexName – кестеге екінші индексті белгілейді. Бұл қасиетті кесте ашық болғанда өзгертуге болмайды.
MasterFields – басқа кестемен байланыс жасау үшiн өрiстiң атын анықтайды.
MasterSource – TDataSource компонентінің аты, TTable осы арқылы байланысқан кестеден деректерді алады.
ReadOnly - егер бұл қасиет true болса, кесте "тек қана оқу үшiн" тәртiбінде ашылған. Кесте ашық болғанда ReadOnly қасиетiн өзгертуге болмайды.
Fields - TField объектілері массиві. Бұл қасиетті қолданып, кесте құрылымы алдан-ала белгілі болғанда, өрістерге нөмірі бойынша қатынауға болады:
Edit1->Text=Table1->Fields[2]->AsString;
TTable компонентімен жұмыс жасағанда жиі қолданылатын әдістер:
Open және Close - Active қасиетіндегі True және False мәндеріне сәйкес.
Refresh - ДҚ деректер жиынын қайтадан санауға мүмкiндiк бередi.
First, Last, Next, Prior ағымдағы жазба көрсеткішін біріншіге, соңына, келесіге және алдынғы жазбаларға сәйкес ауыстырады, мысалы:
Table1->First();
while (!Table1->Eof)
{
//бірнәрсе жасаймыз...
Table1->Next();
};
Insert, Edit, Delete, Append – жазба қосу үшін кестелерді жазу, өңдеу, алып тастау, жазбаларды қосу режимдерiне ауыстырады
Post – өзгертілген деректерді физикалық сақтауды жүзеге асырады.
Мысалы,
Table2->Insert();
Table2->Fields[0]->AsInteger = 100;
Table2->Fields[1]->AsString =Edit1->Text;
Table2->Post();
Cancel – енгізілген өзгертулерді (физикалық сақталмаған) болдырмайды.
Формаға TТable компонентін енгізу үшін, келесілерді орындау қажет:
Data Access парағындағы TТable компонентін формаға немесе деректер модуліне орналастыру;
DatabaseName қасиетіне ДҚ орналасқан каталог немесе псевдоним атын беру;
TableName қасиетіне кесте атын беру немесе тізімнен кесте атын таңдау;
Формаға DataSource компонентін орналастыру және DataSet қасиетінің мәніне TТable компоненті атына беру;
Data Controls компоненттерін орналастыру және оларды DataSource компонентімен байланыстыру, яғни ДҚ кестелеріндегі деректер экранда көріну үшін.
TDBGrid компоненті TDBGrid компоненті TTable немесе TQuery компоненттері деректерін экранда кестелік түрде көрсетуді қамтамасыз етеді. Қосымшада берілген ДҚ көрсету, қою, жою, өңдеу үшін TDBGrid қолданады. Әдетте TDBGrid DBNavigator-мен бірге қолданылады, сонымен қатар басқа да интерфейстік элементтерді TTable компонентінің First, Last, Next, Ptior, Insert, Delete, Edit, Append, Post, Cancel өңдеуші оқиға әдістерін қосу арқылы қолдануға болады.
Кестенің сыртқы түрін (мысалы, баған тақырыбы жазуын) өңдеушінің Columns Editor қасиеті арқылы өзгертуге болады. Columns Editor шақыру DBGrid компонетінің контекстті мәзірінен сәйкес опцияны таңдау арқылы немесе объектілер инспекторы бағанынан Columns қасиетінің мәнін беру арқылы жүзеге асады.
4.1.1-сурет. DBGrid бағаны қасиетін Columns Editor арқылы орнату
DBGrid сипаттамаларын берудің тағы бір жолы TField компоненттері жиынының статистикалық әдістері бойынша. Деректер жиынындағы әр өріске құрылған TField типіндегі компонент арқылы DBGrid-те көріну үшін енін, форматын, маскасын, орналасатын жерін және басқа да сипаттамаларын орнатуға болады.
Float, Integer және Date өрістері DisplayMask қасиетіне ие. Бұл қасиетті, деректерді DBGrid компонентінде немесе Data Controls-тың басқа компонентінде форматтау үшін қолдануға болады. Мысалы, дата типті өрістерге mm-dd-yy экрандық форматын қолдануға болады.
Кейбір TField (мысалы, TStringField) компоненттері EditMask қасиетіне ие, ол DBGrid және басқа Data Controls компоненттеріне деректерді енгізуді орнатады.
EditMask қасиетін орнату үшін Object Inspector-дегі Field компонентін орнатып, EditMask қасиетін таңдау керек, кейін Input Mask Editor диалогты панелі көрінеді /4.1.2-сурет/. Өңдеу маскасын тексеру үшін Test Input өрісіне мән енгізу қажет.