merhaba Arkadaşlar ; Yaptığım Programda 1 ana tabloya bağlı yaklaşık 20 tablo var şu ana kadar her şey güzel gidiyordu. Kullandığım FireDac -TFDTable. Fakat son bir haftadır ana tabloyu edit leyip veri değiştirip post ettiğimde "firedac [firedac][dapt]-400. update command updated [0] instead of [1] record" -"SQL_NO_DATA" hatası alıyor değişiklikleri de kaydetmiyor. sorunun gittikçe farklı alanlarda da baş gösteriyor veri tabanının içerisinde (Sql Server) tabloda bir kaç alanı hesaplanabilir yaptım son bir gündür o alada da hata veriyor. Sorun nedir anlamadım.
Yardımınız için şimdiden teşekkür ederim.
Firedac TFDTable ile sql_no_data hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: Firedac TFDTable ile sql_no_data hatası
Merhaba,
Çok az bilgi vermişsiniz. Detayları da paylaşabilir misiniz?
Çok az bilgi vermişsiniz. Detayları da paylaşabilir misiniz?
Diğer 20 tablo aynı form üzerinde ana tabloya master-detail ilişki ile bağlı mı?
Şahsen FDQuery kullanmanızı tavsiye ederim. Sadece gerekli kayıtları ekranda gösterin. FDTable tüm tablo kayıtlarını gösterir. İlerleyen zamanda performans açısından kötü etkilenirsiniz.
Ana tablo dediğiniz tablonun yapısını indeks detayı ile bilmeden ve hangi kolonda ne değişiklik (eski veri, yeni veri) yaptığınızı bilmeden bu konuda birşey söylemenin çok doğru olmayacağını düşünüyorum. Bahsettiğiniz hata normalde kayıt silme zamanında karşılaşılan bir hatadır. Zaten daha önce silinmiş bir kaydı yeniden silmeye çalıştığınızda oluşur. Detay bilgiler olmadan, tamamen tahmine dayalı olarak: Diğer 20 tablo master-detail ilişkide ve değişiklik sebebiyle olaylara bağlı şekilde bir silme işlemi tetikleniyor olabilir mi?mkucuktepe yazdı: 21 Mar 2024 10:48 Fakat son bir haftadır ana tabloyu edit leyip veri değiştirip post ettiğimde "firedac [firedac][dapt]-400. update command updated [0] instead of [1] record" -"SQL_NO_DATA" hatası alıyor
Öncelikle ne hata alıyorsunuz? Farklı bir hata olduğunu düşünüyorum. Eğer uygulama içinde FDQuery içinde calculated field kullanıldı ise OnCalculate olayındaki kodlarınızı görmeden, eğer veritabanı seviyesinde tablo içinde hesaplanan kolon kulandı iseniz tablo yapısını bilmeden birşey söylemek zor.mkucuktepe yazdı: 21 Mar 2024 10:48 sorunun gittikçe farklı alanlarda da baş gösteriyor veri tabanının içerisinde (Sql Server) tabloda bir kaç alanı hesaplanabilir yaptım son bir gündür o alada da hata veriyor.
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: Firedac TFDTable ile sql_no_data hatası
Evet Master-detail ilişki ile bağladım.Diğer 20 tablo aynı form üzerinde ana tabloya master-detail ilişki ile bağlı mı?
Malesef yaklaşık kırk tabloyu FDQuery ile değiştireceğim gibiŞahsen FDQuery kullanmanızı tavsiye ederim. Sadece gerekli kayıtları ekranda gösterin. FDTable tüm tablo kayıtlarını gösterir. İlerleyen zamanda performans açısından kötü etkilenirsiniz.
Ana tablomda otomatik artan inx_no değişkenim var. zaman zaman bir kayıtta değişiklik yapılması gerekiyor "Bekar/Evli-Çocuksuz/Çocuklu" gibi ben bu değişikliği yapmaya çalıştığım zaman "Project suru_server.exe raised exception class EMSSQLNativeException with message '[FireDAC][Phys][ODBC][msodbcsql17.dll] SQL_NO_DATA'." hatası alıyorum ve şu ana kadar silme işlemleri yapmadım hiç bir tabloda.Ana tablo dediğiniz tablonun yapısını indeks detayı ile bilmeden ve hangi kolonda ne değişiklik (eski veri, yeni veri) yaptığınızı bilmeden bu konuda birşey söylemenin çok doğru olmayacağını düşünüyorum. Bahsettiğiniz hata normalde kayıt silme zamanında karşılaşılan bir hatadır. Zaten daha önce silinmiş bir kaydı yeniden silmeye çalıştığınızda oluşur. Detay bilgiler olmadan, tamamen tahmine dayalı olarak: Diğer 20 tablo master-detail ilişkide ve değişiklik sebebiyle olaylara bağlı şekilde bir silme işlemi tetikleniyor olabilir mi?
Calculated alan sql server tarafında kullanıyorum, program tarafında değil programda calculated alan kullanmıyorumÖncelikle ne hata alıyorsunuz? Farklı bir hata olduğunu düşünüyorum. Eğer uygulama içinde FDQuery içinde calculated field kullanıldı ise OnCalculate olayındaki kodlarınızı görmeden, eğer veritabanı seviyesinde tablo içinde hesaplanan kolon kulandı iseniz tablo yapısını bilmeden birşey söylemek zor.
Re: Firedac TFDTable ile sql_no_data hatası
Transaction kontrolü yaptın mı? master kaydetmeden detail i kaydetmeye çalışmak gibi, firedac seçeneklerinde yanılmıyorsam Autocommit diye seçenek vardı. inx_no dediğinde muhtemelen prkey olarak kullanıyorsun, bunu guid de yapabilirdin.
debug edebiliyorsan, nerede hata aldığını yani hangi tabloda hata verdiğini bul, sonrada beforepost eventinde field değerlerini kontrol et.
debug edebiliyorsan, nerede hata aldığını yani hangi tabloda hata verdiğini bul, sonrada beforepost eventinde field değerlerini kontrol et.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: Firedac TFDTable ile sql_no_data hatası
Hata incelendiğinde zaten silinmiş bir veri ile işlem yapılması olarak gözüküyor.mkucuktepe yazdı: 22 Mar 2024 03:16 Ana tablomda otomatik artan inx_no değişkenim var. zaman zaman bir kayıtta değişiklik yapılması gerekiyor "Bekar/Evli-Çocuksuz/Çocuklu" gibi ben bu değişikliği yapmaya çalıştığım zaman "Project suru_server.exe raised exception class EMSSQLNativeException with message '[FireDAC][Phys][ODBC][msodbcsql17.dll] SQL_NO_DATA'." hatası alıyorum ve şu ana kadar silme işlemleri yapmadım hiç bir tabloda.
Bu durum en azından aşağıdaki şekillerde oluşabilir.
- CachedUpdates kullanımında silinmiş kayıt üzerinde işlem yapma ile
- CachedUpdated kullanılmasa dahi A kullanıcısı kayıt siler, B kullanıcısı değişiklik yapmaya çalışırsa.
- İlgili tablodaki trigger içinde yapılan bir işlem dolayısıyla
Aklıma gelmeyen başka sebepler de olabilir. Bazı kişiler hiç değişiklik yapmayıp eski kaydı silip yenisini ekleme kaydetme yolunu seçiyorlar. Bu gibi kullanım şekilleri de bir noktada soruna yol açabilir.
Hata tekrar edilebiliyor ise, DEBUG profili seçili iken F9 ile projenizi çalıştırıp hata oluşmasını sağlayın. Delphi hata oluştuğunda sizi durdurur. "Break" butonunu tıklayıp ekranda Stack Trace penceresini inceleyin. Hata oluşmadan önce çalışan prosedür ve fonksiyonlar listelenir o pencerede. Sorunu tetikleyen bir olay bulabilirsiniz belki.
Diğer bir tavsiye de FireDAC loglamasını kullanın. Böylece sizin unuttuğunuz bir silme tetikleniyor ise hata oluşmadan önce loglara silme SQL komutu yazılı olacaktır.
-
- Üye
- Mesajlar: 13
- Kayıt: 30 Oca 2021 10:55
Re: Firedac TFDTable ile sql_no_data hatası
Teşekkür ediyorum çok saolun