Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / как Variant проверить на Is Nothing ? / 16 сообщений из 16, страница 1 из 1
05.09.2011, 14:03
    #37425285
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
ищу в экселе:

Код: plaintext
Variant found = worksheet.OlePropertyGet("range","a1:z100").OleFunction("find","текст");

соответственно если чтото нашлось, то все ок, а если нет - то при обращении к переменной выходит ошибка.
нужно сделать проверку, в VBA проверяется на "Is Nothing", а какой аналог у вариантов?

пробовал IsEmpty(), IsNull() - не прокатывает
...
Рейтинг: 0 / 0
05.09.2011, 14:20
    #37425326
iljy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsql,

что такое Variant?
...
Рейтинг: 0 / 0
05.09.2011, 14:24
    #37425333
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iljy,

Variant is a C++ implementation of the Object Pascal intrinsic type Variant.

вобщем борландовская премудрость :)
...
Рейтинг: 0 / 0
05.09.2011, 14:42
    #37425372
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsqliljy,

Variant is a C++ implementation of the Object Pascal intrinsic type Variant.

вобщем борландовская премудрость :)

Это не "борландовская премудрость", это обертка над виндовым типом VARIANT , который предназначен для хранения данных Automation.
...
Рейтинг: 0 / 0
05.09.2011, 14:44
    #37425375
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsqlищу в экселе:

Код: plaintext
Variant found = worksheet.OlePropertyGet("range","a1:z100").OleFunction("find","текст");

соответственно если чтото нашлось, то все ок, а если нет - то при обращении к переменной выходит ошибка.
нужно сделать проверку, в VBA проверяется на "Is Nothing", а какой аналог у вариантов?

пробовал IsEmpty(), IsNull() - не прокатывает

Странно, что IsEmpty() "не прокатывает". Ну сделай ход конем, заключи вызов в блок try/catch, если попали в catch - значит "не найдено".
...
Рейтинг: 0 / 0
05.09.2011, 14:51
    #37425388
iljy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsqliljy,

Variant is a C++ implementation of the Object Pascal intrinsic type Variant.

вобщем борландовская премудрость :)
Насколько я помню, в дельфях идет что-то типа VarType(var) = varEmpty or VarType(var) = varNull, может и в BC так?
...
Рейтинг: 0 / 0
05.09.2011, 17:24
    #37425794
majestic-mike
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsql,

Не берусь сказать как это в борланде реализовано, но в VS - проверяется свойство vt у Variant объекта на соответствие VT_ERROR или VT_EMPTY
...
Рейтинг: 0 / 0
06.09.2011, 18:01
    #37427715
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.11.2016, 16:12
    #39344325
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
Привет народ!
Есть решение вопроса кроме try/catch ? Выше приведенный тынц не доступен...
Собственно задача, узнать, существует ли индекс у таблицы в mdb
Код: plaintext
1.
2.
3.
  Variant bd = CreateOleObject("ADOX.Catalog");
  bd.OlePropertySet("ActiveConnection", conn->ConnectionString);
  Variant index = bd.OlePropertyGet("Tables","suppliers").OlePropertyGet("Indexes","ClientRegId");
...
Рейтинг: 0 / 0
09.11.2016, 16:39
    #39344342
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
didgik,

https://msdn.microsoft.com/en-us/library/windows/desktop/ms221627(v=vs.85).aspx

и далее смотреть тип VARTYPE

(в топике это было сказано).
...
Рейтинг: 0 / 0
09.11.2016, 17:15
    #39344360
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
MasterZiv, спасиб!
Но все равно в таком варианте не выходит, ибо он ошибку дает в момент попытки получения.
...
Рейтинг: 0 / 0
10.11.2016, 21:14
    #39345229
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
didgik,

Какую ошибку выдаёт, в момент получения чего, и вообще. Без кода говорить бессмысленно.
...
Рейтинг: 0 / 0
10.11.2016, 23:17
    #39345277
alexy_black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
http://en.cppreference.com/w/cpp/utility/optional (а также эксперементал)
http://en.cppreference.com/w/cpp/utility/variant (запрошенной функциональности я чего-то не наблюдаю)
...
Рейтинг: 0 / 0
10.11.2016, 23:25
    #39345286
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
didgikНо все равно в таком варианте не выходит, ибо он ошибку дает в момент попытки получения.Ваш код?
Без него как вам помочь /горячо, горячо, холодно .../?

VARIANT и SafeArray http://www.rsdn.org/article/com/varsafearr.xml
...
Рейтинг: 0 / 0
10.11.2016, 23:33
    #39345288
Владимир2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
iskatelsqlищу в экселе:
Код: plaintext
1.
Variant found = worksheet.OlePropertyGet("range","a1:z100").OleFunction("find","текст");


Судя по всему вам должна быть возвращена переменная типа VT_BSTR.
Далее можете получить размер этой строки и проанализировать его.
...
Рейтинг: 0 / 0
11.11.2016, 00:39
    #39345301
egorych
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как Variant проверить на Is Nothing ?
didgik, это ищешь?
VarIsEmpty
VarIsNull
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / как Variant проверить на Is Nothing ? / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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