русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Поля таблицы


Дата добавления: 2015-07-09; просмотров: 558; Нарушение авторских прав


Для получения доступа к полям таблицы объект TDataSet обладает рядом методов и свойств, основными из которых являются:

· property Fields[Index: Integer];

· function FieldByName(const FieldName: string): TField;

· property FieldCount.

Свойство FieldCountвозвращает число полей в текущей структуре записи. Если необходимо программным путем прочитать имена полей, то для доступа к ним следует применить свойство Fields(пример 5).

Пример 5

Var

S: String;

Begin

S := Table.Fields[0].FieldName;

end;

В приведенном выше примере 5 переменной S присваивается имя первого поля таблицы, индекс которого соответствует нулю. Для доступа к имени последнего поля следует указать индекс равный Table.FieldCount – 1 (Пример 6).

Пример 6

Var

S: String;

Begin

S := Table.Fields[Table.FieldCount - 1].FieldName;

end;

Если необходимо определить текущее содержание выбранного поля конкретной записи, то рекомендуется использовать свойство Fields или метод FieldsByName. Для этого достаточно найти значение i - го поля записи как i - й элемент массива Fields(пример 7).

Пример 7

Var

S: String;

i: Integer;

Begin

i := 3;

S := Table.Fields[i].AsString;

end;

Предположим, что указанное поле в записи содержит номер записи, тогда код, приведенный выше, возвратил бы строку типа «10», «1012» или «1024». Если требуется получить доступ к этой переменный, как к числовой величине, тогда необходимо использовать тип AsInteger вместо типа AsString. Аналогично, указываются и другие типы данных: AsBoolean, AsFloat и AsDate.

В примере 8 показано, что для доступа к данным можно применять функцию FieldsByName вместо свойства Fields.

Пример 8

Var

S: String;

Begin

S := Table.FieldsByName(‘Nuncode’).AsString;



end;

 

В приведенных примерах 5 – 8 показано, что метод FieldsByName, и свойство Fields возвращают те же самые данные. Два различных синтаксиса используются для того, чтобы обеспечить программистов гибким и удобным набором инструментов для доступа к содержимому DataSet.

Рассмотрим пример, как можно использовать доступ к полям таблицы во время выполнения программы. Для этого необходимо поместить в форму объект Table, два объекта ListBox и две кнопки Button, и присвоить кнопкам имена Fields и Values (рис. 3.). Далее требуется установить связь объекта Table1 с базой данных DBDEMOS посредством свойства DatabaseName и выбрать таблицу CUSTOMER в списке свойства TableName. Для доступа к данным в период дизайна требуется установить свойство Activeтаблицы в состояние True.

 

Расположение элементов управления в форме

Рис.3

 

Далее необходимо написать обработчик события для нажатой кнопки Fields(пример 9).

Пример 9

procedure TForm1.FieldsClick(Sender: TObject);

Var

i: Integer;

Begin

ListBox1.Clear;

for i := 0 to Table1.FieldCount - 1 do

ListBox1.Items.Add(Table1.Fields[i].FieldName);

end;

 

Приведенная процедура (пример 9) функционирует следующим образом. Первая программная строка очищает компонент ListBox1. Затем в цикле последовательно добавляются имена полей таблицы. Обратите внимание на то, что счет в цикле начинается с 0, и заканчивается Table1.FieldCount – 1. Если не вычесть единицу из значения FieldCount, то произойдет исключительная ситуация «List Index Out of Bounds», обусловленная попыткой прочесть имя поля которое не существует.

 

Для получения доступа к содержимому полей обработчик события для кнопки Valuesбудет иметь вид, приведенный в примере 10.

Пример 10

procedure TForm1.ValuesClick(Sender: TObject);

Var

i: Integer;

Begin

ListBox2.Clear;

for i := 0 to Table1.FieldCount - 1 do

ListBox2.Items.Add(Table1.Fields[i].AsString);

end;

 

На рисунке 4 приведено функционирующее приложение, демонстрирующее выполнение процедур приведенных в примерах 9 – 10.

 

Реализация процедур

Рис.4

 

Напомним, что класс TField обладает следующими свойствами:

· property AsBoolean;

· property AsFloat;

· property AsInteger;

· property AsString;

· property AsDateTime.

Если возникает необходимость, то можно преобразовывать тип поля Boolean к Integer или к Float, тип поля Integer к String или тип поля Float к Integer. Однако преобразовывать тип поля String к Integer невозможно. Если необходимо работать с полями Date или DateTime, то можно использовать преобразования AsString и AsFloat для доступа к ним.

 



<== предыдущая лекция | следующая лекция ==>
Навигация | Работа с данными


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.338 сек.