Ошибка в VB скрипте

Добавлено:
20 апр 2010 16:32
кленовый лист
Добрый день! Пишу скрипты в Кати на VB, попутно изучаю примеры из хелпа. В примерах для модуля Tubing Diagram встречается такой тип данных CATSafeArrayVariant. Во всех скриптах, где он используется, выходит ошибка на строке с объявлением переменной этого типа.
"Dim db2CntrPos(2) As CATSafeArrayVariant" к примеру.
Вылазит окно, которое в приложении.
Не могу понять, чего-то не хватает, или что-то не подключено? Помогите пожалуйста разобраться!
Re: Ошибка в VB скрипте

Добавлено:
21 апр 2010 06:09
booSter
Да,
CATSafeArrayVariant - вещь капризная.
И вопросы про неё всплывали неоднократно.
Посмотри тут...
Re: Ошибка в VB скрипте

Добавлено:
21 апр 2010 08:18
Artem
CATSafeArrayVariant - это из рейда...обычный Variant используй
Re: Ошибка в VB скрипте

Добавлено:
21 апр 2010 10:12
кленовый лист
Не понял, что значит "из рейда"?
Интересно, что в хелпе, в разделе CAA IDL Typedef Index описаны три типа данных - CATBSTR, CATSafeArrayVariant и CATVariant. Ошибка вылезает на любом из этих типов.
Re: Ошибка в VB скрипте

Добавлено:
25 апр 2010 11:45
brigval
кленовый лист писал(а):Не понял, что значит "из рейда"?
Интересно, что в хелпе, в разделе CAA IDL Typedef Index описаны три типа данных - CATBSTR, CATSafeArrayVariant и CATVariant. Ошибка вылезает на любом из этих типов.
На VB6 пишу по типу:
- Код: Выделить всё
Dim oAddPlate As ProductStructureTypeLib.Product
Dim oProduct As ProductStructureTypeLib.Product
Dim oProducts As ProductStructureTypeLib.Products
Dim vProducts As Variant
Dim vArrayBSTR() As Variant
'
On Error Resume Next
'
ReDim vArrayBSTR(0)
vArrayBSTR(0) = moPlateDoc.FullName
Set oProduct = moAsseDoc.Product
Set oProducts = oProduct.Products
Set vProducts = oProducts '!!!!!!
vProducts.AddComponentsFromFiles vArrayBSTR, "All" '!!!!!!
и т.д.
То есть, перед обращением к объекту, на котором возникает ошибка, сначала изменяю его тип на Variant
Пока все работает.