Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1170271927
Monty
2007-01-31 22:32
2007.02.18
Помогите с шифратором(запись и чтение из файла)


2-1170112622
kolyann..
2007-01-30 02:17
2007.02.18
как получать данные с usb порта


4-1160336072
vidiv
2006-10-08 23:34
2007.02.18
Как "отрисовать" Path и получить его регион?


15-1170075240
frari
2007-01-29 15:54
2007.02.18
Скинуть файл


2-1170091537
_newman_
2007-01-29 20:25
2007.02.18
Как узнать путь к директории из которой запущена программа.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский