Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Read-Only Hatası
#1
Merhaba, 
Ben multi-platform tarafinda sql server'a veri kaydetmeye calisiyorum,
Sorun windowsta derledigimde gayet duzgun calisiyor hat vermeden fakat androidde derledigimde read-only hatasi aliyorum.
isin ilginc tarafi veri okurken hicbir sikinti yok sadece veri kaydederken bu hatayi aliyorum.
procedure TForm1.btn_onaylaClick(Sender: TObject);
Var
 i:integer;
begin

if Edit1.Text='1578' then
begin
 ayarlartab_slide.ExecuteTarget(self);
 edit1.Text:='';
 exit;
end;
  if length(edit1.Text)<>11 then
  Begin
    ShowMessage('Hatalı Tc No');
    edit1.Text:='';
    Exit;
  End;
  Qry_Hasta.Close;
  Qry_Hasta.SQL.Text:='SELECT * FROM HASTA where TC_KIMLIK_NUMARASI='+QuotedStr(Edit1.Text);
  Qry_Hasta.Open;
  if Qry_Hasta.RecordCount=0 then
  Begin
  ShowMessage('Aranılan Kayıt Bulunamadı');
  Edit1.Text:='';
  Edit1.SetFocus;
 Exit;
  End;
  Qry_SiraAl.Close;
  Qry_SiraAl.SQL.Text:='SELECT * FROM HASTA_SIRA WHERE KABUL_TARIHI='+TarihDuzenlesql(date,'')+' AND HASTA_KODU='+Qry_Hasta.FieldByName('HASTA_KODU').AsString;
  Qry_SiraAl.Open;
  if Qry_SiraAl.RecordCount>0 then
  Begin
  Qry_sirakntrl.Close;
  Qry_sirakntrl.ParamByName('TC_KIMLIK_NUMARASI').Value:=edit1.Text;
  Qry_sirakntrl.Open;
  if Qry_sirakntrl.RecordCount<>0 then
  begin
  label2.Text:='MEVCUT SIRANIZ';
  siranotab_slide.ExecuteTarget(self);
  label2.Text:=Qry_sirakntrl.FieldByName('NUMARATOR_SIRASI').AsString;
  end;
    //ShowMessage('Kişi Daha Önce Sıra Almış Tekrar Alamaz...');
    edit1.Text:='';
    Exit; End;
 Qry_Sorgu.Close;
 Qry_Sorgu.SQL.Text:='SELECT MAX (NUMARATOR_SIRASI) AS SIRA FROM HASTA_SIRA WHERE KABUL_TARIHI='+TarihDuzenlesql(date,'')+' AND AH_KIMLIK_NO='+QuotedStr(initc);     //KAC KAYIT VAR SORGULU
 Qry_Sorgu.Open;
 i:=Qry_Sorgu.FieldByName('SIRA').AsInteger+1;
 Qry_SiraAl.Append;
 Qry_SiraAl.FieldByName('HASTA_KODU').Value:=Qry_Hasta.FieldByName('HASTA_KODU').AsString ;
 Qry_SiraAl.FieldByName('TC_KIMLIK_NUMARASI').Value:=Qry_Hasta.FieldByName('TC_KIMLIK_NUMARASI').AsString;
 Qry_SiraAl.FieldByName('AD').Value:=Qry_Hasta.FieldByName('AD').AsString ;
 Qry_SiraAl.FieldByName('SOYADI').Value:=Qry_Hasta.FieldByName('SOYADI').AsString ;
 Qry_SiraAl.FieldByName('AH_KIMLIK_NO').Value:=initc;
 Qry_SiraAl.FieldByName('NUMARATOR_SIRASI').AsInteger:=i;
 Qry_SiraAl.FieldByName('KABUL_TARIHI').AsDateTime:=DATE;
 Qry_SiraAl.FieldByName('KABUL_ZAMANI').AsDateTime:=NOW;
 Qry_SiraAl.Post;
 label2.Text:=i.ToString;
 siranotab_slide.ExecuteTarget(self);
 edit1.Text:='';
end;
Z5WOZZ.png
Muharrem ARSLAN
Cevapla
#2
Hatayı debug ettiniz mi? Hangi satırda hata alıyorsunuz tam olarak? Aldığınız hata mesajının tam içeriği/görüntüsü nedir?
Cevapla
#3
Merhaba,
Qry_SiraAl query'nin ReadOnly özelliğine baktınız mı? İşlem yapabilmeniz için bu özelliğin False olması gerekiyor.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#4
debug derken hocam anlamadim.
hatayi program calisirken aliyorum derlerken almiyorum aldigim hatanin tam icerigini paylastim resim olarak

(14-06-2019, Saat: 10:25)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhaba,
Qry_SiraAl query'nin ReadOnly özelliğine baktınız mı? İşlem yapabilmeniz için bu özelliğin False olması gerekiyor.

evet hocam bunu denemistim daha once ama sonuc yine ayni
Muharrem ARSLAN
Cevapla
#5
Merhaba

Unidac kullanıyorsun tahmin ediyorum. Şimdi sıkıntı şöyle olabiliyor bazen şimdi se üst kodunda

Qry_SiraAl.Close;
Qry_SiraAl.SQL.Text:='SELECT * FROM HASTA_SIRA WHERE KABUL_TARIHI='+TarihDuzenlesql(date,'')+' AND HASTA_KODU='+Qry_Hasta.FieldByName('HASTA_KODU').AsString;
Qry_SiraAl.Open;

yapmışın. Fakat default olarak select * from hasta_sira daha önce yapmışsın. Dolaysıyla üsteki kod yapınca eski sorgu kayboluyor ve query artık bu sorgu üzerinde işlem yapmaya çalışıyor ve patlayabiliyor.

Biraz dandik olabilir ama örnek olarak böyle de çözebilirsin.
Bir tane daha Qry_SıraAlKayit gibi bir query koy ve aynı sekilde Qry_SıraAl gibi ayarla.

Sonra aşağıdaki insert kodunda

Qry_SiraAl.Append;
Qry_SiraAl.FieldByName('HASTA_KODU').Value:=Qry_Hasta.FieldByName('HASTA_KODU').AsString ;
Qry_SiraAl.FieldByName('TC_KIMLIK_NUMARASI').Value:=Qry_Hasta.FieldByName('TC_KIMLIK_NUMARASI').AsString;
Qry_SiraAl.FieldByName('AD').Value:=Qry_Hasta.FieldByName('AD').AsString ;
Qry_SiraAl.FieldByName('SOYADI').Value:=Qry_Hasta.FieldByName('SOYADI').AsString ;
Qry_SiraAl.FieldByName('AH_KIMLIK_NO').Value:=initc;
Qry_SiraAl.FieldByName('NUMARATOR_SIRASI').AsInteger:=i;
Qry_SiraAl.FieldByName('KABUL_TARIHI').AsDateTime:=DATE;
Qry_SiraAl.FieldByName('KABUL_ZAMANI').AsDateTime:=NOW;
Qry_SiraAl.Post;

Qry_SıraAl yerine Qry_SıraAlKayit kullanabilirsin ve bir yerde çakmasın. tabiki bu inserten once queryiyi close - open yap da hazır olsun.

Kolay gelsin
Web Site : Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Facebook Page : Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#6
hocam sadece bir tane Qry alip bir sorgu yaptim ve sonuc yine ayni
Muharrem ARSLAN
Cevapla
#7
Query bileseni yerine table bileseni ile kayit islemini yapsanız işinizi görmez mi?
Cevapla
#8
Oda ayni sekilde hata verdi

merhaba sorunu su sekilde cozdum unidac yerine sdac yukledim ve sorun duzeldi
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Muharrem ARSLAN
Cevapla
#9
Bu gibi çoklu platform uygulamalarında veri tabanı işlemlerini direkt yapmak yerine (datasnap gibi) bir ara katman üzerinden yapmakta fayda var.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Play Store ' a uygulama atarken 64 bit hatası crowlin 15 644 29-05-2019, Saat: 11:50
Son Yorum: crowlin
  Delphi 10.3 FMX Android Sdk Dosya Yolu Belirtme Hatası xenginyigit 3 214 19-05-2019, Saat: 05:20
Son Yorum: xenginyigit
  mysql bağlantı hatası xenginyigit 11 432 11-05-2019, Saat: 15:05
Son Yorum: crowlin
  Filter Argument out of range hatası ahmetb 2 180 08-05-2019, Saat: 16:12
Son Yorum: ahmetb
  Android derleme hatası Fahrettin 3 308 01-04-2019, Saat: 18:12
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi