Страница 1 из 1

Ошибка в 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
Пока все работает.