Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];

Вниз

Присвоение свойству OLE объекта значения NULL   Найти похожие ветки 

 
Kettle   (2014-10-23 15:53) [0]

Доброго времени суток, уважаемые мастера!

Имеется OLE-объект. В руководстве сказано, что для получения нужной информации одному из свойств этого объекта следует присвоить значение NULL (в VB Nothing).

пишу:

a.value := null;

после этого VarIsNull(a.value) возвращает false;

Аналогичная ситуация, если null заменить на nil...

Какого типа NULL мне использовать: nil, null? Это нормально, что после присвоения, VarIsNull возвращает false?


 
junglecat ©   (2014-10-23 17:36) [1]

а там не varEmpty нужен? или EmptyParam


 
Kilkennycat ©   (2014-10-23 17:45) [2]


> Какого типа NULL мне использовать

ну раз используешь VarIsNull, то какого типа?
а вообще, сначала нужно задаться вопросом, какого типа a.value.

> nil, null?

null - переменная, не имеющая значения (не то же самое, что пустая)
nil - константа, оно же Pointer(0)


 
Dimka Maslov ©   (2014-10-23 22:02) [3]

Unassigned ещё можно попробовать


 
Kettle   (2014-10-24 16:00) [4]


> а там не varEmpty нужен? или EmptyParam

EmptyParam приводит к ошибке типов.


> а вообще, сначала нужно задаться вопросом, какого типа a.
> value

Это объект со своими свойствами.
FindVarData(V)^.VType показывает, что тип свойства - varDispatch и до присвоения null, и после.


> null - переменная, не имеющая значения (не то же самое,
> что пустая)
> nil - константа, оно же Pointer(0)

Это-то я знаю, но смущает то что VarIsNull возвращает false.


> Unassigned ещё можно попробовать

Тоже в итоге VarIsNull = false.


 
DQ   (2014-10-24 17:45) [5]

Может "value" в "a" только для чтения или NOT NULL?

Когда-то я получал OLE-объект и работал с ним. И проверки VarIsNull давали false, хотя по логике ожидалось Null. Да и при работе с ним выбрасывалось что-то вроде "ошибка, объект Null".
И мне пришлось всегда проверять так:
if not(VarIsNull(v) or VarIsEmpty(v)) then


 
Kilkennycat ©   (2014-10-24 23:42) [6]


> > Unassigned ещё можно попробовать
>
> Тоже в итоге VarIsNull = false.

очень странно присваивать одно, а проверять на другое.


> тип свойства - varDispatch

тогда проверяй через VarIsClear


 
manaka ©   (2014-10-26 13:26) [7]


> пишу:
> a.value := null;
> после этого VarIsNull(a.value) возвращает false;


А что возвращает VarIsNull(a)?


 
Kettle   (2014-10-28 15:26) [8]


> Может "value" в "a" только для чтения или NOT NULL?

В документации явно указано, что "a" и для чтения и для записи.


> if not(VarIsNull(v) or VarIsEmpty(v)) then

Оба false...


> очень странно присваивать одно, а проверять на другое.

И на Empty проверял. Результат тот же.


> тогда проверяй через VarIsClear

Тоже false.


> А что возвращает VarIsNull(a)?

False. Объект "A" присутствует. Я работаю и с его свойствами, и с методами.


 
Kettle   (2014-10-28 15:34) [9]

При этом я знаю, какие свойства были бы в объекте a.value, если бы он там был. Попытка вызвать эти свойства приводят к возникновению исключения: Access Violation at address ... Read of address 00000000. Т.е. видно, что объекта там никакого нет.


 
Плохиш ©   (2014-10-28 16:32) [10]


> Access Violation at address ... Read of address 00000000.

это не null, a nil


 
Dennis I. Komarov ©   (2014-10-28 22:01) [11]

Ага, и объекта поди никакого нет и не было...


 
Styx   (2014-10-29 18:58) [12]

Гугель предлагает делать так: http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.database.ado/2006-06/msg00130.html



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
3-1308474984
Oleg_teacher
2011-06-19 13:16
2016.07.24
Связаные таблицы в БД


1-1333197347
lord827
2012-03-31 16:35
2016.07.24
как запретить создание файлов в русской раскладке


15-1440522423
кгшзх
2015-08-25 20:07
2016.07.24
календарно космологическое


2-1414694799
Drowsy
2014-10-30 22:46
2016.07.24
Access Violation in ibXpress63.bpl


15-1442343788
DayGaykin
2015-09-15 22:03
2016.07.24
Копирование потока без хвоста.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский