32 урока по Делфи
32 Delphi урок
Урок 20: The компонент TTable. Създаване на таблици
чрез TTable компонент
На тази малка урок, ние ще завърши таблици проучване, създаване на възможности. Както си спомняте, ние вече усвоили два начина за създаване на таблица - с помощта на база данни за настолни компютри в комплект с Delphi (урок 11), както и с помощта на SQL-заявки (урок 12), който може да се използва в WISQL (Windows Interactive SQL - клиент част Местна InterBase) и компонент TQuery. Сега ще разгледаме как да се създаде местна маса в режим на изпълнение с помощта на TTable.
TTable компонент може да бъде поставен на форма по време на проектирането, или създаване на динамично по време на изпълнение. В последния случай, преди да го използвате, за да създадете, например, със следната конструкция:
Преди да се обадите CreateTable трябва да настроите стойностите на имотите
TABLETYPE - тип маса
DatabaseName - базата данни
TableName - името на таблицата
FieldDefs - масив от определения полеви
IndexDefs - масив от описания на индексите.
Имотът е тип TABLETYPE TTableType и определя вида на таблицата с данни. Ако този имот е настроен да ttDefault. тип маса се определя от файлово разширение, тази таблица, включваща:
Разширяване .db или без разширението: Таблица Paradox
псевдоним на локално дефиниран чрез TDatabase компонент.
TableName имот посочва името на таблицата база данни.
FieldDefs собственост (като тип TFieldDefs) към съществуваща таблица съдържа информация за всички области на маса. Тази информация е достъпна само в навечерието на готовност и се съхранява в масив TFieldDef инстанция. съхранение на данни за полета на физическите маса (по този начин изчислява на ниво поле на клиента не са им TFieldDef обект). Броят на полета се определя от имуществото на граф. и достъп до елементите на масив чрез имуществото на артикули.
Предмети на собственост [Index: Integer]: TFieldDef;
При създаване на маса, преди да се обадите CreateTable. трябва да създадете тези елементи. За тази цел има един клас TFieldDefs Добавете метод.
процедура Добави (Конст Име: низ; тип данни: TFieldType; Размер: Word; Необходим Булева);
Параметърът Name. като тип низ. определя името на полето. Типът данни на параметър (тип TFieldType) означава вида на терена. Тя може да има една от тези стойности, по смисъла на който е видно от имената им:
TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime, ftBytes, ftVarBytes, ftBlob, ftMemo,
Размер на параметър (тип дума) е размерът на полето. Тази опция има смисъл само за полета от тип ftString. ftBytes. ftVarBytes. ftBlob. ftMemo. ftGraphic. чийто размер може да варира значително. Сфера други видове винаги имат строго фиксиран размер, така че тази опция не е взето под внимание за тях. Четвъртият вариант - Задължително - определя дали областта може да бъде нула, когато пишете с базата данни. Ако този параметър е - вярно. след това се "изисква" на полето, т.е. Тя не може да има празна стойност. В противен случай, не е "необходима" на полето и, следователно, може да се запише нулева стойност. Имайте предвид, че документацията за Delphi и онлайн-справки грешка - не се споменава за четвъртия вариант за metodaAdd.
Ако искате да индекс на масата с една или повече области, използвайте метода за добавяне на IndexDefs на собственост. което, както може да се предположи, също предмет, т.е. TIndexDefs инстанция на класа. IndexDefs имот към съществуваща таблица съдържа информация за всички индекси на масата. Тази информация е достъпна само в навечерието на готовност и се съхранява в масив TIndexDef инстанция. съхраняване на данни на масата за индексиране. Броят на индексите определено имущество граф. и достъп до елементите на масив чрез имуществото на артикули.
Предмети на собственост [Index: Integer]: TIndexDef;
Добавете начин TIndexDefs клас е както следва:
процедура Добави (Конст Име, Fields: низ;
Опции: TIndexOptions);
Параметърът Name. като тип низ. определя името на индекса. Параметър полета (също като тип низ) означава име на поле, което трябва да се индексира, т.е. Името на полето индексиран. Съставният индекс, който използва няколко области може да бъде даден списък на имена на полета, разделени с запетая "; "Например:" Field1; Field2; Field4 ". Последният параметър - Настройки - определя вида на индекс. Той може да има набор от ценности, които описват TIndexOptions на типа.
TIndexOptions = определени от (ixPrimary, ixUnique, ixDescending,
Обясняваме тези стойности. ixPrimary представлява първичен ключ, ixUnique - уникален индекс, ixDescending - индекс подредени намаляване на стойности (за низове - в обратен азбучен ред), ixCaseInsensitive - индекс "нечувствителни" чувствителни, ixExpression - индекс експресия. Трябва да се отбележи, че позоваването на последната стойност също липсва в документацията и онлайн-директория. ixExpression опция дава възможност за маси формат DBASE за създаване на индекс на изразяване. Това е достатъчно, в параметъра Полета да посочите желания израз, например: "Field1 * Field2 + Field3". Най-общо казано, не всички възможности се прилагат за всички индекси на маса формат. По-долу, ние предлагаме списък с валидни стойности за DBASE и Paradox таблици:
Опции Index DBASE Paradox
ixDescending бб
Необходимо е да се придържат към определен ред на индексни опции приложение, за да се избегне неправилна експлоатация. Трябва да се отбележи, че за формата Paradox ixUnique опция може да се използва само в комбинация с опция ixPrimary (виж пример на диска -! .. Фиг грешка текст определен стил в документа липсва -а.).
Така че, след попълване на всички по-горе характеристики, и се обадете на метода за добавяне на FieldDefs и IndexDefs трябва да се обадите на метод на клас TTable - CreateTable.
с FieldDefs направя
Добави ( "Фамилия", ftString, 30, вярно);
Добави ( "Име", ftString, 25, вярно);