Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Элементы COM-библиотеки

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Shkval
Гость





СообщениеДобавлено: Вс Июн 27 2004 00:19    Заголовок сообщения: Элементы COM-библиотеки Ответить с цитатой

Всем доброго времени суток.

Тем, кто занимался COM-объектами мой вопрос, я думаю, покажется легким. Я пишу небольшой VBScript и проблема состоит в том как получить значение константы, обьявленной внутри COM-библиотеки. Чтобы создать объект какого-либо COM-класса используется команда вида:

Dim oServer As SQLDMO.SQLServer

Set oServer = CreateObject("SQLDMO.SQLServer")

Но для вызова ряда функций надо использовать в качестве параметров константы, относящиеся к этой библиотеке. Например в библиотеке SQLDMO есть такой элемент перечисление:
Enum SQLDMO_PERFMON_TYPE, а в его состав входят несколько констант:
Const SQLDMOPerfmon_Continuous = 0
Const SQLDMOPerfmon_MaxSet = 1
Const SQLDMOPerfmon_None = 1000 (&H3E8) и т.д.

Создать такую константу с помощью команды CreateObject (чтобы потом получить ее значение) не удается, т.к. это не класс, а Enum.
Возможно, кто-нибудь сталкивался с такой же проблемой. Напишите, пожалуйста, какой-нибудь примерчик кода, как обратиться к такой константе.

Заранее Спасибо.
Вернуться к началу
wildwind



Зарегистрирован: 03.02.2004
Сообщения: 268
Откуда: Москва

СообщениеДобавлено: Вс Июн 27 2004 16:32    Заголовок сообщения: Ответить с цитатой

Вообще Enum'ы, объявленные в COM-библиотеке, не видны automation-клиентам, а значит и из VBScript. На этот случай Microsoft поставляет include-файлы с объявлениями всех констант. Например для ADO и OLEDB эти файлы можно найти в C:\Program Files\Common Files\System\ado и ...\Ole DB. Попробуй найти такой файл для SQLDMO где-нибудь в дистрибутиве SQL Server'а.
Если не найдешь, то просто объяви их в своем скрипте и все. Правда есть (весьма небольшая) вероятность, что в будущих версиях библиотек значения констант изменятся.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Shkval
Гость





СообщениеДобавлено: Пн Июн 28 2004 16:50    Заголовок сообщения: Ответить с цитатой

>> Правда есть (весьма небольшая) вероятность, что в будущих версиях библиотек значения констант изменятся.

Да, мне именно это и не нравится, потому что иначе я мог просто взять значения этих констант (я их знаю и писал в первом сообщении).

>> Вообще Enum'ы, объявленные в COM-библиотеке, не видны automation-клиентам, а значит и из VBScript. На этот случай Microsoft поставляет include-файлы с объявлениями всех констант.

Дело в том, что если использовать не VBScript, а VBA или просто VB, то значения этих констант видны при подключении соответствующей библиотеки - Microsoft SQLDMO (оно и понятно, ведь эти константы обьявлены для того, чтобы их можно было использовать). Поэтому возникает такой вопрос - можно ли (вообще в принципе) в VBScript подключить внешнюю библиотеку (например, в VBA я это делаю через меню Tools->References). Возможно, существует какая-нибудь команда по типу include <> или uses или import.

>> На этот случай Microsoft поставляет include-файлы с объявлениями всех констант. Например для ADO и OLEDB эти файлы можно найти в C:\Program Files\Common Files\System\ado и ...\Ole DB. Попробуй найти такой файл для SQLDMO где-нибудь в дистрибутиве SQL Server'а.


Поясните, пожалуйста, как можно использовать include-файлы в VisualBasic (если я правильно понимаю речь идет о *.h файлах для С++). Вопросы может глупые, но просто мне до этого момента не приходилось иметь дело с VisualBasic Sad.
Вернуться к началу
wildwind



Зарегистрирован: 03.02.2004
Сообщения: 268
Откуда: Москва

СообщениеДобавлено: Пн Июн 28 2004 19:15    Заголовок сообщения: Ответить с цитатой

Цитата:
можно ли (вообще в принципе) в VBScript подключить внешнюю библиотеку

Библиотеку подключить можно, но константы надо объявлять. Я ведь уже сказал.

Цитата:
Поясните, пожалуйста, как можно использовать include-файлы в VisualBasic (если я правильно понимаю речь идет о *.h файлах для С++). Вопросы может глупые, но просто мне до этого момента не приходилось иметь дело с VisualBasic .

Действительно, если бы ты залез в эти каталоги и посмотрел на файлы, вопросов бы не было. Речь идет об .inc файлах.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...