3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
|
||||||
1 | ||||||
если переменная = NULL (SQL) то06.04.2020, 14:18. Показов 1391. Ответов 10
Дамы и господа, ниид хэлп!
нужно написать простое условие в VB6 типа:
я пробовал писать условие через: = null - не верно сравнивает is null - выдает ошибку type mismatch = "" - не верно сравнивает is nothing - выдает ошибку type mismatch = nothing - ошибка invalid use of object как написать данное сравнение?
0
|
06.04.2020, 14:18 | |
Ответы с готовыми решениями:
10
Какой тип имеет переменная, если её значение null? QJsonDocument Вывести 1 если другое поле не null, 0 если null Переменная всегда null NPE переменная null |
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
06.04.2020, 15:10 | 3 | |||||
NULL это особое значение. NULL ничему не равен, даже себе. Спросить в Immediate ?NULL=NULL и получим не True или False, а опять же NULL.
В ВБА есть функция IsNull, она позволит проверить переменную на NULL. Но часто используют более общий рецепт, позволяющий проверить значение на "пустоту", будь-то NULL или пустая строка. Используется свойство конкатенации амперсендом, когда слияние "пустой строки" и NULL дает в результате строку. Пустую строку, но не NULL
Аппаздал
1
|
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
|
|
06.04.2020, 15:52 [ТС] | 5 |
всем спасибо, протестировал предложенные варианты решения, но опять результат не верный, будто perenennaya = kakoe-to_znachenie, но в переменную передано NULL.
к слову perenennaya as string, к сожалению, я не могу без серьезной переработки кода (причем не одного кода) её объявлять как Boolean Добавлено через 1 минуту *NULL в смысле не "NULL", а в смысле нет значения
0
|
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
|
||||||||||||||||
07.04.2020, 09:52 [ТС] | 6 | |||||||||||||||
решил почитать документацию по функции IsNull и IsEmpty
IsNULL
IsEmpty
и я не понимаю почему этот вариант не работает:
0
|
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
|
||||||||||||||||
13.04.2020, 09:45 [ТС] | 7 | |||||||||||||||
Короче, все вышеперечисленные решения не сработали.
Неожиданно просматривая один из не моих кодов, я наткнулся на вариант проверки - там проверялось создание папки в одной из директорий. И тут я подумал что это может сработать и в моей ситуации... пример проверки создана ли папка (для наглядности я вписал выдуманный путь):
каким мне видится выход (я до конца не протестировал, но пока результат положительный):
0
|
3 / 2 / 1
Регистрация: 13.05.2014
Сообщений: 156
|
|
13.04.2020, 10:19 [ТС] | 10 |
черт, так и подумал, что это просто число байт...
спасибо.
0
|
Модератор
|
|
13.04.2020, 14:53 | 11 |
NULL - это подтип Variant. Для работы с ним переменная должна иметь тип Variant. Правильнее результат приравнять к переменной с типом Variant, протестировать на IsNull (или VarType), и есть это не NULL то присвоить строковой переменной (если там строка).
Длина структуры Variant = 16 байтам. I can, vbNull определяет номер типа, а не само значение, также как и vbObject/vbString. К размеру переменной не имеет отношения. C Null можно производить операции которые возвращают не Null, в этом случае можно представить Null как любое значение. Код
------------------------------------------------------------------------------------------------------------------ |AND | | | |OR | | | |XOR | | | |IMP | | | |EQV | | | ------------------------------------------------------------------------------------------------------------------ |In1 |In2 |Out1 | |In1 |In2 |Out1 | |In1 |In2 |Out1 | |In1 |In2 |Out1 | |In1 |In2 |Out1 | ------------------------------------------------------------------------------------------------------------------ |False|Null |False| |False|Null |Null | |False|Null |Null | |False|Null |True | |False|Null |Null | ------------------------------------------------------------------------------------------------------------------ |True |Null |Null | |True |Null |True | |True |Null |Null | |True |Null |Null | |True |Null |Null | ------------------------------------------------------------------------------------------------------------------ |Null |False|False| |Null |False|Null | |Null |False|Null | |Null |False|Null | |Null |False|Null | ------------------------------------------------------------------------------------------------------------------ |Null |True |Null | |Null |True |True | |Null |True |Null | |Null |True |True | |Null |True |Null | ------------------------------------------------------------------------------------------------------------------ |Null |Null |Null | |Null |Null |Null | |Null |Null |Null | |Null |Null |Null | |Null |Null |Null |
2
|
13.04.2020, 14:53 | |
13.04.2020, 14:53 | |
Помогаю со студенческими работами здесь
11
Инициализированная переменная почему то null SELECT игнорировать переменная =null Публичная переменная становится не null TMemIniFile переменная получает значение NULL Какое значение примет переменная после выполнения фрагмента алгоритма, если переменная а имела значение 'ИНФОРМАТИКА' Если переменная x после цикла получает значение 3 и если ее вывести заданным образом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |