Связь 1С с Oracle

Тема в разделе "1C и всё что с ней связано", создана пользователем -, 5 май 2009.

Статус темы:
Закрыта.
  1. Гость

    Добрый день, столкнулся с проблемой, создал обработку, которая загружает с Oracle в 1С 7.7 необходимую мне информацию, у меня она чудесно работала, как только попробовал запустить её на одном из серверов(не сервер Oracle), вылезла ошибка, в строке DataBaseConnection.Open():
    «Microsoft OLE DB Provider for Oracle: Произошла ошибка Oracle, для которой невозможно загрузить сообщение из Oracle.»

    Код обработки:
    DataBaseConnection = CreateObject("ADODB.Connection");

    DataBaseConnection.ConnectionString = "Provider=MSDAORA.1;Password=**;User ID=**;Data Source=*****;Persist Security Info=True";
    DataBaseConnection.Open();
    …….
    Мои данные поменял на ****.

    Я долгими мучениями, нашел выход один:
    DataBaseConnection2 = CreateObject("ADODB.Connection");
    DataBaseConnection = CreateObject("ADODB.Connection");
    DataBaseConnection2.ConnectionString = "Provider=OraOLEDB.Oracle;Password=**;User ID=**;Data Source=****;Persist Security Info=True";
    DataBaseConnection2.Open();
    DataBaseConnection.ConnectionString = "Provider=MSDAORA.1;Password=***;User ID=***;Data Source=*****;Persist Security Info=True";
    DataBaseConnection.Open();

    Подключившись сначала через провайдера OraOLEDB.Oracle, и не закрывая базу зайти через MSDAORA.1…. Я честно говоря чуток удивлен(мягко говоря)
    Но это не есть идеальный выход с положения.
    Кто что может посоветовать?


    П.С. Писалось на 1С 7.7. Сервер Win Serv2003, Oracle 9.2, переустановленный ADO 2.7
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Честно говоря, создается впечатление, что драйвер не видит сервера. Посмотрите версии драйверов на работающем и на ненормально работающем серверах, а также какие DSN прописаны на них. Что-то мне подсказывает, что дело именно в этом...
     
  3. Гость

    Спасибо за ответ, но и на моем компе и на сервере, альтернативный днс, это сервер Oracle.
     
  4. jcnby

    jcnby Гость

    хм .... тогда наверное где-то в строке соединения .... быть может там не хватает каких либо операторов? ибо насколько я помню ( очень смутно) для каждого треб. свои опред. операторы.

    DataBaseConnection2.ConnectionString = "Provider=OraOLEDB.Oracle;Password=**;User ID=**;Data Source=****;Persist Security Info=True";
    DataBaseConnection2.Open(); -может тут сразу попробовать перейти на записи через рекордсэт .... серавно она ж отрыта в упор ... и через етот драйв она должна похать ...
     
  5. Гость

    К сожалению не пахает, хотя возможно я что-то не так и делал. У меня нету опыта использывать OraOLEDB.Oracle, да и в иенете я не нашел достойного примера.
    Вот код с OraOLEDB.Oracle:
    DataBaseConnection = CreateObject("ADODB.Connection");
    DataBaseConnection2.ConnectionString = "Provider=OraOLEDB.Oracle;Password=**;User ID=**;Data Source=****;Persist Security Info=True";
    DataBaseConnection2.Open();
    RecordSet = СоздатьОбъект("ADODB.Recordset");
    RecordSet.ActiveConnection = DataBaseConnection;
    RecordSet.CursorLocation = 3; // UseClient
    RecordSet.Open("SELECT payaccount.account_num,payaccount.account_date,client.Name,CAST(client.zkpo AS char(10)) AS zkpo,CAST(payaccount.summa AS char(10)) AS suma FROM payaccount,client WHERE client.id=payaccount.client_id and payaccount.ACCOUNT_DATE>='" +ДатаНач +"' and payaccount.ACCOUNT_DATE<='"+ДатаКон+"' ORDER BY payaccount.account_date");

    Для i = 1 По RecordSet.RecordCount Цикл


    Оно не находит ни одной строки :(((
    ...............
     
  6. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    а попытками поймать где рубит?
     
  7. Гость

    Не понял вопроса. Если при MSDAORA.1 то при открытии базы оно сразу ошибку выдает.
    А если OraOLEDB.Oracle то я не могу найти ни одной записи.
     
  8. jcnby

    jcnby Гость

    rs.Open "Таблица", cn.ConnectionString, adOpenStatic, adLockOptimistic

    где cn.ConnectionString
    Dim cn As New ADODB.Connection
    cn.ConnectionString = "Provide и т.д.
    adOpenStatic, adLockOptimistic -курсоры

    For h = 1 To rs.RecordCount - 1 Step 1 цикл типа

    DataBaseConnection2.Open(); - тогда ету страку можно убрать - нам ненада ее открывать , ибо мы сразу рекордсэт открываем тупо влоб на таблицу сразу ( в моем примере )




    просто различные структуры получения данных из разных способов .... гдето Рекорды, Гдето филды, гдето ваобще я вное обращение по адресу .... жаль но наверное более я не вспомню ... перестал этим заниматься после того как сервак положил и его реанимировали 5 часиков)) сказали более не экспереминтировать))




    Айайайайай - вспомнил .... кароче все у тебя было нормально .....
    Есть такая фича - делаешь Текстовый файл ( меняешь у него разрежение на UDL) и просто генерируешь строку соединения для етого компа - он автоматом посчитает что нада ему и что нет, и будет тебе коннект. Попробуй ее- и там кстати сразуже можно проверить идет коннект или нет
     
  9. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    А разве я про DNS (Domain Name System) говорил? Я про DSN (Data Source Name) говорил. Разница ощущается?
     
  10. jcnby

    jcnby Гость

    через унд будет видно, если че отругается или повозмущается .
     
  11. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Так кто спорит, что будет видно? При настройке датасорса тоже будет видно.
     
  12. jcnby

    jcnby Гость

    Ждем автора)
     
  13. Гость

    Аффтор здесь )))
    Извините, на счет DSN и впрямь не заметил, с ним все нормально, это 100% настроено идентично моему компу…
    Да и если б он был не верен, то я б вообще не смог бы подрубиться к базе.

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

    На счет UDL файла, интересная идея, спасибо, я попробую и отпишусь, помогло ли…
     
Загрузка...
Похожие Темы - Связь 1С Oracle
  1. serox
    Ответов:
    3
    Просмотров:
    1.710
  2. morkov
    Ответов:
    1
    Просмотров:
    1.571
  3. shadow288
    Ответов:
    3
    Просмотров:
    1.868
  4. nayke
    Ответов:
    60
    Просмотров:
    9.786
  5. Chron
    Ответов:
    14
    Просмотров:
    5.273
Статус темы:
Закрыта.

Поделиться этой страницей