У меня есть приложение, встроенное в Delphi
и оно обращается к MySQL
данных MySQL
используя MyDAC components
и Windows XP
.
Я хочу, чтобы это приложение запускалось в System Startup
, поэтому я добавил Application shortcut
в папку Startup
также добавил Registry key
.
Но когда я запускаю свою систему, сначала появляется сообщение об ошибке Microsoft
Myapplication.exe has encountered a problem and needs to close.
и запрашивает отчет об ошибках. После этого появляется другая ошибка приложения
Exception EMyError in module MyApplication.exe
Can't connect to MySQL server on 'localhost'(10061)
Socket error on connect.
как я могу это преодолеть?
любая помощь
Некоторые подсказки:
EMyError
- в этом случае используйте Sleep(5000)
чтобы подождать 5 секунд, а затем повторите попытку до тех пор, пока соединение не произойдет.Типичным кодом, использующим службу, может быть:
procedure TMyService.Execute;
var retry: boolean;
begin
retry := true;
repeat
try
ConnectToDatabase;
retry := false; // connection success
except
on E: EMyError do
sleep(5000); // wait 5 seconds and retry
end;
if Terminated then
exit; // avoid endless loop
until not retry;
// ... now you are connected and you can continue
MySQL
прежде чем моя заявка начинается
Вам нужно реализовать попытку. Кроме цикла для вашего подключения. Если он терпит неудачу, он должен подождать некоторое время и повторить попытку. Скорее всего, ваше приложение запускается раньше и/или быстрее, чем ваш экземпляр mysql.