Главная » Просмотр файлов » Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»

Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» (1075664), страница 17

Файл №1075664 Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» (Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных») 17 страницаРевунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» (1075664) страница 172018-01-09СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 17)

• Boolean - TBooleanFieid

• TDateTime - TDateField, TDateTimeField. TTimeField

Существуют следующие свойства AsXXXX для приведения типов полей:

• property AsBoolean: Boolean;

• property AsCurrency: Currency;

• property AsDateTime:TDateTime;

• property AsFloat: Double;

• property AsInteger: Integers;

• property AsInteger: String;

• property AsVariant: Variant;

Каждое из этих свойств приводит значение поля к соответствующему типу данных, означенному в названии свойства.

Например, если TablelNumber - поле TintegerFieid, для приведения его к типу String нужно воспользоваться свойством AsString:

Editl.Text := TablelNumber.AsString;

Tип поля должен быть совместимым с типом данных, к которому приводится значение поля. Например, если TablelSumma - поле TFloatField, попытка привести его к несовместимому типу Boolean приведет к ошибке.

Описание свойств, методов и событий класса TField приведено в приложении.

3.2.2. Проверка правильности введенных значений

Проверить введенное в поле значение на его соответствие некоторым ограничениям или условиям можно в обработчике события On Validate. Это событие наступает при изменении значения поля вручную или программно до выполнения метода Post набора данных, который запоминает изменения БД. Поэтому, если полю присвоено неверное значение, выполнение метода Post можно предотвратить, вызвав метод Abort или возбудив исключительную ситуацию.

3.2.3. Формирование текстового представления поля

Часто требуется некоторое дополнительное преобразование для более точного или более правильного представления хранящегося в поле значения. Для этих целей служит обработчик события OnGetText объекта-поля.

Обработчики выполняются только в работающей программе, поэтому на этапе конструирования не виден результат их работы.

3.2.3. СОЗДАНИЕ ВЫЧИСЛЯЕМЫХ ПОЛЕЙ

Создать вычисляемое (виртуальное) поле, значения которого не существуют в реальных ТБД, а вычисляются по значениям других полей, можно с помощью редактора полей. Для его вызова можно использовать контекстное меню (правой кнопкой мыши) и выбрать Field Editor. Для создания вычисляемых полей используется опция меню New Field.

В диалоговом окне New Field нужно выбрать переключатель Calculated, ввести имя создаваемого поля (Name), выбрать его тип (Type) и для строковых полей указать длину (Size).

Для нового поля будет создан компонент TField.

Чтобы вычислить значение нового поля, необходимо определить обработчик события OnCalcFields для компонента-источника, к которому оно принадлежит.

Событие OnCalcFields возникает всякий раз, когда курсор (указатель записи) перемещается в НД от записи к записи (например, после выполнения методов Next, Last и т. д. или при движении по записям в TDBGrid вручную. Это событие возникает и при инициализации НД (после открытия), а также после фильтрации записей в НД.

Если свойство AutoCalcFields набора данных содержит True, событие OnCalcFields наступает также и при модификации значений невычисляемых полей в режимах dslnsert и dsEdit данного НД или НД, с ним связанного.

Обработчик события OnCalcFields содержит реализацию алгоритма определения значения вычисляемого поля или группы полей. В этом обработчике значение может быть присвоено только вычисляемому полю и не может быть присвоено полю, определенному в структуре таблицы БД.

3.2.4. Поля выбора

Кроме обычных полей и вычисляемых полей, в Delphi имеется возможность созда¬ния полей выбора данных (lookup-полей).

Поле выбора данных одного НД содержит значения из другого набора данных, свя¬занного по ключу с НД, к которому принадлежит это поле. Будем называть первый НД родительским, а второй дочерним. Сразу же уточним, что поля выбора и специализи¬рованные компоненты выбора TDBLookupListBox, TDBLookupComboBox используют схожий механизм, основанный на реляционной связи двух НД, однако компоненты выбора не создают новых полей ни в одном наборе данных.

Для определения поля выбора данных, необходимо создать новое поле в редакторе полей и выбрать переключатель Lookup.

После выбора переключателя становятся доступными элементы группы Lookup definition, с помощью которых устанавливаются параметры связи наборов данных:

• DataSet Определяет имя родительского НД.

• Key Fields Определяет список ключевых полей родительского НД. По этим полям построен индекс для связи родительского НД с дочерним. Если в индексе имеется несколько полей, они разделяются точками с запятыми.

• Lookup Fields Определяет список ключевых полей дочернего НД. По этим полям постро¬ен индекс для связи дочернего НД с родительским. Если в индексе имеется несколько полей, они разделяются точками с запятыми.

• Result Field Поле дочернего НД, возвращаемое в качестве результата. Необходимо следить, чтобы типы вновь создаваемого поля и поля результата совпадали.

Перечисленным элементам окна New Field редактора полей соответствуют свойства LookupDataSet, KeyFields, LookupKeyFields и LookupResultField класса Tfield.

Поля выбора могут использоваться для показа дополнительной информации из дочернего НД при навигации по родительскому набору, если наборы связаны отношением один-к-одному, или для выбора значения записи дочернего НД из списка всех возможных значений родительского набора при связи один-ко-многим.

3.2.5.Поля TXXXFIELD

3.2.5.1. Строковые поля

Поле TStringField предназначено для хранения строк длиной до 255 символов.

Свойство

property Transliterate: Boolean

указывает, следует ли производить преобразование символов в кодировку ANSI при чтении строк из реальной ТБД и при записи строк обратно в ТБД в том случае, если строки в ТБД хранятся не в ANSI -кодировке или содержат расширенные ANSI символы. Когда в свойстве установлено значение True, для преобразования используются функции AnsiToNative и Native ToAnsi.

Для работы с TStringField предназначены компоненты TDBLabel и TDBEdit. Поле TMemoField предназначено для хранения множества строк неопределенной длины. Специфичные свойства TStringField:

• property BlobSize: Integer; - содержит размер поля в байтах.

• property Transliterate: Boolean; - смотрите описание свойства TStringField.Transliterate.

Специфичные методы:

procedure Clear; - очищает поле.

procedure LoadFromFile(const FileName: Strings); - загружает содержимое поля из файла.

procedure LoadFromStream (Stream: TStream) ; - загружает содержимое поля из потока.

procedure SaveToFile(const FileName: String); - сохраняет содержимое поля в файле.

procedure SaveToStream(Stream: TStream); - сохраняет содержимое поля в потоке.

Для работы с мемо-полями используются компоненты TDBMemo и TDBRichEdit.

3.2.5.2. Целочисленные поля

Целочисленные поля применяются для хранения целых чисел различной длины:

TIntegerField от -2 147 483 648 до +2 147 483 647 TSmallintField от -32 768 до +32 767

TWordField от О до 65 535

Свойства

property MaxValue: Longint

и

property MinValue: Longint

определяют максимальное и минимальное значение поля. По умолчанию содержат 0, что означает отсутствие ограничений. Если MaxValue > MinValue и при вводе в поле вводимое значение вышло из указанного диапазона, возникает исключительная ситуация. Свойство

property DisplayFormat: String

осуществляет форматирование данных перед их показом во всех режимах, кроме режима редактирования. Для него форматирование осуществляет свойство:

property EditFormat: String.

Оба свойства унаследованы полями от общего родителя TNumericField. Для описания формата в них могут использоваться следующие символы - cпецификаторы форматирования чисел:

• 0 - Определяет поле для цифры. Если в данной позиции форматируемое число имеет значащую цифру, она выводится, если нет - выводится 0.

• # - Определяет поле для цифры. Если в данной позиции форматируемое число имеет значащую цифру, она выводится, если нет - ничего не выводится.

• . - Поле для разделителя целой и дробной частей числа. Если в строке больше одной точки, вторая и все следующие точки игнорируются.

• , - Каждая группа из трех цифр будет отделяться от соседней слева цифры разделите-лем тысяч. Положение и количество запятых в строке формата не имеет значения.

E+, e+, E-, e- - Признак представления числа в научном формате. В этом случае число представляется мантиссой и десятичным порядком, между которыми стоит символ Е. Спецификаторы Е+ и е+ предписывают выводить знак + перед неотрицательным десятичным порядком, при использовании Е- и е- знак + перед порядком не выводится.

• ; - Разделитель спецификаторов формата для положительного, отрицательного и нулевого числа.

Любые другие символы строки Format, а также заключенные в апострофы или кавычки специальные символы-спецификаторы помещаются в выходную строку без преобразования.

С помощью символа «;» можно задавать различные формы представления положительного, отрицательного и нулевого числа. При этом набор спецификаторов без «;» относится ко всем числам. Если используется один символ «;», то спецификаторы слева от него применяются для форматирования положительных чисел, справа -отрицательных, а вывод нулей подавляется.

При использовании двух символов «;» первый набор - для положительных, второй - для отрицательных и третий - для нулевых чисел.

Например, спецификаторы '#;Нуль' для Value = -1 выведут Нуль,

а для Value = 0 ничего не выведут, в то время как спецификаторы

' #; 0 0; Нуль ' для Value ==-1 выведут 01,

а для Value = 0 - строку Нуль .

Спецификаторы ' #;; Нуль ' для Value =-1 выведут -1, т. к. в этом случае спецификатор для отрицательных чисел не задан и для их вывода будет использован спецификатор положительных чисел, в то время как спецификаторы ' #; ; Нуль ' подавляют вывод отрицательных чисел.

3.2.5.3. Вещественные поля

Вещественные поля используются для хранения вещественных чисел:

• TFloatField - числа от 5, 0*10 Е-324 до 1, 7*104Е+308 с точностью 15-16 цифр.

• TCurrencyField - аналогично TFloatField, но в денежном формате.

• TBCDField - вещественные десятичные числа в двоично-десятичном виде с фиксированным количеством разрядов после точки;

Delphi не поддерживает -тип BCD, поэтому при работе с полем используется тип Currency, что определяет до 20 значащих цифр и до 4 цифр после запятой; применяется только в таблицах Paradox.

Свойство

property Precision: Integer;

определяет количество знаков после десятичной точки (по умолчанию 15). Это свойство не может иметь значение меньше 2.

Свойства MaxValue, Min Value, DisplayFormat и EditFormat аналогичны по назначению таким же свойствам целочисленных полей.

3.2.5.4. Логические поля

Поля TBooleanField предназначены для хранения логических значении. Их свойство

property DisplayValues: String

определяет формат отображения данных, например: True; False, Да;Нет и т. п.

Если свойство не определено, значения отображаются как True и False, в противном случае часть строки до первого символа «;» используется для представления значения Истина, а остальная часть - для представления значения Ложь.

3.2.5.5. Поля даты и времени

• TDateTime - Содержит значения даты и времени в формате TDateTime.

• TDateField - Содержит значения даты в формате TDate.

• TTimeField - Содержит значения времени в формате TTime.

Их свойство

property DisplayValues: String

предназначено для форматирования значений, отображаемых в визуальных компонен¬тах. Строка Display Values может содержать такие символы-спецификаторы:

• с - Отображает сначала дату в формате дд.мм.гг, а затем через пробел время в формате чч.мм.сс.

• d - Отображает день без ведущего нуля.

• dd - Отображает день с ведущим нулем.

• dddd - Отображает день недели: воскресенье (для нерусифицированной версии Windows - sunday).

• ddddd - Отображает дату в формате дд.мм.гг.

• dddddd - Отображает дату в формате день Месяц год.

• m - Отображает число месяца без ведущего нуля.

• mm - Отображает число месяца с ведущим нулем.

• mmm - Отображает сокращенное название месяца: июн.

• mmmm - Отображает полное название месяца.

• у или уу - Отображает две последние цифры года.

• ууу или уууу - Отображает все цифры года.

• h - Отображает час без ведущего нуля.

• hh - Отображает час с ведущим нулем.

• п - Отображает минуты без ведущего нуля.

• пп- Отображает минуты с ведущим нулем.

• S -Отображает секунды без ведущего нуля.

• SS- Отображает секунды с ведущим нулем.

• t -Отображает время в формате чч:мм.

• tt -Отображает время в формате чч:мм.

• am/pm -Отображает время в 12-часовом формате (am - до полудня, рт - после полудня).

• ampm -Отображает время в 12-часовом формате, но без указания до/после полудня.

• a/p -Отображает время в 12-часовом формате (а - до полудня, р - после полуд¬ня).

• / - Отображает используемый в Windows разделитель даты.

• : -Отображает используемый в Windows разделитель времени.

Характеристики

Тип файла
Документ
Размер
830 Kb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6499
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее