Конференция "Corba" » Получить конект через IDispatch ! [D7, WinXP]
 
  • 312kbps (15.11.06 13:55) [0]
    Есть некая программа которая при запуске конектится к MSSQL и процессе работы через этот конект работает с базой данных.
    У меня есть IDispatch это программы, как я могу получить этот конект и через него делать запросы к той же базе данных ?
  • Сергей М. © (15.11.06 13:59) [1]

    > 312kbps   (15.11.06 13:55)


    Ты все про 1С Add-In's долдонишь ?)
  • 312kbps (15.11.06 14:02) [2]
    ага, уже кучу работы сделал (((

    а вот с некоторыми вещами ни как не могу справиться !
  • Сергей М. © (15.11.06 14:06) [3]

    > У меня есть IDispatch это программы


    Начнем с того, что У программы нет IDispatch - оной есть у объекта автоматизации.

    Теперь разберись, что это за объект и какие методы/свойства он предоставляет для обращения к ним посредством диспинтерфейса, который ты имеешь.
  • 312kbps (15.11.06 14:54) [4]
    я терминах не очень (

    программа создает соединение с сервером и через него работает , пока её не закроют, могу ли я получить это соединение чтоб использовать в своих целях ?
  • Сергей М. © (15.11.06 15:00) [5]

    > 312kbps   (15.11.06 14:54) [4]


    Разве на ITS-ресурсах нет на эту тему инф-ции ?
    Хоть убей - не поверю.
  • 312kbps (15.11.06 15:18) [6]
    где искать покажи, плиззз
    все просматрю !
  • Сергей М. © (15.11.06 15:19) [7]

    > где искать покажи, плиззз
    > все просматрю !
    >


    На дисках ITS (информационно-технологическим сопровождением), которые ты получаешь при подписке на них при офиц.приобретении 1C-продуктов
  • 312kbps (15.11.06 15:31) [8]
    да на этом ИТС по данной теме нет ни чего (((
  • Сергей М. © (15.11.06 15:34) [9]

    > 312kbps   (15.11.06 15:31) [8]


    Ой не ври
  • Сергей М. © (15.11.06 15:35) [10]
    В конце-концов на офиц.инет-ресурсах одноэсины есть ссылки на соотв.док-цию, которая стоит терпимо мало
  • 312kbps (15.11.06 15:39) [11]
    дело в том что я весь инет перерыл и ни какой инфы не нашел (
    вот поэтому и обратился за помощью сюда !
  • 312kbps (15.11.06 16:40) [12]
    нашел как обращаться к методам )
    var rtm: OleVariant;
    ............
    rtm:=OLEVariant(AddInFPList.pConnection).AppDispatch;
    IDispatch(rtm)._addref;
    str:=rtm.EvalExpr('ИмяКомпьютера()');

    а вот самое соединение ни как (
  • Сергей М. © (16.11.06 09:41) [13]

    > а вот самое соединение ни как


    Но ведь у объекта rtm есть методы, позволяющие выполнять запросы к текущей активной БД на встроенном "SQL-подобном" языке, разве этого не достаточно ?
  • 312kbps (16.11.06 10:25) [14]
    нет не достаточно, нужен доступ к самим таблицам в сиквеле (при чем не новым соединением, а существующем)
  • Сергей М. © (17.11.06 12:36) [15]

    > нужен доступ к самим таблицам в сиквеле


    А зачем ?

    Каковы аргументы в пользу "тарабарщины" вида

    select SomeField from SomeTable

    против ее "осмысленного" эквивалента вида

    ВЫБРАТЬ Дата ИЗ ЖУРНАЛ_ТАКОЙ_ТО

    ?
  • 312kbps (17.11.06 15:44) [16]
    пошутил что ли )))))))))))))
    эта тарабарщина выполняется раз в 100 быстрее чем тотже запрос, только исковерканый 1С'ом
  • Сергей М. © (17.11.06 16:24) [17]

    > 312kbps   (17.11.06 15:44) [16]


    Про скорость ты ничего не говорил до сего момента.

    А не пугает тебя заведомая неизвестность механизма доступа к объектам БД, используемая одноэсиной ?

    А геморрой с именами таблиц тебя не пугает ?
  • 312kbps (17.11.06 17:23) [18]
    да блин, прошу помощи !!!

    я уже давно так работаю, оптимизирую запросы в 1С , прямой доступ к 1С
    это все гораздо удобнее и быстрее, все крупные предприятия у которых есть 1С, так работают, через прямой доступ к 1С, только работают через аналайзер сиквела.

    а я хочу сделать встренный механизм запросов, чтоб сесия всего одна была !!!

    вот и спрашиваю , КАК ПОЛУЧИТЬ САМО СОЕДИНЕНИЕ 1С для своих нужд !!!
  • Сергей М. © (20.11.06 08:38) [19]

    > КАК ПОЛУЧИТЬ САМО СОЕДИНЕНИЕ 1С


    В каком виде ты предполагаешь получить это соединение ?
    p.s.
    И незачем так орать.
  • 312kbps (21.11.06 09:47) [20]
    там соединение проиходит к MS SQL Server, вот я и хочу получить это сиквел соединение
  • Сергей М. © (22.11.06 09:02) [21]

    > там соединение проиходит к MS SQL Server


    Понятно что не к господу богу)

    Ну, предположим, получил ты некий хэндл - что дальше ? Что с ним делать-то будешь ?

    Продемонстрируй в коде или псевдокоде последующее использование тобой этого хэндла ..
  • 312kbps (22.11.06 10:08) [22]
    Получить некое соединение к серверу и делать запросы , типа
    "select * from ....."

    типа ADO соединения или как то по другому ( !?!?!
  • Сергей М. © (22.11.06 10:24) [23]

    > типа ADO соединения или как то по другому ( !?


    Откуда там взялось ADO ?) .. В sql-версии 1Сv7 используется допотопная ODBC. Когда эта беда разрабатывалась, не было еще ни OLEDB ни тем более ADO.

    А даже если бы там и использовалась ADO, в каком виде ты ожидаешь получить это соединение  ?
  • 312kbps (22.11.06 11:46) [24]
    а тоже соединение ODBC получить можно ?
    и через него делать запросы ?
  • Сергей М. © (22.11.06 11:58) [25]

    > соединение ODBC получить можно ?


    Нельзя.

    И вообще - ерундой ты занялся.

    Открой свое собственное соединение и делай там все что тебе заблагорассудится.

    Если платформа не предоставляет интерфейс непосредственного доступа к соединению, значит на это у разработчиков есть веские основания.
  • 312kbps (22.11.06 13:23) [26]
    а получить, хотя бы, куда конектится, название сервера, базы - это возможно ?

    просто бывают такие варианты когда база запускается в монопольном режиме, для этого и требовалось использовать тот же конект что и база !
  • Сергей М. © (23.11.06 10:32) [27]

    > получить, хотя бы, куда конектится, название сервера, базы
    > - это возможно ?


    Наверно, возможно. Ведь 1С-приложение откуда-то таки берет эти данные для своей работы .. Спроси в службе поддержки разработчика платформы ..

    И пойми ты, наконец, что если разработчик не предоставил тебе доступ к интересующему тебя интерфейсу, значит это имеет под собой веские основания.

    Хотя бы потому что обращение к этому интерфейсу может не быть потокобезопасным.
 
Конференция "Corba" » Получить конект через IDispatch ! [D7, WinXP]
Есть новые Нет новых   [134431   +9][b:0][p:0.001]