-
Есть некая программа которая при запуске конектится к MSSQL и процессе работы через этот конект работает с базой данных.
У меня есть IDispatch это программы, как я могу получить этот конект и через него делать запросы к той же базе данных ?
-
> 312kbps (15.11.06 13:55)
Ты все про 1С Add-In's долдонишь ?)
-
ага, уже кучу работы сделал (((
а вот с некоторыми вещами ни как не могу справиться !
-
> У меня есть IDispatch это программы
Начнем с того, что У программы нет IDispatch - оной есть у объекта автоматизации.
Теперь разберись, что это за объект и какие методы/свойства он предоставляет для обращения к ним посредством диспинтерфейса, который ты имеешь.
-
я терминах не очень (
программа создает соединение с сервером и через него работает , пока её не закроют, могу ли я получить это соединение чтоб использовать в своих целях ?
-
> 312kbps (15.11.06 14:54) [4]
Разве на ITS-ресурсах нет на эту тему инф-ции ?
Хоть убей - не поверю.
-
где искать покажи, плиззз
все просматрю !
-
> где искать покажи, плиззз
> все просматрю !
>
На дисках ITS (информационно-технологическим сопровождением), которые ты получаешь при подписке на них при офиц.приобретении 1C-продуктов
-
да на этом ИТС по данной теме нет ни чего (((
-
> 312kbps (15.11.06 15:31) [8]
Ой не ври
-
В конце-концов на офиц.инет-ресурсах одноэсины есть ссылки на соотв.док-цию, которая стоит терпимо мало
-
дело в том что я весь инет перерыл и ни какой инфы не нашел (
вот поэтому и обратился за помощью сюда !
-
нашел как обращаться к методам )
var rtm: OleVariant;
............
rtm:=OLEVariant(AddInFPList.pConnection).AppDispatch;
IDispatch(rtm)._addref;
str:=rtm.EvalExpr('ИмяКомпьютера()');
а вот самое соединение ни как (
-
> а вот самое соединение ни как
Но ведь у объекта rtm есть методы, позволяющие выполнять запросы к текущей активной БД на встроенном "SQL-подобном" языке, разве этого не достаточно ?
-
нет не достаточно, нужен доступ к самим таблицам в сиквеле (при чем не новым соединением, а существующем)
-
> нужен доступ к самим таблицам в сиквеле
А зачем ?
Каковы аргументы в пользу "тарабарщины" вида
select SomeField from SomeTable
против ее "осмысленного" эквивалента вида
ВЫБРАТЬ Дата ИЗ ЖУРНАЛ_ТАКОЙ_ТО
?
-
пошутил что ли )))))))))))))
эта тарабарщина выполняется раз в 100 быстрее чем тотже запрос, только исковерканый 1С'ом
-
> 312kbps (17.11.06 15:44) [16]
Про скорость ты ничего не говорил до сего момента.
А не пугает тебя заведомая неизвестность механизма доступа к объектам БД, используемая одноэсиной ?
А геморрой с именами таблиц тебя не пугает ?
-
да блин, прошу помощи !!!
я уже давно так работаю, оптимизирую запросы в 1С , прямой доступ к 1С
это все гораздо удобнее и быстрее, все крупные предприятия у которых есть 1С, так работают, через прямой доступ к 1С, только работают через аналайзер сиквела.
а я хочу сделать встренный механизм запросов, чтоб сесия всего одна была !!!
вот и спрашиваю , КАК ПОЛУЧИТЬ САМО СОЕДИНЕНИЕ 1С для своих нужд !!!
-
> КАК ПОЛУЧИТЬ САМО СОЕДИНЕНИЕ 1С
В каком виде ты предполагаешь получить это соединение ?
p.s.
И незачем так орать.
-
там соединение проиходит к MS SQL Server, вот я и хочу получить это сиквел соединение
-
> там соединение проиходит к MS SQL Server
Понятно что не к господу богу)
Ну, предположим, получил ты некий хэндл - что дальше ? Что с ним делать-то будешь ?
Продемонстрируй в коде или псевдокоде последующее использование тобой этого хэндла ..
-
Получить некое соединение к серверу и делать запросы , типа
"select * from ....."
типа ADO соединения или как то по другому ( !?!?!
-
> типа ADO соединения или как то по другому ( !?
Откуда там взялось ADO ?) .. В sql-версии 1Сv7 используется допотопная ODBC. Когда эта беда разрабатывалась, не было еще ни OLEDB ни тем более ADO.
А даже если бы там и использовалась ADO, в каком виде ты ожидаешь получить это соединение ?
-
а тоже соединение ODBC получить можно ?
и через него делать запросы ?
-
> соединение ODBC получить можно ?
Нельзя.
И вообще - ерундой ты занялся.
Открой свое собственное соединение и делай там все что тебе заблагорассудится.
Если платформа не предоставляет интерфейс непосредственного доступа к соединению, значит на это у разработчиков есть веские основания.
-
а получить, хотя бы, куда конектится, название сервера, базы - это возможно ?
просто бывают такие варианты когда база запускается в монопольном режиме, для этого и требовалось использовать тот же конект что и база !
-
> получить, хотя бы, куда конектится, название сервера, базы
> - это возможно ?
Наверно, возможно. Ведь 1С-приложение откуда-то таки берет эти данные для своей работы .. Спроси в службе поддержки разработчика платформы ..
И пойми ты, наконец, что если разработчик не предоставил тебе доступ к интересующему тебя интерфейсу, значит это имеет под собой веские основания.
Хотя бы потому что обращение к этому интерфейсу может не быть потокобезопасным.