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();
}
}