Topic: ошибка при отмене

если при подключении к mysql нажимаю отмена, то получаю ошибку

Post's attachments

Attachment icon Image 1.jpg 66.61 kb, 157 downloads since 2018-09-27 

Re: ошибка при отмене

Подключение не было установлено, поэтому возникает ошибка.
Вы можете скриптом перехватить данную ошибку и вывести свое сообщение или обработать это каким то другим образом.


// global event for all exceptions related database
function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
begin

    // if not connected, for MySQL
    if Pos('Code: 10061', Msg)>0 then
    begin
        result := True; // to prevent system message
        // Own message
        MessageBox('Not connected.', 'Error', MB_OK+MB_ICONWARNING);
    end;

end;


Либо вы можете создать свой диалог подключения к серверу и например закрывать приложение если подключение не удалось, либо реализовать что-то другое.

Dmitry.

Re: ошибка при отмене

о да, то что нужно..

решил сделать так

 // глобальное событие для всех баз данных, связанных с исключениями
function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
begin

    // если не подключен, для MySQL
    if Pos('Code: 10061', Msg)>0 then
    begin
        result := True; // для предотвращения системного сообщения
        // сообщение
        MessageBox('Произошла ошибка либо Вы отменили соединение с базай данных MySQL.', 'Ошибка либо отмена соединения ', MB_ABORTRETRYIGNORE+MB_ICONINFORMATION);
    end;

end;

как я понимаю в моем случае возможные ответы от пользователя

IDABORT
IDRETRY
IDNO

еще я заметил, что по умолчанию действи не происходит но в ini меняется mysql  на sqlite, то есть при нажатии павтор мне нужно изменить запись в ini с sqlite на mysql перезагрузить программу..
А вот как быть к кнопкой отмена , возможно ли поменять  эту подпись..?

4 (edited by sibprogsistem 2018-09-27 12:57:45)

Re: ошибка при отмене

ХМ перезагруил MVDB и стало происходить следующее
запись в ini остается mysql
кода жму Повтор винда начинает тормозить...
именно... виндовс начинает переодически зависать

5 (edited by sibprogsistem 2018-09-27 15:00:17)

Re: ошибка при отмене

вот такая штука присходит при клике на кнопке Повтор

как завершить программу?

Post's attachments

Attachment icon Image 1.png 167.24 kb, 177 downloads since 2018-09-27 

Re: ошибка при отмене

Пожалуйста, прикладывайте проект.

Dmitry.

7 (edited by sibprogsistem 2018-09-28 09:40:48)

Re: ошибка при отмене

вот

и еще если не затруднит строчки 660-682

там варианты загрузки программы,  почему-то  frmLogin.Hide вызывает ошибку  вызывает ошибку

Post's attachments

Attachment icon service.rar 97.66 kb, 293 downloads since 2018-09-28 

Re: ошибка при отмене

sibprogsistem wrote:

вот такая штука присходит при клике на кнопке Повтор

как завершить программу?

В самом конце скрипта

begin

   SQLExecute('ATTACH DATABASE ''setting\sqlite.db'' as ''SETTING''');

end.

вы пытаетесь подключить sqlite базу, это не будет работать, если проект предназначен для MySQL подключения, что вызывает ошибку зависания в памяти.

Dmitry.

Re: ошибка при отмене

sibprogsistem wrote:

вот

и еще если не затруднит строчки 660-682

там варианты загрузки программы,  почему-то  frmLogin.Hide вызывает ошибку  вызывает ошибку

Нельзя в событии формы OnShow скрывать форму, но можно закрыть

frmLogin.Close;
Dmitry.

Re: ошибка при отмене

спасибо!
подключение sqlite переделаю на ini...

а вот  frmLogin главная форма..  закрывать нельзя

Re: ошибка при отмене

Теперь новая ошибка..
я удалил все строчки связанные со второй sqlite и получил новую ошибку
https://downloader.disk.yandex.ru/preview/f56487f97cfdcaf84fba0655241a30b910ec7602be15e1f2fa24963faba9647b/5baf643e/wen71ENjM59wrRqPBbBXuj7O4ai1U-8bFUYrZaafpodTvC-PXVwEtzg_8whDIzAyy3wjrFIzMB195JpbbiOYIQ%3D%3D?uid=0&filename=Image%202.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=2048x2048
ошибка уходит когда  я убираю все условия из frmLogin_OnShow

Post's attachments

Attachment icon service.rar 128.99 kb, 273 downloads since 2018-09-29 

Re: ошибка при отмене

все понял, программа  не подключилась к mysql .  а форма пытается записать в базу информацию

сделал так

function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
var
ini : TInifile;
begin
    ini :=TIniFile.Create(ExtractFilePath (ParamStr (0))+'settings.ini');
    // если не подключен, для MySQL
    if Pos('Code: 10061', Msg)>0 then
    begin
        result := True; // для предотвращения системного сообщения
        // сообщение
      if IDRETRY = MessageBox('Произошла ошибка либо Вы отменили соединение с MySQL.', 'Ошибка либо отмена соединения ', MB_RETRYCANCEL+MB_ICONINFORMATION)then begin
      OpenFile('start.bat');
      frmLogin.Close;
      end else
      ini.WriteString('Options', 'DBMS', 'sqlite');
      OpenFile('start.bat')
      frmLogin.Close;
    end;
end;