Конференция "Базы" » ошибка поключения Ms Sql [D7, MSSQL]
 
  • Axe (29.06.10 11:49) [0]
    Ситуация в следующем:
    1. Есть приложение для работы с базой данных в сети через  ADOConnection -> ADOQuery->DAtaSource
    2. База данных - MSSQL.
    Соеденение проходит успешно и выполнение первого SQL запроса проходит удачно, но через некоторое время если повторить запрос SQL то пишет ошибка соеденения! Вопрос как переподключить или что можно предпринять в данной ситуации?
  • Anatoly Podgoretsky © (29.06.10 12:09) [1]
    > Axe  (29.06.2010 11:49:00)  [0]

    1. Ошибка в 17 строке
    2. Используй TAdoDataset
    3. Пригласи программиста
    4. Пригласи телепата
  • 12 © (29.06.10 12:24) [2]
    > выполнение первого SQL запроса проходит удачно

    и вот тут
    showmesage(ADOConnection.ConnectString) +
    showmesage(ADOQuery.sql.text)


    > если повторить запрос SQL то пишет ошибка соеденения!

    и тут
    что пишет +
    showmesage(ADOConnection.ConnectString) +
    showmesage(ADOQuery.sql.text)

    в студию
  • Anatoly Podgoretsky © (29.06.10 13:10) [3]
    > 12  (29.06.2010 12:24:02)  [2]

    А почему ты складываешь две процедуры, что ты этим сказать то хотел?
  • 12 © (29.06.10 13:28) [4]

    > то ты этим сказать то хотел?

    просил привести

    ADOConnection.ConnectString
    ADOQuery.sql.text
    и что пишет
  • Anatoly Podgoretsky © (29.06.10 13:51) [5]
    Это ты так партизана раскалываешь :-)
  • Axe (29.06.10 16:21) [6]
    Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=lin2db;Data Source=127.0.0.1;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AXE;Use Encryption for Data=False;Tag with column collation when possible=FalseSELECT  uid, account,last_login,last_logout  FROM user_account WHERE account like 'goldeneye%'
    Выкладываю ADOConnection.ConnectString+
    ADOQuery.sql.text
  • 12 © (29.06.10 16:28) [7]
    а теперь тоже самое и текст ошибки, когда эта ошибка возникает
  • Axe (29.06.10 18:02) [8]
    Текст тотже выдает а ошибку то ошибка сеть, или ошибка подключения
  • MsGuns © (29.06.10 19:49) [9]
    Соединение, конечно же, в дизайне :)
  • Axe (29.06.10 20:39) [10]
    Поподробней? Что то описал непонятно?
  • MsGuns © (29.06.10 22:24) [11]
    В Object Inspector у TADOConnection стоит Active=true ?
  • Axe (29.06.10 22:52) [12]
    Да  я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
    Если делать при новом запросе пересоединение  т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?
  • Axe (29.06.10 22:53) [13]
    Да  я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
    Если делать при новом запросе пересоединение  т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?
  • Германн © (30.06.10 03:14) [14]

    > Axe   (29.06.10 18:02) [8]
    >
    > Текст тотже выдает а ошибку то ошибка сеть, или ошибка подключения
    >

    Ну когда же вы, троешники, научитесь приводить в сабже или в ответах текст сообщения об ошибке без перевода на ...
    :(
  • 12 © (30.06.10 08:51) [15]
    так не пойдет
    кинь на форму еще одно мемо и пиши вместо ADOQuery.open
    OpenQ(ADOQuery)

    procedure OpenQ(var AQ: tadoquery);
    begin
     memo.lines.add(AQ.sql.text);
     memo.lines.add(AQ.connection.connectstring);

     try
       AQ.Open;
     except
       on E:Exception do
       begin
         memo.lines.add(E.ClassName);
         memo.lines.add(E.Message);
         // Raise; // по желанию
       end;
     end;
    end;

    и показывай текст из мемо

    ps
    в коде возможны опечатки - писал сразу сюда
  • 12 © (30.06.10 09:00) [16]
    > как то можно обнаружить что потерянно соединение?

    у TADOConnection заполнены Showmessge('оп па'); на
    (Before-зачеркнуто :) )Disconnect
    AfterDisconnect
  • sniknik © (30.06.10 09:20) [17]
    > у TADOConnection заполнены Showmessge('оп па'); на
    > (Before-зачеркнуто :) )Disconnect
    > AfterDisconnect
    это не поможет, т.к. метод ничего не знает о проблемах сети до того как не проверит ее действием.
    а это сработает если где нибудь в той же программе будет - ADOConnection.Active:= false;

    + здесь можно не проверять ошибки сети, т.к. > Data Source=127.0.0.1;, здесь только ошибки в программе (или настройка сервера mssql - разрывать соединение после исполнения запроса... если такая есть конечно. что там администраторы по этому поводу скажут?).
  • Axe (30.06.10 10:02) [18]
    Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=lin2db;Data Source=127.0.0.1;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AXE;Use Encryption for Data=False;Tag with column collation when possible=False
    SELECT  uid, account,last_login,last_logout  FROM user_account WHERE account  like 'goldeneye%'

    Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=sa;Initial Catalog=lin2db;Data Source=127.0.0.1;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AXE;Use Encryption for Data=False;Tag with column collation when possible=False
    EOleException
    Ошибка подключения
  • Axe (30.06.10 10:05) [19]
    Ребят сразу оговорюсь, IP не локальный, это просто я поменял так как просили сервер не светит
  • sniknik © (30.06.10 10:13) [20]
    а отсутствие запроса в случае с ошибкой это тоже "оговорка"?

    > Это ты так партизана раскалываешь :-)
    это не партизан, это провокатор...
  • Axe (30.06.10 10:20) [21]
    Незнаю вызов такой же а запрос не выводит
  • 12 © (30.06.10 11:50) [22]
    во втором случае нет текста запроса
    ищи где текст может менятся

    напиши procedurу по смене текста запроса и делай не Q.SQL.text:=
    (и не Q.SQL.Add())
    А только через эту процедуру, и сигналь как только текст станет = пусто
 
Конференция "Базы" » ошибка поключения Ms Sql [D7, MSSQL]
Есть новые Нет новых   [134433   +22][b:0][p:0]