Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ошибка поключения Ms Sql [D7, MSSQL]


Страницы:   1 2

Axe ©   (2010-06-29 11:49:00) 

Ситуация в следующем:
1. Есть приложение для работы с базой данных в сети через  ADOConnection -> ADOQuery->DAtaSource
2. База данных - MSSQL.
Соеденение проходит успешно и выполнение первого SQL запроса проходит удачно, но через некоторое время если повторить запрос SQL то пишет ошибка соеденения! Вопрос как переподключить или что можно предпринять в данной ситуации?


12   (2010-06-30 11:50:00) [1]

во втором случае нет текста запроса
ищи где текст может менятся

напиши procedurу по смене текста запроса и делай не Q.SQL.text:=
(и не Q.SQL.Add())
А только через эту процедуру, и сигналь как только текст станет = пусто


Axe   (2010-06-30 10:20:00) [2]

Незнаю вызов такой же а запрос не выводит


sniknik   (2010-06-30 10:13:00) [3]

а отсутствие запроса в случае с ошибкой это тоже "оговорка"?

> Это ты так партизана раскалываешь :-)
это не партизан, это провокатор...


Axe   (2010-06-30 10:05:00) [4]

Ребят сразу оговорюсь, IP не локальный, это просто я поменял так как просили сервер не светит


Axe   (2010-06-30 10:02:00) [5]

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
Ошибка подключения


sniknik   (2010-06-30 09:20:00) [6]

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

+ здесь можно не проверять ошибки сети, т.к. > Data Source=127.0.0.1;, здесь только ошибки в программе (или настройка сервера mssql - разрывать соединение после исполнения запроса... если такая есть конечно. что там администраторы по этому поводу скажут?).


12   (2010-06-30 09:00:00) [7]

> как то можно обнаружить что потерянно соединение?

у TADOConnection заполнены Showmessge('оп па'); на
(Before-зачеркнуто :) )Disconnect
AfterDisconnect


12   (2010-06-30 08:51:00) [8]

так не пойдет
кинь на форму еще одно мемо и пиши вместо 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
в коде возможны опечатки - писал сразу сюда


Германн   (2010-06-30 03:14:00) [9]


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

Ну когда же вы, троешники, научитесь приводить в сабже или в ответах текст сообщения об ошибке без перевода на ...
:(


Axe   (2010-06-29 22:53:00) [10]

Да  я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
Если делать при новом запросе пересоединение  т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?


Axe   (2010-06-29 22:52:00) [11]

Да  я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
Если делать при новом запросе пересоединение  т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?


MsGuns   (2010-06-29 22:24:00) [12]

В Object Inspector у TADOConnection стоит Active=true ?


Axe   (2010-06-29 20:39:00) [13]

Поподробней? Что то описал непонятно?


MsGuns   (2010-06-29 19:49:00) [14]

Соединение, конечно же, в дизайне :)


Axe   (2010-06-29 18:02:00) [15]

Текст тотже выдает а ошибку то ошибка сеть, или ошибка подключения


12   (2010-06-29 16:28:00) [16]

а теперь тоже самое и текст ошибки, когда эта ошибка возникает


Axe   (2010-06-29 16:21:00) [17]

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


Anatoly Podgoretsky   (2010-06-29 13:51:00) [18]

Это ты так партизана раскалываешь :-)


12   (2010-06-29 13:28:00) [19]


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

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

ADOConnection.ConnectString
ADOQuery.sql.text
и что пишет


Anatoly Podgoretsky   (2010-06-29 13:10:00) [20]

> 12  (29.06.2010 12:24:02)  [2]

А почему ты складываешь две процедуры, что ты этим сказать то хотел?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо