Record not found or changed by another user
Record not found or changed by another user
Record not found or changed by another user
MySql 3.23.42 kullanıyorum.
Delphi6.0 kullanıyorum. dbexpress ile bu işlemi yapmaya kalktım. Tabiki Delphi 6.0 güncellemesi yüklü.
Bu sorunla daha önce karşılaşanlar olmuş çeşitli cevaplar var ama ben sorunu çözemedim. Hala devam ediyor.
Yapmak istediğim olay şu idi.
Sicil ve hareket table ı var.
Sicil tableından seçilen kayıt numarasına göre hareket tableındaki sahalar edit modunda açılarak update edilecek.
Fakat benim kullandığım TSQLClientdataset ve TClientdataset buna izin vermedi.
Cursor döndürmüyormuş delphi öyle diyor.
Çok basit yöntemle hareket tableında uyan kayıtları geçici dosyaya yazdırdım. Buradan sırasıyla okutup hareket tableına locate ile konumlanıp edit yaptım. Yukarıdaki hatayı aldım.
Mantık hatasımı var acaba.
Hareket tableından bir sorgu ile bazı kayıtları elde ediyorum.
while not sorgu.eof do
begin
...
sorgu.next;
end;
yapıyorum.
begin end arasına sorguda kullandığım hareket tableını edit post ve applyupdates yapıyorum. Bu hatalarla karşılaşıyorum.
İyi bir fikri ya da çözümü olan lütfen yazsın.Teşekkürler
MySql 3.23.42 kullanıyorum.
Delphi6.0 kullanıyorum. dbexpress ile bu işlemi yapmaya kalktım. Tabiki Delphi 6.0 güncellemesi yüklü.
Bu sorunla daha önce karşılaşanlar olmuş çeşitli cevaplar var ama ben sorunu çözemedim. Hala devam ediyor.
Yapmak istediğim olay şu idi.
Sicil ve hareket table ı var.
Sicil tableından seçilen kayıt numarasına göre hareket tableındaki sahalar edit modunda açılarak update edilecek.
Fakat benim kullandığım TSQLClientdataset ve TClientdataset buna izin vermedi.
Cursor döndürmüyormuş delphi öyle diyor.
Çok basit yöntemle hareket tableında uyan kayıtları geçici dosyaya yazdırdım. Buradan sırasıyla okutup hareket tableına locate ile konumlanıp edit yaptım. Yukarıdaki hatayı aldım.
Mantık hatasımı var acaba.
Hareket tableından bir sorgu ile bazı kayıtları elde ediyorum.
while not sorgu.eof do
begin
...
sorgu.next;
end;
yapıyorum.
begin end arasına sorguda kullandığım hareket tableını edit post ve applyupdates yapıyorum. Bu hatalarla karşılaşıyorum.
İyi bir fikri ya da çözümü olan lütfen yazsın.Teşekkürler
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Merhaba
Döngüde komutlar bir kayıttaki record numarasını bulamamaktadır. Eğer döngü içindeki komutlarda filtreleme veya başka table sorgulama işlemin varsa mesela table1 deki 15 numaralı kayıtı table2 de sorgulatabilirsin ki table birde bu record yani sayısal numara olmadığında bu gibi hataları alabilirsin.
Saygılar,
Döngüde komutlar bir kayıttaki record numarasını bulamamaktadır. Eğer döngü içindeki komutlarda filtreleme veya başka table sorgulama işlemin varsa mesela table1 deki 15 numaralı kayıtı table2 de sorgulatabilirsin ki table birde bu record yani sayısal numara olmadığında bu gibi hataları alabilirsin.
Saygılar,
teşekkürler fakat sorun devam ediyor
Herkese teşekkürederim. Fakat sorun devam ediyor.
Aynı işlemi bde ile oracle da yaptığımda hiç sorun yaşamadım.
Delphi4 kullanıyordum. Oracle 8.1.5 de böyle bir problem yaşamadım.
Problemin aslı şu :
Bir table dan sorgu ile bazı sahaları seçiyorum. Ve bu sahaları table da edit ediyorum. Bu hata veriyor.
Aynı işlemi sql komutuyla update ederken de hata veriyor.
Burada döngüde olan sql farklı diğer yazdığım sql komutu farklı.
Bilmem anlatabildim mi? Acil bu sorunu çözmem lazım. Teşekkürler...
Aynı işlemi bde ile oracle da yaptığımda hiç sorun yaşamadım.
Delphi4 kullanıyordum. Oracle 8.1.5 de böyle bir problem yaşamadım.
Problemin aslı şu :
Bir table dan sorgu ile bazı sahaları seçiyorum. Ve bu sahaları table da edit ediyorum. Bu hata veriyor.
Aynı işlemi sql komutuyla update ederken de hata veriyor.
Burada döngüde olan sql farklı diğer yazdığım sql komutu farklı.
Bilmem anlatabildim mi? Acil bu sorunu çözmem lazım. Teşekkürler...
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Değerli kardeşlerim,
Kullandıklarımı yazayım ve nasıl bir kod oluşturdum onu da yazayım.
mysql 3.23.42 ve Delphi 6.0 ve dbexpress kullanıyorum.Delphi 6.0 ım update li.
TSQLConnection, TSQLDataset, TDataSetProvider ve
TClientDataset,TSQLClientdataset kullanıyorum bileşen olarak.
Yapılacak işlem şu.
1.sql
select * from tahakkuk
where (sicilno=:sicilno) and (kalantutar>0)
kod ise şöyle
while not sql1.eof do
begin
tahakkuk.edit;
tahakkukbakiye.value:=bakiye;
tahakkuk.post;
tahakkuk.applyupdates(-1);
sql1.next;
end;
gelen hata cursor not returned gibi birşeydi.
Diğer işlemlerde de başlıkta yazdığım hatayı alıyorum.
Bütün forumlara ve mysql sitesine baktım. Diyorlarki
primary key tanımla autoinc olsun.
2 den fazla numerik saha kullanma
date tipi fieldlar için timestamp kullan.
Bunları diğer arkadaşlarımız da sağolsunlar yazmışlar ama bu çözüm olmuyor.
Delphinin helpinde de tSqlclient ın cursor döndürmeyeceği yazıyor.
Bu işin başka bir çözüm yolu olmalı.
Sağolun...
Kullandıklarımı yazayım ve nasıl bir kod oluşturdum onu da yazayım.
mysql 3.23.42 ve Delphi 6.0 ve dbexpress kullanıyorum.Delphi 6.0 ım update li.
TSQLConnection, TSQLDataset, TDataSetProvider ve
TClientDataset,TSQLClientdataset kullanıyorum bileşen olarak.
Yapılacak işlem şu.
1.sql
select * from tahakkuk
where (sicilno=:sicilno) and (kalantutar>0)
kod ise şöyle
while not sql1.eof do
begin
tahakkuk.edit;
tahakkukbakiye.value:=bakiye;
tahakkuk.post;
tahakkuk.applyupdates(-1);
sql1.next;
end;
gelen hata cursor not returned gibi birşeydi.
Diğer işlemlerde de başlıkta yazdığım hatayı alıyorum.
Bütün forumlara ve mysql sitesine baktım. Diyorlarki
primary key tanımla autoinc olsun.
2 den fazla numerik saha kullanma
date tipi fieldlar için timestamp kullan.
Bunları diğer arkadaşlarımız da sağolsunlar yazmışlar ama bu çözüm olmuyor.
Delphinin helpinde de tSqlclient ın cursor döndürmeyeceği yazıyor.
Bu işin başka bir çözüm yolu olmalı.
Sağolun...
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
yazmayı unutmuşum kodda var
first yapıyor.
ondan olduğunu sanmıyorum.
Hatta şöyle uzun ve garantili bir yöntem uyguladım.
Queryden aldığım sonuçları geçiçi bir table a yazdırdım.
Bu table ı döngüye aldım.
Döngünü arasında tahakkuk table nı edit post ve applyupdates yaptım. ama işte bu hatayı verdi.
Bir anlam veremedim.
İşin içinde çıkamadım bir türlü
Hocam eğer msn kullanıyorsanız mailinizi verin de ekleyeyim. Forumda konuşup boş yere forum sayfalarını işgal etmeyelim.
Eğer sorunu çözersek burada yayınlarız.
Ama bana MySQL ile ilgili bir sorun gibi geliyor. Çünkü aynı sorun bir çok kullanıcının başına gelmiş
first yapıyor.
ondan olduğunu sanmıyorum.
Hatta şöyle uzun ve garantili bir yöntem uyguladım.
Queryden aldığım sonuçları geçiçi bir table a yazdırdım.
Bu table ı döngüye aldım.
Döngünü arasında tahakkuk table nı edit post ve applyupdates yaptım. ama işte bu hatayı verdi.
Bir anlam veremedim.
İşin içinde çıkamadım bir türlü
Hocam eğer msn kullanıyorsanız mailinizi verin de ekleyeyim. Forumda konuşup boş yere forum sayfalarını işgal etmeyelim.
Eğer sorunu çözersek burada yayınlarız.
Ama bana MySQL ile ilgili bir sorun gibi geliyor. Çünkü aynı sorun bir çok kullanıcının başına gelmiş
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Merhaba
Msn daveti alırsınız kaydettim ama sorunu aslında adım adım burda tartışılması bilgi adına daha faydalı olduğunu düşünüyorum....
SQL1 Componentinde birde bu şekilde deneyebilirmisiniz.... Eğer if kontrolünde sorun çakırmaz ise SQL1 e bir dbgrid bağlayıp döngüde her seferini bir inceleyebilirmisiniz....
Saygılarımla, Başarılar ....
Msn daveti alırsınız kaydettim ama sorunu aslında adım adım burda tartışılması bilgi adına daha faydalı olduğunu düşünüyorum....
Kod: Tümünü seç
SQL1.First;
while not sql1.eof do
begin
ShowMessage('');
if SQL1Sicilno.Text<>'' then
begin
tahakkuk.edit;
tahakkukbakiye.value:=bakiye;
tahakkuk.post;
tahakkuk.applyupdates(-1);
sql1.next;
end;
end;
Saygılarımla, Başarılar ....
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Merhaba
Query ile sorgulamanızı yaptınız diyelim. Mesela 1 den 1000 e kadar olan kayıtlarda 50 den büyük olan ve 500 den küçük olan kayıtları sorgu ile seçtikten sonra, tekrar sadece bu seçilenlere filter metodu uygularsanız, 50 den büyük ve 500 den küçükler arasındakilere sonuç alabilirsiniz. Bu da dikkatinizden kaçmasın....
Saygılar,
Query ile sorgulamanızı yaptınız diyelim. Mesela 1 den 1000 e kadar olan kayıtlarda 50 den büyük olan ve 500 den küçük olan kayıtları sorgu ile seçtikten sonra, tekrar sadece bu seçilenlere filter metodu uygularsanız, 50 den büyük ve 500 den küçükler arasındakilere sonuç alabilirsiniz. Bu da dikkatinizden kaçmasın....

Saygılar,
-
- Kıdemli Üye
- Mesajlar: 395
- Kayıt: 22 Tem 2004 09:15
- Konum: İzmir
- İletişim:
Selam,
Tabloya tahakkuk bakiyeden erişiyor o nedenle siz onu değiştirince aklı karışıyor muhtemelen. Oracle da tabloda bir primatu key yoksa bu cursor, rownum u kullanıyor yanlış hatırlamıyorsam o nedenle orada hata almıyor olabilirsiniz. Tabloya başka bir uniq alan ekleyiniz...
Tabloya tahakkuk bakiyeden erişiyor o nedenle siz onu değiştirince aklı karışıyor muhtemelen. Oracle da tabloda bir primatu key yoksa bu cursor, rownum u kullanıyor yanlış hatırlamıyorsam o nedenle orada hata almıyor olabilirsiniz. Tabloya başka bir uniq alan ekleyiniz...
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
table laerı kapalı tutup formların activate lerine açma komutu verirsen sorunun hallolacağını düşünüyorum çünkü refresh edilidğinde bu problem çoğu kez düzeliyor sonunda ben böyle yaptım artık o sorunla karşılaşmıyorum
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
Sorun halledildi
Herkesin ilgisi ve yardım etme isteği için çok teşekkür ederim. allah hepinizden razı olsun. Sorun çözüldü.
Mysql in kendi sitesinde de bu forumda da belirtildiği gibi table açarken otomatik bir primary key oluşturuyor. Bu primary key aynı zamanda otomatik artan olan bir saha. Böylece yapıldığında sorun kendiliğinden çözülüyor. Başka bir arkadaşımız aynı sorunu MSSQL de yaşamış ben bu sorunu yaşayınca hemen forumu araştırdım. Bunu denedim fakat hatalı uygulamamdan dolayı sorunu o gün çözememiştim. Mysql sitesine baktığımda orada da üç yöntemden bahsediliyordu. Birinci sırada bu yöntem vardı.
Bu forumu hazırlayanlardan,katılanlardan,bu işe gönül veren ve emek harcayan herkesten Allah razı olsun.
Teşekkürler, iyi çalışmalar...
Mysql in kendi sitesinde de bu forumda da belirtildiği gibi table açarken otomatik bir primary key oluşturuyor. Bu primary key aynı zamanda otomatik artan olan bir saha. Böylece yapıldığında sorun kendiliğinden çözülüyor. Başka bir arkadaşımız aynı sorunu MSSQL de yaşamış ben bu sorunu yaşayınca hemen forumu araştırdım. Bunu denedim fakat hatalı uygulamamdan dolayı sorunu o gün çözememiştim. Mysql sitesine baktığımda orada da üç yöntemden bahsediliyordu. Birinci sırada bu yöntem vardı.
Bu forumu hazırlayanlardan,katılanlardan,bu işe gönül veren ve emek harcayan herkesten Allah razı olsun.
Teşekkürler, iyi çalışmalar...