Форум: "Базы";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
ВнизОшибка с проверкой на Null Найти похожие ветки
← →
Feds (2006-11-27 13:24) [0]Здравствуйте уважаемые!
возникла ситуация не могу разобраться: работаю с ИБ.
получаю в датасет данные.
if Dataset.FieldByName(link_exp).Value <> Null then
s := Dataset.FieldByName(link_exp).AsString;
вылетает со словами не могу преобразовать Null в вариант.
.isNull - всегда выдает false.
В чем причина?
← →
Feds (2006-11-27 13:25) [1]любая попытка обращения к данным из поля вызывает ошибку. Данное поле есть в таблице проверял
← →
DrPass © (2006-11-27 13:33) [2]
> .isNull - всегда выдает false.
А ты уверен, что значение поля в этом случае именно NULL? Проверь еще раз, внимательнее. А код исправь на
if not Dataset.FieldByName(link_exp).IsNull then
s := Dataset.FieldByName(link_exp).AsString;
← →
Desdechado © (2006-11-27 13:34) [3]> любая попытка обращения к данным из поля вызывает ошибку
даже s := Dataset.FieldByName(link_exp).AsString ?
Какую?
> link_exp
это что такое?
← →
Feds (2006-11-27 13:35) [4]я же написал что .isNull -false всегда
и тогда s := Dataset.FieldByName(link_exp).AsString; - вылетает тут
← →
Feds (2006-11-27 13:35) [5]link_exp - строка с именем поля
← →
Feds (2006-11-27 13:37) [6]даже s := Dataset.FieldByName(link_exp).AsString ? - не могу преобразовать Null в стринг
← →
Desdechado © (2006-11-27 13:43) [7]Компоненты доступа?
IB какой версии?
Совпадает ли версия клиента с версией сервера?
← →
Feds (2006-11-27 13:47) [8]при таком if Dataset.FieldByName(link_exp).Value <> Null
ошибка весьма странная, но именно на этой строчке
не могу приобразлвать вариант (Null) в стринг
← →
Feds (2006-11-27 13:48) [9]TDataSet - использую
← →
Feds (2006-11-27 13:49) [10]доступ к данным через универсального провайдера. По идеи отвязывающего от БД
← →
clickmaker © (2006-11-27 13:50) [11]
> [5] Feds (27.11.06 13:35)
а отладчик-то что кажет? что в этом поле?
← →
Desdechado © (2006-11-27 13:51) [12]> TDataSet - использую
какого типа датасет?
← →
Feds (2006-11-27 14:00) [13]
> а отладчик-то что кажет? что в этом поле?
отладчик кажет в Dataset.FieldByName(link_exp).Value
ЕвариантТупекастЕррор
← →
Feds (2006-11-27 14:06) [14]
> > TDataSet - использую
> какого типа датасет?
просто TDataSet
← →
Feds (2006-11-27 14:09) [15]была подобная ситуация при добавлении данных, когда флаг фильтраред стоял. после добавления курсор слетал и при обращении получался подобный эксепшен. но сейчас ничего не добавляется и фильраред не стоит...
← →
Desdechado © (2006-11-27 15:33) [16]> просто TDataSet
Many of these properties, events, and methods are abstract (Delphi) or pure virtual (C++) in TDataSet. Abstract or pure virtual declarations are declarations without implementations.
← →
Feds (2006-11-27 16:20) [17]в этом же случае используется метод финдБайНаим, а он исходя из кода в ТдатаСет реализован.
← →
clickmaker © (2006-11-27 16:23) [18]
> [14] Feds (27.11.06 14:06)
>
> > > TDataSet - использую
> > какого типа датасет?
>
> просто TDataSet
а данные-то откуда в нем?
← →
ЮЮ © (2006-11-28 02:43) [19]как в SQL, так и в Delphi нелья сравнивать с NULL влоб ( = или <>).
В SQL для этого есть IS NULL, а в Delphi VarIsNull()
← →
Виталий Панасенко (2006-11-28 12:46) [20]По-моему, человек все сказал тут
> DrPass © (27.11.06 13:33) [2]
← →
ЮЮ © (2006-11-28 13:04) [21]Всё он сказал здесь:
Feds (27.11.06 14:06) [14] TDataSet - использую
> какого типа датасет?
просто TDataSet
Поэтому доверять его словам о том, что
.isNull -false всегда
и тогда s := Dataset.FieldByName(link_exp).AsString; - вылетает - не могу преобразовать Null в стринг
никак не получается.
А вот изыски типа
Dataset.FieldByName(link_exp).Value <> Null
запросто приведут к такому. Причем не обязательно в строке, где автор видит, а где-то в рбработчике, навешанном на DataSet.
Поэтому, прежде чем гнать на TDataSet надо
1) убрать из своего кода такие прелести
2) пройтись отладчиком чуть глубже своего кода.
А ошибки возможны и в VCL. На днях рассматривали TDBLookupCombo. Но чтобы TDataSet такие заподлянки выкидывал ... :)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c