Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2016, 13:39
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию Убрать ошибки подключения к БД

Дайте пожалуйста кусок кода чтоб убрать ошибки подключения к БД. Например ошибка 10051 или 10060 (недоступен сервер майскл). Спасибо
Ответить с цитированием
  #2  
Старый 09.01.2016, 13:58
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

для начала хотябы эту ошибку

Ответить с цитированием
  #3  
Старый 09.01.2016, 14:02
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

так это сообщение отладчика
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #4  
Старый 09.01.2016, 14:07
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

ошибка "SQL ERROR: Unknown MySQL server host (11001)"
Ответить с цитированием
  #5  
Старый 09.01.2016, 14:57
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Поместите секцию подключения к БД в try except. Отладчик все равно будет ругаться, если вы ему не запретите это делать, а вот программа будет нормально обрабатывать исключение без ругани.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 09.01.2016, 15:07
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Поместите секцию подключения к БД в try except. Отладчик все равно будет ругаться, если вы ему не запретите это делать, а вот программа будет нормально обрабатывать исключение без ругани.

вот именно это и прошу) напишите пример что и куда поместить
Ответить с цитированием
  #7  
Старый 09.01.2016, 15:46
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Сделал вот так
Код:
try
ZConnection1.Connected := true;
except
ShowMessage('Нет связи с сервером');
end;
Выскакивает окно "Нет связи с сервером" но после его закрытия выскакивает и стандартная ошибка "Unknown mysql server host".
Как проверить что вызывает эту ошибку? Может OnAfterConnect?
Ответить с цитированием
  #8  
Старый 09.01.2016, 15:54
chellas88 chellas88 вне форума
Прохожий
 
Регистрация: 09.01.2016
Сообщения: 46
Версия Delphi: delphi 7
Репутация: 10
По умолчанию

Все понял. В Try просто нужно было брать весь код связан с sql-запросом
Код:
procedure TForm1.log_buttonClick(Sender: TObject);
begin
try
ZConnection1.Connected := true;
ZQuery1.Connection:= ZConnection1;
userName:= userid.Text;
ZQuery1.SQL.clear;
ZQuery1.SQL.ADD('SELECT * FROM `users` WHERE `userid` ="'+userName+'"');
ZQuery1.Active:=TRUE;


pass:= ZQuery1.FieldByName('password').AsString;
    if (pass = Form1.password.text)
    then
      begin
         Form1.Hide;
         Form2.Show;
      //   Form2.user.Caption:=  zquery1.FieldByName('id').AsString;

      end

    else ShowMessage('Не верный логин или пароль');

except
ShowMessage('Нет связи с сервером');
end;
end;

Еще 2 вопроса. Достаточно одного подключения к БД на всю программу или желательно на каждой форме создавать? И обязательно ли закрывать SQL-запросы после выполнения?
Ответить с цитированием
  #9  
Старый 10.01.2016, 13:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Дело в том, что каждое подключение создает свой независимый закрытый сеанс. И если вам захочется использовать одновременно данные из двух разных сеансов, вы столкнетесь с весьма большими проблемами. Поэтому делается обычно одно подключение на одно приложение.
Если результат запроса вам более не нужен, то смело закрывайте его. Вполне нормальная ситуация, когда в течении работы приложения имеется один постоянно открытый набор данных и к этому набору обращаются куча запросов, каждый из которых закрывается после выполнения.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение:
chellas88 (10.01.2016)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter