![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Дайте пожалуйста кусок кода чтоб убрать ошибки подключения к БД. Например ошибка 10051 или 10060 (недоступен сервер майскл). Спасибо
|
|
#2
|
|||
|
|||
|
для начала хотябы эту ошибку
![]() |
|
#3
|
||||
|
||||
|
так это сообщение отладчика
|
|
#4
|
|||
|
|||
|
ошибка "SQL ERROR: Unknown MySQL server host (11001)"
|
|
#5
|
||||
|
||||
|
Поместите секцию подключения к БД в try except. Отладчик все равно будет ругаться, если вы ему не запретите это делать, а вот программа будет нормально обрабатывать исключение без ругани.
|
|
#6
|
|||
|
|||
|
Цитата:
вот именно это и прошу) напишите пример что и куда поместить |
|
#7
|
|||
|
|||
|
Сделал вот так
Код:
try
ZConnection1.Connected := true;
except
ShowMessage('Нет связи с сервером');
end;Как проверить что вызывает эту ошибку? Может OnAfterConnect? |
|
#8
|
|||
|
|||
|
Все понял. В 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
|
||||
|
||||
|
Дело в том, что каждое подключение создает свой независимый закрытый сеанс. И если вам захочется использовать одновременно данные из двух разных сеансов, вы столкнетесь с весьма большими проблемами. Поэтому делается обычно одно подключение на одно приложение.
Если результат запроса вам более не нужен, то смело закрывайте его. Вполне нормальная ситуация, когда в течении работы приложения имеется один постоянно открытый набор данных и к этому набору обращаются куча запросов, каждый из которых закрывается после выполнения. |
| Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
chellas88 (10.01.2016)
| ||