IsBeforeReadState

Свойство информирует о возможности работы с полями выборки данных.

Сразу после открытия выборки данных (т.e. после выполнения одного из методов DbCommand.ExecuteReader()…) доступ к полям (значениям) этой выборки невозможен – необходимо предварительно выполнить хотя бы один раз метод Read(), который устанавливает текущую строку выборки данных. Поэтому перед вызовом методов, работающих с полями выборки данных, необходимо убедиться, что метод Read() применительно к текущей выборке данных был вызван.

Примечание

Свойство IsBeforeReadState можно использовать только в приложениях, разработанных специально для работы с СУБД ЛИНТЕР.

Декларация
public bool IsBeforeReadState {get;};
Значение свойства

Значение типа System.Boolean:

  • true – значения полей выборки данных доступны, т.е. метод Read() отработал;

  • false – значения полей выборки данных недоступны, необходимо предварительно вызвать метод Read() (значение по умолчанию).

Исключения

Отсутствуют.

Пример
// C#
using System;
using System.Data;
using System.Data.Common;
using System.Data.LinterClient;

class IsBeforeReadStateSample
{
  static void Main()
  {
    // Создание фабрики классов провайдера
    DbProviderFactory factory =
      DbProviderFactories.GetFactory("System.Data.LinterClient");
    // Соединение с БД
    DbConnection con = factory.CreateConnection();
    con.ConnectionString = "User ID=SYSTEM;Password=MANAGER8;Data Source=LOCAL";
    con.Open();
    // Создание объекта DbCommand
    DbCommand cmd = factory.CreateCommand();
    cmd.Connection = con;
    // Формирование текста SQL-запроса
    cmd.CommandText = "select * from auto";
    // Выполнение SQL-запроса
    DbDataReader reader = cmd.ExecuteReader();
    // Обработка результатов запроса
    if (((LinterDbDataReader)reader).IsBeforeReadState)
    {
      reader.Read();
    }
    for (int i = 0; i <  reader.FieldCount; i++)
    {
      Console.Write(reader.GetValue(i) + "\t");
    }
    // Освобождение ресурсов
    reader.Dispose();
    cmd.Dispose();
    con.Dispose();
  }
}