Delphi Can
Read-Only Hatası - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Mobil Platform - FireMonkey (FMX) (https://www.delphican.com/forumdisplay.php?fid=7)
+--- Konu Başlığı: Read-Only Hatası (/showthread.php?tid=3726)



Read-Only Hatası - arsl01 - 14-06-2019

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


Read-Only Hatası - edo - 14-06-2019

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?


Cvp: Read-Only Hatası - TescilsizUzman - 14-06-2019

Merhaba,
Qry_SiraAl query'nin ReadOnly özelliğine baktınız mı? İşlem yapabilmeniz için bu özelliğin False olması gerekiyor.


Read-Only Hatası - arsl01 - 14-06-2019

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ı: 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


Read-Only Hatası - r3n4m3 - 14-06-2019

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


Read-Only Hatası - arsl01 - 14-06-2019

hocam sadece bir tane Qry alip bir sorgu yaptim ve sonuc yine ayni


Read-Only Hatası - klavye - 14-06-2019

Query bileseni yerine table bileseni ile kayit islemini yapsanız işinizi görmez mi?


Read-Only Hatası - arsl01 - 14-06-2019

Oda ayni sekilde hata verdi

merhaba sorunu su sekilde cozdum unidac yerine sdac yukledim ve sorun duzeldi
https://www.devart.com/sdac/?gclid=Cj0KCQjwi43oBRDBARIsAExSRQEN-wbLXu6zggi2cGAkA_3UVDX001d5FZS7nAzjX2NItC-WC1sRGxYaAidSEALw_wcB


Read-Only Hatası - sabanakman - 15-06-2019

Bu gibi çoklu platform uygulamalarında veri tabanı işlemlerini direkt yapmak yerine (datasnap gibi) bir ara katman üzerinden yapmakta fayda var.