1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Подключение к MS SQL Server с использованием OLE DB

Тема в разделе "Программирование", создана пользователем AlTk, 05.05.06.

  1. AlTk

    AlTk Читатель

    10.692
    0
    приношу свои извинения.
    при разделении тем случайно удали сообщения, касающиеся подключения к MS SQL Server.
     
  2. VitShvets

    VitShvets Активный участник

    565
    5
    Таки вопрос. Как насильственно указать таймаут на подключение.
    Ситуация - есть запрос. Рабочий. Когда запускаю его в Query Analyzer, он нормально отрабатывает, примерно за 4-5 минут. Когда запускаю его через АДО, через 45 секунд (примерно), отваливается:
    Microsoft OLE DB Provider for SQL Server: Время ожидания истекло
    Пробовал по разному подключаться и через инит строку вида:
    Provider=SQLOLEDB;User ID=sa;Password=pass;Data Source=Srv;Initial Catalog=MyDB
    И через UDL файл и через Propertis
    Conect.Provider = "sqloledb";
    Conect.Properties("Data Source").Value = Server
    ....
    Соединяется нормально, всеми 3-мя способами. При всех способах простенькие запросики ходят замечательно. А когда пытаюсь выполнить запрос, который мне нужен - пишет бяку..... :(
     
  3. Inigo

    Inigo Активный участник

    1.184
    509
    А клиент на чем? В Delphi, к примеру, у компонент доступа к данным через ADO есть свойство CommandTimeOut. В нем указывается время в секундах. Если запрос не уложится в это время, то он прерывается.
     
  4. jek

    jek Активный участник

    5.732
    0
    VitShvets,
    Таки это тогда не таймаут подключения, а таймаут запроса. Ищи в хелпе "Query governor". Также смотри sp_serveroption, sp_configure. Точно найдешь. И народ больше не путай неправильными вопросами:)
     
  5. VitShvets

    VitShvets Активный участник

    565
    5
    На 1C. Кстати получилось:
    Команда.CommandText = ТекстЗапроса;
    Команда.CommandTimeOut = 300;
    НаборЗаписей = Команда.Execute();

    Ага, а по умолчанию 30 секунд.
    Дык, знал бы как задать правильный вопрос, делал бы RTFM.
    А "Query governor", немного не то. Этот параметр (если я правильно вычитал в TFM), рулит серваком в целом, что делать категорически нельзя (в моём случае).
    2 All, Всем ВЕЛИКОЕ СПАСИБО!!!
     
  6. MSExplorer

    MSExplorer Гость

    В строке соединения используй параметр
    Connect Timeout
    или
    Connection Timeout
    Пример:
    "Provider=SQLOLEDB;User ID=sa;Password=pass;Data Source=Srv;Initial Catalog=MyDB;Connection Timeout=300"

    :hah: :hah:
    Совет
    Используй аутентификацию Windows NT, если нельзя :hah: то заходи на сервак ну ни как под sa и убери из строки соединения идентификатор и аутентификатор учетной записи по которой будеш логиниться, а то быстро серваку что нибуть свернут.