Московский государственный университет имени М.В.Ломоносова
Опубликован: 20.12.2005 | Доступ: свободный | Студентов: 3142 / 371 | Оценка: 4.22 / 3.86 | Длительность: 12:03:00
ISBN: 978-5-9556-0068-0
Лекция 12:

Реализация доступа к базам данных в среде DELPHI

Классы библиотеки VCL

Класс TDATASET

Класс TDataSet является базовым для всех классов наборов данных, наследующих общие свойства и методы этого класса, включая следующие:

  • Active - свойство, определяющее, открыт ли набор данных;
  • CurrentRecord - свойство, определяющее номер текущей записи набора данных;
  • DataSource - свойство, указывающее родительскую таблицу (для таблиц, связанных отношением родительская - дочерняя);
  • Bof - свойство, определяющее, находится ли курсор на первой записи набора данных;
  • Eof - свойство, определяющее, достигнут ли конец набора данных;
  • Bookmark - свойство, указывающее текущую закладку в наборе данных. Закладка отмечает позицию в наборе данных. Используя методы TDataSet. GetBookmark и TDataSet. GotoBookmark, приложение может запоминать и быстро переходить на нужную позицию в наборе данных;
  • FieldCount - свойство, указывающее количество полей в наборе данных;
  • Fields - свойство, представляющее собой массив полей набора данных и используемое для доступа к этим полям.

    Например:

    Table1.Edit;  // Включение режима редактирования
    Table1.Fields.Fields[6].AsString := Edit1.Text;
    Table1.Post;  // Присвоение изменений

    Свойство Fields позволяет:

    • получить имя поля в текущей структуре записи.

      Например:

      var  S: String;
      begin  
      S := Fields[0].FieldName;     // Имя первого поля
      S := Fields[1].FieldName;     // Имя второго поля
      ...
      end;
    • записать в переменную значение поля.

      Например:

      var  s: String; i: Integer; d: TDateTime; 
      s := Fields[0].AsString; 
      i := Fields[0].AsInteger;
      d := Fields[0].AsDate;

    Вместо Fields[n] можно использовать функцию FieldsByName('имя_поля').

    Например:

    s := Fields[0].AsString; 
    s := FieldsByName('F1').AsString;
  • FieldByName - метод, определяющий поле набора данных по его имени;

    Например:

    Table1.FieldByName('F1').AsInteger:=StrToInt(Edit1.Text);
  • Filter - свойство, в которое заносится строка, определяющая фильтр для набора данных. Фильтр определяет условие, которому должны удовлетворять доступные записи.

    Определение фильтра должно удовлетворять следующим правилам:

    • фильтр состоит из условий для полей набора данных, объединенных логическими операциями AND и OR. Например: F2 > 10 AND F2 <50;
    • если имя поля содержит пробелы, то оно должно быть заключено в квадратные скобки или двойные кавычки. Например: [Field Name1] > 50;
  • Filtered - свойство, указывающее, используется ли фильтр, заданный свойством Filter ;
  • Found - свойство, определяющее, успешно ли выполнен поиск методами FindFirst, FindLast, FindNext или FindPrior ;
  • Modified - свойство, определяющее, была ли изменена активная запись;
  • RecordCount - свойство, содержащее общее число записей в наборе данных;
  • State - свойство, указывающее текущее состояние набора данных. Это свойство может принимать следующие значения:

    • dsInactive - набор данных закрыт;
    • dsBrowse - данные доступны только для просмотра;
    • dsEdi - можно изменять активную запись;
    • dsInsert - активной записью является новая запись, пока не сохраненная;
    • dsSetKey - просмотр ограниченного множества записей (SetRange) или поиск записи;
    • dsCalcFields - выполняется обработчик события OnCalcFields ;
    • dsFilter - выполняется обработчик события OnFilterRecord ;
    • dsOpening - набор данных находится в процессе открытия.
  • Append - метод, добавляющий в конец набора данных новую запись;
  • Delete - метод, удаляющий текущую запись из базы данных. Если в момент удаления записи набор данных находится в неактивном состоянии, то инициируется исключение;
  • Edit - метод, переводящий текущую запись в режим редактирования;
  • Cancel - метод, отменяющий изменения, сделанные в текущей записи;
  • Post - метод, выполняющий внесение изменений в базу данных;
  • Refresh - метод, выполняющий обновление результирующего набора путем повторного извлечения данных из БД;
  • Insert - метод, вставляющий в набор данных новую запись;
  • InsertRecord - метод, вставляющий в набор данных новую запись со значениями, которые указаны параметрами метода;
  • Close - метод, закрывающий набор данных;
  • Open - метод, открывающий набор данных;
  • First - метод, устанавливающий курсор на первую запись набора данных и делающий эту запись активной;
  • Last - метод, устанавливающий курсор на последнюю запись набора данных и делающий эту запись активной;
  • Next - метод, перемещающий курсор на следующую запись набора данных и делающий эту запись активной;
  • Prior - метод, перемещающий курсор на предыдущую запись набора данных и делающий эту запись активной.