Query ve UpdateSQL

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Query'nin CachedUpdates'i True' mu? Eğer True ise

Kod: Tümünü seç

database1.StartTransaction 
query1.SQL.Clear; 
query1.SQL.Add('select * from table_name'); 
query1.open; 
.... 
query1.insert; 
...dbedit.... 
query1.post; 

Query1.ApplyUpdates ;
Query1.CommitUpdates ;

database1.commit;
demen lazım. (Soruyu yanlış anlamadıysam)

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
hatice_sevim
Üye
Mesajlar: 50
Kayıt: 17 Haz 2003 09:00
Konum: İstanbul

Mesaj gönderen hatice_sevim »

Kod: Tümünü seç

Query1.CachedUpdates := True;
...yapmış iken...
Query1.ApplyUpdates ; 
Query1.CommitUpdates ; 
Satırlarını eklediğim zaman; program bu satıra gelince

Kod: Tümünü seç

No SQL Statement Available
mesajı ile çalışmayı kesiyor yani olmuyor Arkadaşlar....
Hatice SEVİM / BEDAŞ
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Hehehehee,

E tabi yapmaz, muhtemelen sen TUpdateSQL'in Insert, Update ve Delete SQL'lerini yazmamışsın :)

Query'ne herhangi bir UpdateSQL nesnesi bağlı mı? Bunnu kontrol et, bağlı ise, içlerindeki INSERT, UPDATE ve DELETE SQL'lerini kontrol et. Onlar boştur bu sebeple hatayı verir.


Kolay Gelsin.

Not : Bu cevaptan sonra gelecek soru şu olabilir. "Peki UpdateSQL'leri nasıl dolduracağım, ne yazmam gerk?" hehehehe :) :) :)
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
hatice_sevim
Üye
Mesajlar: 50
Kayıt: 17 Haz 2003 09:00
Konum: İstanbul

Mesaj gönderen hatice_sevim »

Hehehehe ;
Aynen öyle Adnan Abi; Ben onlara bir şey yazmadım. Daha doğrusu birkaç yerde bir query' ye bir UpdateSQL falan Ekleyince bunların yazıldığında query üzerinden bunların yapıldığı şeklide ifadeler vardı, onları denemeye çalışıyorum.
Tamam ben sorumdan vaz geçtim. Bir Query ile kayıt insert edebilmem için neler yapmam gerekiyor????
Çok Teşekkürler...
Hatice SEVİM / BEDAŞ
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selam Hatice,

Kod: Tümünü seç

  
  UpdateSQL1.ModifySQL := 'UPDATE TABLO SET KOD = :KOD, SAYI1    = :SAYI1, SAYI2 = :SAYI2 WHERE KOD = :OLD_KOD' ;

  UpdateSQL1.InsertSQL := 'INSERT INTO TABLO (KOD, SAYI1, SAYI2) VALUES (:KOD, :SAYI1, :SAYI2)' ;
  UpdateSQL1.DeleteSQL := 'DELETE FROM TABLO WHERE KOD = :OLD_KOD' ;
  Query1.Close ;
  Query1.SQL.Text := 'SELECT KOD, SAYI1, SAYI2 FROM TABLO' ;
  Query1.UpdateObject := UpdateSQL1 ;

işte atamanı yukarıdaki gibi Code üzerinde yapabileceğin gibi, design time'da Query'nin UpdateObject property'sine UpdateSQL nesnesini gösterirsin, sonra UpdateSQL nesnesi üzerinde dblclick yaparsın çıkan pencereden Key Field'ını belirlersin ve GENERATE SQL butonunu tıklarsın, Delphi senin adına SQL'leri Create eder.

Kolay Gelsin.

Not : Source örneği verdiğim code'da Primary Key KOD alanıdır.
[/code]
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
hatice_sevim
Üye
Mesajlar: 50
Kayıt: 17 Haz 2003 09:00
Konum: İstanbul

Mesaj gönderen hatice_sevim »

A.S Adnan Abi; Çok teşekkürler;

Dediğin şekilde çalıştırmak için ben yeniden uğraşayım o zaman.

Size iyi Çalışmalar...
Hatice SEVİM / BEDAŞ
hatice_sevim
Üye
Mesajlar: 50
Kayıt: 17 Haz 2003 09:00
Konum: İstanbul

Mesaj gönderen hatice_sevim »

Selam Adnan Abi;

Uğraşmaya devam ettim ve sonunda başardım :lol: . Nasıl mı?

Önceden de UpdateSQL i Generate etmeye çalışmıştım ama Query için neden Read Only hata verdiğini anlamamıştım. Çünkü Database Run Time da aktif oluyordu ve Generate etmemesi normaldi. Database i aktif yapınca Generate etti ve UpdateSQL im de çalıştı.

Çok Teşekkürler, Allah Razı olsun Arkadaşlar...
Hatice SEVİM / BEDAŞ
Cevapla