Delphi Can

Orjinalini görmek için tıklayınız: Firemonkey Android Uygulama Kapanıyor
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Bir mobil uygulama geliştiriyorum.Uygulamamda bir update işlemi yapacam fakat update yapıyor hemen ardından uygulamayı kapatıyor.
 
kod örneği.

islem.Close;
                  islem.Open;
                  islem.SQL.Text:= format('select ORDER_ID from RECEIVED_ORDER where RECEICED_CODE=''%s''',[gelenhareketCode]);
                  islem.Execute;
                  id := islem['ORDER_ID'];

                  kontrol.Close;
                  kontrol.Open;
                  kontrol.SQL.Text:= format('select * from RECEIVED_ORDER where ORDER_ID=''%s''',[id]);
                  kontrol.Execute;

                  while not kontrol.Eof do
                  begin
                    guncelle.close;
                    guncelle.SQLUpdate.Text:=format('UPDATE RECEIVED_ORDER SET PATIENT_DURUM =TongueATIENT_DURUM  where ORDER_ID=''%s''  ',[id]);
                    guncelle.Open;
                    guncelle.Edit;
                    guncelle.FieldByName('PATIENT_DURUM').AsInteger:= 8;
                    guncelle.Post;
                    kontrol.next;
                  end;

                  gorev.Close;
                  gorev.Open;
                  gorev.SQL.Text:= format('SELECT H_ADI_SOYADI,RECEICED_CODE,''Or.Durum:''+ps.DURUM+'' - ''+ILAC_ADI +''''+ CONVERT(VARCHAR, ILAC_MIKTARI) +'' -Adet'' as ilacBilgisi ,'+
                                            '+''Order Sıra:''+CONVERT(VARCHAR,ORDER_DETAY_ID) + ''- Koltuk Adı:''+SEAT_NAME as KoltukBilgileri  from '+
                                            'RECEIVED_ORDER , PATIENT_STATUS as ps WHERE (PATIENT_DURUM =1 OR PATIENT_DURUM=9 OR PATIENT_DURUM=2) AND ORDER_DURUM= 6 AND HASTA_GELDIMI=1 AND PATIENT_DURUM = ps.ID AND USER_CODE=''%s''',[frm_Login.per_usercode]);
                  gorev.Execute;
Kodunuzu okunabilir bir formata sokun lütfen. Ayrıca, bir hata mesajı alıyor iseniz bunu da paylaşın ki; daha kolay öneri sunulabilsin.
Ekte düzenli bir şekilde paylaştım. Fakat herhangi bir hata kodu almıyorum.
(20-11-2019, Saat: 14:54)coderlego Adlı Kullanıcıdan Alıntı: [ -> ]Ekte düzenli bir şekilde paylaştım. Fakat herhangi bir hata kodu almıyorum.

Merhaba,
Kodu, fiziksel bir cihaz üzerinde debug ederseniz, hatayı göreceğinize eminim.
islem ve kontrol isimli dataset'leri kapatıyor, açıyorsunuz; ardından da Sql.Text'ine değer atıyorsunuz. Normalde bu noktada hata alabilirsiniz. Ayrıca; bir dataset'te resultset görmek istiyorsanız Open kullanmalısınız, ExecSQL değil.

Kısaca, Close kodunuzdan sonraki Open'ı kaldırın; sql text'ine atama yapın ardından ExecSQL yerine de Open yazın ve durumu tekrar test edin.
(20-11-2019, Saat: 14:59)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: [ -> ]
(20-11-2019, Saat: 14:54)coderlego Adlı Kullanıcıdan Alıntı: [ -> ]Ekte düzenli bir şekilde paylaştım. Fakat herhangi bir hata kodu almıyorum.

Merhaba,
Kodu, fiziksel bir cihaz üzerinde debug ederseniz, hatayı göreceğinize eminim.

Android cihaz üzerinde testlerini yapıyorum. Direk uygulamayı atıyor, bir hata kodu vermiyor.

(20-11-2019, Saat: 15:00)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: [ -> ]islem ve kontrol isimli dataset'leri kapatıyor, açıyorsunuz; ardından da Sql.Text'ine değer atıyorsunuz. Normalde bu noktada hata alabilirsiniz. Ayrıca; bir dataset'te resultset görmek istiyorsanız Open kullanmalısınız, ExecSQL değil.

Kısaca, Close kodunuzdan sonraki Open'ı kaldırın; sql text'ine atama yapın ardından ExecSQL yerine de Open yazın ve durumu tekrar test edin.

bahsetiklerinizi yaptım fakat yine aynı hatayı veriyor. ben while not döngüsünden sorun yarattığını düşünüyorum. onun yerine kullanabileceğim farklı bir yöntem olabilir mi ?
Bence SQL sorgularınızda problem var. Tools-SQL profiler ile gönderdiğiniz SQL i kontrol edebilirsiniz
Düzelttim demişsiniz ama onuda görmek gerekir.
Update kısmında execsql, select kısmında open kullanmalısınız, bir yerlerde bunları yanlış kullanıyorsunuzdur.
Dikkat: MessageDlg Android'de asenkron çalışır.

Hangi versiyonu kullanıyorsunuz bilmiyorum ama Rio'da MessageDlg kullanımdan kaldırıldı(Daha doğrusu kullanılmaması tavsiye edildi)
http://docwiki.embarcadero.com/Libraries...MessageDlg

Onun yerine MessageDialogAsync kullanmalısınız.