для компиляции IDL существует утилита MIDL
позволяет создавать прокси (для стандартного маршаллинга)
стуб, библиотеку типов
при желании, ипользуя длинный путь, эту TLB можно #import'нуть
Здравствуйте Ростислав Глухов, Вы писали:
РГ>Здравствуйте Аноним, Вы писали:
РГ>для компиляции IDL существует утилита MIDL РГ>позволяет создавать прокси (для стандартного маршаллинга) РГ>стуб, библиотеку типов РГ>при желании, ипользуя длинный путь, эту TLB можно #import'нуть
Благодарю за ответ (я только начал работать с Com).
И следующий вопрос: после того как я скомпилировал *.IDL в *.h и *.tlb,
я подключил *.h к проекту и получил кучу ошибок, что бы это значило?
Здравствуйте SAndrey, Вы писали:
SA>Благодарю за ответ (я только начал работать с Com).
Пожалуйста... (а что, старички за ответы не благодарят?:)
SA>И следующий вопрос: после того как я скомпилировал *.IDL в *.h и *.tlb, SA>я подключил *.h к проекту и получил кучу ошибок, что бы это значило?
я бы импортнул TLB
Здравствуйте Ростислав Глухов, Вы писали:
РГ>Здравствуйте SAndrey, Вы писали:
SA>>Благодарю за ответ (я только начал работать с Com). РГ>Пожалуйста... (а что, старички за ответы не благодарят?:)
SA>>И следующий вопрос: после того как я скомпилировал *.IDL в *.h и *.tlb, SA>>я подключил *.h к проекту и получил кучу ошибок, что бы это значило? РГ>я бы импортнул TLB
Я понял откуда ошибки. Этот midl сгенерил код
типа AffectEnum AffectRecords = 3, где AffectEnum — перечислимый тип,
а коппиль пропускает только AffectEnum AffectRecords = (AffectEnum) 3 ; (не Borland, однако)
А почему бы Вы импортили TLB ?
И почему при импорте DLL появляются названия интерфейсов с каким-то ...Ptr ?
Например из msado15.dll вытаскивается что-то типа _ConnectionPtr вместо _Connection
Здравствуйте SAndrey, Вы писали:
SA>Здравствуйте Ростислав Глухов, Вы писали:
SA>А почему бы Вы импортили TLB ?
Привычка:) частенько IDL недоступен
SA>И почему при импорте DLL появляются названия интерфейсов с каким-то ...Ptr ? SA>Например из msado15.dll вытаскивается что-то типа _ConnectionPtr вместо _Connection
Это обертки над указателями
попимо этого импорт по умолчанию генерит еще и обертки функций,
там при неправильном HRESULT генерится exception (see *.tli)
использовать их или нет — отдельный вопрос,
для начала, наверное, стоит попробовать (с ними проще)
для отказа
#import "XXX.tlb" raw_interfaces_only, raw_native_types, named_guids
Здравствуйте SAndrey, Вы писали:
SA>А как сделать две связанные таблицы(заполнение второй зависит от выбранной записи в первой), SA>как передать связующие параметры.
такой задачей не сталкивался
я бы ловил от rset'a событие MoveComplete
и рефрешил дочернюю таблицу (тогда уж лучше хранимую процедуру)
Здравствуйте Ростислав Глухов, Вы писали:
РГ>Здравствуйте SAndrey, Вы писали:
SA>>А как сделать две связанные таблицы(заполнение второй зависит от выбранной записи в первой), SA>>как передать связующие параметры.
РГ>такой задачей не сталкивался РГ>я бы ловил от rset'a событие MoveComplete РГ>и рефрешил дочернюю таблицу (тогда уж лучше хранимую процедуру)
Добавлю что параметры надо описать в SQL знаком "?" (вопроса). И добавить их к команде (только через нее можно работать с параметризованными запросами).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте SAndrey, Вы писали:
SA>А как сделать две связанные таблицы(заполнение второй зависит от выбранной записи в первой), SA>как передать связующие параметры.
Да! в форуме про БД это обсуждалось в веточке "проблемы с пониманием"