![]() |
|
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;
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ı - Fesih ARSLAN - 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, 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. |