Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
ksi

Can not save record(data) into database mySQL Using Delphi 10.3 Rio in Release Mode

Вопрос

Dear Brovin Yaroslav

First of all I would like to thank you for this great product (FGX component). I have a problem when using TFgActivityDialog in "Release Mode" in Delphi 10.3 Rio. When i deploy my Android Application in PlayStore, the application can not save record into mySQL Server, meanwhile in "Debug Mode" (Developement) it can save record into MySQL Server. What should i do to make mycode work in "Release mode" (playStore)? Please help me...

Here is the code i wrote:

procedure TLocationForm.btnSendClick(Sender: TObject);
begin
    with dmMyLocation do
    begin
      if not fgActivityDialog.IsShown then
      begin
        FActivityDialogThread := TThread.CreateAnonymousThread(procedure
        begin
          try
            TThread.Synchronize(nil, procedure
            begin
              fgActivityDialog.Message := 'Please, Wait';
              fgActivityDialog.Show;
            end);
            Sleep(1000);
            if TThread.CheckTerminated then
              Exit;

            TThread.Synchronize(nil, procedure
            begin
              fgActivityDialog.Message := 'Sending data...';

              qInsert.SQL.Clear;
              qInsert.SQL.Add('INSERT INTO mabsensilokasi(');
              qInsert.SQL.Add('idlokasi,');
              qInsert.SQL.Add('tgllokasi,');
              qInsert.SQL.Add('latx,');
              qInsert.SQL.Add('longx,');
              qInsert.SQL.Add('latlongx,');
              qInsert.SQL.Add('namalokasi) ');
              qInsert.SQL.Add('VALUES(');
              qInsert.SQL.Add(':idlokasi,');
              qInsert.SQL.Add(':tgllokasi,');
              qInsert.SQL.Add(':latx,');
              qInsert.SQL.Add(':longx,');
              qInsert.SQL.Add(':latlongx,');
              qInsert.SQL.Add(':namalokasi)');

              qInsert.Prepare;
              qInsert.Params[0].AsInteger := 0;
              qInsert.Params[1].AsDateTime := Now;
              qInsert.Params[2].AsFloat := strToFloat(ENUSLat);
              qInsert.Params[3].AsFloat := strToFloat(ENUSLong);
              qInsert.Params[4].AsString := ENUSLat+':'+ENUSLong;
              qInsert.Params[5].AsString := edtNamaLokasi.Text;

              try
                UniConnection1.Connect;
                qInsert.ExecSQL;
                ShowMessage('Record was save into MySQL Server DB...'); //showup windows of dialog when data was save succesfully into db mysql server
              except
                on e:exception do
                begin
                  ShowMessage(e.Message);
                  UniConnection1.Disconnect;
                end;//exception
              end;//try

              //fgActivityDialog.ExecuteAction(btnSend);

            end);
            Sleep(1000);
            if TThread.CheckTerminated then
              Exit;


            TThread.Synchronize(nil, procedure
            begin
              fgActivityDialog.Message := 'Finish';
            end);
            Sleep(500);

            if TThread.CheckTerminated then
              Exit;

          finally
            if not TThread.CheckTerminated then
              TThread.Synchronize(nil, procedure
              begin
                fgActivityDialog.Hide;
              end);
          end;//try
        end);//FActivityDialogThread

        FActivityDialogThread.FreeOnTerminate := False;
        FActivityDialogThread.Start;
      end;//if


    end;//endDM

end;//endProc

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

UniConnction1 has property AutoCommit that has value default for TRUE. So i think the problem is not here!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
procedure TLocationForm.btnSendClick(Sender: TObject);
begin
    with dmMyLocation do
    begin
      if not fgActivityDialog.IsShown then
      begin
        fgActivityDialog.Message := 'Please, Wait';
        fgActivityDialog.Show;
        FActivityDialogThread := TThread.CreateAnonymousThread(procedure
        begin
          Sleep(1000);
          if TThread.CheckTerminated then
            Exit;
          TThread.Synchronize(nil, procedure
          begin
            fgActivityDialog.Message := 'Sending data...';
          end);
          try
              qInsert.SQL.Clear;
              qInsert.SQL.Add('INSERT INTO mabsensilokasi(');
              qInsert.SQL.Add('idlokasi,');
              qInsert.SQL.Add('tgllokasi,');
              qInsert.SQL.Add('latx,');
              qInsert.SQL.Add('longx,');
              qInsert.SQL.Add('latlongx,');
              qInsert.SQL.Add('namalokasi) ');
              qInsert.SQL.Add('VALUES(');
              qInsert.SQL.Add(':idlokasi,');
              qInsert.SQL.Add(':tgllokasi,');
              qInsert.SQL.Add(':latx,');
              qInsert.SQL.Add(':longx,');
              qInsert.SQL.Add(':latlongx,');
              qInsert.SQL.Add(':namalokasi)');

              qInsert.Prepare;
              qInsert.Params[0].AsInteger := 0;
              qInsert.Params[1].AsDateTime := Now;
              qInsert.Params[2].AsFloat := strToFloat(ENUSLat);
              qInsert.Params[3].AsFloat := strToFloat(ENUSLong);
              qInsert.Params[4].AsString := ENUSLat+':'+ENUSLong;
              qInsert.Params[5].AsString := edtNamaLokasi.Text;

              try
                UniConnection1.Connect;
                qInsert.ExecSQL;
                TThread.Synchronize(nil, procedure
                begin
                  ShowMessage('Record was saved into MySQL Server DB...'); //showup windows of dialog when data was save succesfully into db mysql server
                end);
              except
                on e:exception do
                begin
                  TThread.Synchronize(nil, procedure
                  begin
                    ShowMessage(e.Message);
                    UniConnection1.Disconnect;
                  end);
                end;//exception
              end;//try

              //fgActivityDialog.ExecuteAction(btnSend);
            Sleep(1000);
            if TThread.CheckTerminated then
              Exit;


            TThread.Synchronize(nil, procedure
            begin
              fgActivityDialog.Message := 'Finish';
            end);
            Sleep(500);

            if TThread.CheckTerminated then
              Exit;

          finally
            if not TThread.CheckTerminated then
              TThread.Synchronize(nil, procedure
              begin
                fgActivityDialog.Hide;
              end);
          end;//try
        end);//FActivityDialogThread

        FActivityDialogThread.FreeOnTerminate := False;
        FActivityDialogThread.Start;
      end;//if


    end;//endDM

end;//endProc

I have changed your code a little bit. To make some kind of separation.

Изменено пользователем IVGSoft

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Dear IVGSoft,

I would like to thank you very much for your help...and i will try it now...and let me inform you the result please!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
2 минуты назад, ksi сказал:

Dear IVGSoft,

I would like to thank you very much for your help...and i will try it now...and let me inform you the result please!

 

Sure, try! :) I hope it will helps you.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Dear IVGSoft

I have tried the code you suggested but the result is the same as before. In Development Mode (Debug) the code works well but when i change the application to Release Mode (Application Store) the code did not work well (data can not save into database MySQL Server). Meanwhile the code in debug mode and release mode is the same.

Whould you please help me to solve it? Thank you very much for your help!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 09.03.2019 в 12:19, ksi сказал:

Dear IVGSoft

How to emulate debugger in release mode?

As I told you in a previous message - use logging after each potentially errorneous block/line.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Dear IVGSoft

The problem found...it was about the floating value in myLatitude field that detect as a string...

Thanks in advanced for your help !

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...