powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не отрабатывает If (...) == NULL {...} else{...}
9 сообщений из 9, страница 1 из 1
Не отрабатывает If (...) == NULL {...} else{...}
    #34152886
Oppazit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня!
Делаю выборку
ADODataSet1->Close();
ADODataSet1->CommandText="";
ADODataSet1->CommandText=("select Field1,Field2,Field3 from Table where un=...));
ADODataSet1->Open();
Потом надо проверить
if (ADODataSet1->FieldByName("Field") == NULL)
{Отрабатываем на NULL...}
else
{Отрабатываем на не NULL...}
Так вот, если поле не NULL (longText),то все отрабатывает.Но даже если поле NULL,то все равно отрабатывает else ... Таблица в SQL EM (и там четко нарисовано <NULL>)
Подскажите, в чем может быть дело?
Спасибо.
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34152963
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OppazitТаблица в SQL EM (и там четко нарисовано <NULL>)
Подскажите, в чем может быть дело?
Спасибо.

Ключевое слово выделено ...
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34152974
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
C/C++ - ный NULL и null в базах данных - это не одно и то же.
Нельзя проверять поле на то, что оно содержит null, сравнивая его с NULL. ( == NULL )
Обычно в API есть специальные функции для определения того, имеет ли поле значение,
типа fieldValue->IsNull() , их и надо использовать.
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34153063
Oppazit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня с синтаксисом траблы, я только начал изучать С++...
Если есть возможность кусок кода вставить-буду благодарен )
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34154527
Местный писатель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверить наличие поле в базе так:
Код: plaintext
1.
2.
3.
if (ADODataSet1->FieldByName("Field"))
{...}
else
{...}

Проверить заполнено поле значением или пустое так:
Код: plaintext
1.
2.
3.
if (ADODataSet1->FieldByName("Field")->IsNull)
{...}
else
{...}
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34156590
Oppazit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем! Спасибо за советы.
Сегодня еще решил напрямую забирать размер поля из таблицы следующим образом, но тем не менее не отрабатывает...все равно упорно идет на отработку в else

ADODataSet1->Close();
ADODataSet1->CommandText="";
ADODataSet1->CommandText=("select Field1,Field2,Field3,DataLength(Field2) as LLL from Table where un=1111");
ADODataSet1->Open();

if (ADODataSet1->FieldByName("LLL")==NULL) также делал (...==0) результат тот же
{
TBlobField *BF=dynamic_cast<TBlobField *>(ADODataSet1->FieldByName("Field1"));
BF->SaveToFile("C:\\wordfile.doc");
}
else
{
TBlobField *BF=dynamic_cast<TBlobField *>(ADODataSet1->FieldByName("Field2"));
BF->SaveToFile("C:\\wordfile.doc");
}
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34159096
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oppazit
if (ADODataSet1->FieldByName("LLL")==NULL) также делал (...==0) результат тот же


Вообще-то NULL и 0 - это одно и то же.
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34159462
Oppazit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никто и не спорит - лучше какое-нить предложение дельное услышать )
...
Рейтинг: 0 / 0
Не отрабатывает If (...) == NULL {...} else{...}
    #34159499
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из всех сообщений я так и не понял, что имелось в виду:
1)не существование поля в запросе- q->FieldByName(имя_поля)==NULL - получите сообщение об ошибке, которое, правда, можно поймать
2)или неопределённость его значения - q->FieldByName(имя_поля)->Value.IsNull()
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не отрабатывает If (...) == NULL {...} else{...}
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]