Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Внизошибка поключения Ms Sql Найти похожие ветки
← →
Axe (2010-06-29 11:49) [0]Ситуация в следующем:
1. Есть приложение для работы с базой данных в сети через ADOConnection -> ADOQuery->DAtaSource
2. База данных - MSSQL.
Соеденение проходит успешно и выполнение первого SQL запроса проходит удачно, но через некоторое время если повторить запрос SQL то пишет ошибка соеденения! Вопрос как переподключить или что можно предпринять в данной ситуации?
← →
Anatoly Podgoretsky © (2010-06-29 12:09) [1]> Axe (29.06.2010 11:49:00) [0]
1. Ошибка в 17 строке
2. Используй TAdoDataset
3. Пригласи программиста
4. Пригласи телепата
← →
12 © (2010-06-29 12:24) [2]> выполнение первого SQL запроса проходит удачно
и вот тут
showmesage(ADOConnection.ConnectString) +
showmesage(ADOQuery.sql.text)
> если повторить запрос SQL то пишет ошибка соеденения!
и тут
что пишет +
showmesage(ADOConnection.ConnectString) +
showmesage(ADOQuery.sql.text)
в студию
← →
Anatoly Podgoretsky © (2010-06-29 13:10) [3]> 12 (29.06.2010 12:24:02) [2]
А почему ты складываешь две процедуры, что ты этим сказать то хотел?
← →
12 © (2010-06-29 13:28) [4]
> то ты этим сказать то хотел?
просил привести
ADOConnection.ConnectString
ADOQuery.sql.text
и что пишет
← →
Anatoly Podgoretsky © (2010-06-29 13:51) [5]Это ты так партизана раскалываешь :-)
← →
Axe (2010-06-29 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 © (2010-06-29 16:28) [7]а теперь тоже самое и текст ошибки, когда эта ошибка возникает
← →
Axe (2010-06-29 18:02) [8]Текст тотже выдает а ошибку то ошибка сеть, или ошибка подключения
← →
MsGuns © (2010-06-29 19:49) [9]Соединение, конечно же, в дизайне :)
← →
Axe (2010-06-29 20:39) [10]Поподробней? Что то описал непонятно?
← →
MsGuns © (2010-06-29 22:24) [11]В Object Inspector у TADOConnection стоит Active=true ?
← →
Axe (2010-06-29 22:52) [12]Да я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
Если делать при новом запросе пересоединение т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?
← →
Axe (2010-06-29 22:53) [13]Да я при открытие формы активирую соединение, первый же запрос нормально проходит это потом как будто соединение закрывается
Если делать при новом запросе пересоединение т.е TADOConnection.close и TADOConnection.open то нормально запрос проходит, как то можно обнаружить что потерянно соединение?
← →
Германн © (2010-06-30 03:14) [14]
> Axe (29.06.10 18:02) [8]
>
> Текст тотже выдает а ошибку то ошибка сеть, или ошибка подключения
>
Ну когда же вы, троешники, научитесь приводить в сабже или в ответах текст сообщения об ошибке без перевода на ...
:(
← →
12 © (2010-06-30 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 © (2010-06-30 09:00) [16]> как то можно обнаружить что потерянно соединение?
у TADOConnection заполнены Showmessge("оп па"); на
(Before-зачеркнуто :) )Disconnect
AfterDisconnect
← →
sniknik © (2010-06-30 09:20) [17]> у TADOConnection заполнены Showmessge("оп па"); на
> (Before-зачеркнуто :) )Disconnect
> AfterDisconnect
это не поможет, т.к. метод ничего не знает о проблемах сети до того как не проверит ее действием.
а это сработает если где нибудь в той же программе будет - ADOConnection.Active:= false;
+ здесь можно не проверять ошибки сети, т.к. > Data Source=127.0.0.1;, здесь только ошибки в программе (или настройка сервера mssql - разрывать соединение после исполнения запроса... если такая есть конечно. что там администраторы по этому поводу скажут?).
← →
Axe (2010-06-30 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 (2010-06-30 10:05) [19]Ребят сразу оговорюсь, IP не локальный, это просто я поменял так как просили сервер не светит
← →
sniknik © (2010-06-30 10:13) [20]а отсутствие запроса в случае с ошибкой это тоже "оговорка"?
> Это ты так партизана раскалываешь :-)
это не партизан, это провокатор...
← →
Axe (2010-06-30 10:20) [21]Незнаю вызов такой же а запрос не выводит
← →
12 © (2010-06-30 11:50) [22]во втором случае нет текста запроса
ищи где текст может менятся
напиши procedurу по смене текста запроса и делай не Q.SQL.text:=
(и не Q.SQL.Add())
А только через эту процедуру, и сигналь как только текст станет = пусто
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.071 c