Table1.Append; Table1.Insert
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Table1.Append; Table1.Insert
Arkadaşlar merhaba
Delphide kafama takılan birkaç soru var bunları sormak yapmış olduğum yöntemler doğrumu merak ediyorum şüphelerime cevap verirseniz sevinirim.
1-
Table1.Append; Table1.Insert
Ben kayıt eklerken Table1.Insert kullanıyorum.
2-
Kayıt ekleme ve değiştirme işlemlerimi ayrı pencerede yapıyorum. Fakat kaydı eklediğim, değiştirdiğim ve sildiğim kayıtlar altta bulunan pencerede DBGride güncellenmiyor.
bende bunları tekrar sıralama yapıyorum. Değiştirdiğim veya eklediğim kaydı bir değişkene atıyorum While döngüsüyle database i tarattıktan sonra alt pencerede eklediğim ve sildiğim kaydı aktif hale getiriyorum.
acaba uyguladığım yöntemler doğrumu.
3-
Bir tabloda kayıt olup olmadığını nasıl anlayabiliriz ?
Delphide kafama takılan birkaç soru var bunları sormak yapmış olduğum yöntemler doğrumu merak ediyorum şüphelerime cevap verirseniz sevinirim.
1-
Table1.Append; Table1.Insert
Ben kayıt eklerken Table1.Insert kullanıyorum.
2-
Kayıt ekleme ve değiştirme işlemlerimi ayrı pencerede yapıyorum. Fakat kaydı eklediğim, değiştirdiğim ve sildiğim kayıtlar altta bulunan pencerede DBGride güncellenmiyor.
bende bunları tekrar sıralama yapıyorum. Değiştirdiğim veya eklediğim kaydı bir değişkene atıyorum While döngüsüyle database i tarattıktan sonra alt pencerede eklediğim ve sildiğim kaydı aktif hale getiriyorum.
acaba uyguladığım yöntemler doğrumu.
3-
Bir tabloda kayıt olup olmadığını nasıl anlayabiliriz ?
Merhaba,
1. Append sona ekleme yapar, Insert kursörün bulunduğu yerin öncesine ekler kaydı. Dosyaya kaydetme açısından bir farkı varmı hiç araştırmadım ama ben hep Append kullanıyorum.
2. Ne demek istediğini tam anlayamadım ama uygun olmayan bir yöntem olduğu belli oluyor
Kaydı sildiğin anda, grid'tende gitmesi lazım. Biraz daha detay anlatırsan öneri yapabilirim. DBEdit vs. gibi veri bilinçli bileşenler kullanıp, ekleme ve düzeltme aynı ekranda yap.
3. En güzeli SQL ile bulmak. Gerekli cümlecik şöyle olmalı :
SELECT COUNT(*) FROM TABLO_ADI
Kolay gelsin.
1. Append sona ekleme yapar, Insert kursörün bulunduğu yerin öncesine ekler kaydı. Dosyaya kaydetme açısından bir farkı varmı hiç araştırmadım ama ben hep Append kullanıyorum.
2. Ne demek istediğini tam anlayamadım ama uygun olmayan bir yöntem olduğu belli oluyor

3. En güzeli SQL ile bulmak. Gerekli cümlecik şöyle olmalı :
SELECT COUNT(*) FROM TABLO_ADI
Kolay gelsin.
Faklı formlarda ekleme ve değiştirme yaptığım için altta kalan form'da güncelleme olmuyor. Günceleme işini AdoDataSet1'i tekrar kapatıp açtıktan sonra güncelleme yapıyor. Fakat ya en baştaki kayda konumlanıyor ya da en sondaki kayda ben de değiştirdiğim veya eklediğim kayda konumlanmasını istiyorum aktif kayıt ya eklediğim kayıt olacak ya da değiştirdiğim bu yüzde while döngüsü ile taratma yapıyorum 3 formun kullanıldığını düşünün ilk form data kayıtlarının DBGrid içinde listelenmesi 2 nci form kayıt ekleme 3 n cü form kayıt değiştirme.
Teşekkür Ederim.
Teşekkür Ederim.
Yalnız silme işleminde problem oluyor formumda AdoDataSet ve AdoQuery kullanıyorum silme işlemimde AdoQuery i kullandığım için DBGrid güncelleme yapmıyor (DbGrid AdoDataSet'e bağlı) bunu nasıl halledebiliriz yardımcı olabilirseniz sevinirim.
Ben bu yöntemi yine While tablo taratma ile çözüyorum ama çok kod yazmam gerekiyor.
Teşekkür Ederim.
Ben bu yöntemi yine While tablo taratma ile çözüyorum ama çok kod yazmam gerekiyor.
Teşekkür Ederim.
Merhaba,
hocam çok yanlış bir teknik kullanıyorsun
Bu while ile döngü tekniğini unut.
Kayıtlar üzerinde başka bir dataset (veriye ulaşmak için kullanılan bileşen Table, Query, TDataset) ile işlem yapınca ya Refresh ile kayıtları tekrar alırsın ya da esas Dataset'i kapatıp açarsın. Yani
Table1.Refresh; veya
Table1.Close;
Table1.Open; // kayıtların son halini aldık
Bunun dışında döngü ile bir şey yapmana gerek yok. Ben senin kullandığın yapıda kullanıyorum, nasıl yaptığımı anlatayım :
1. Formu açtığım zaman grid var ve bu Dataset1'e bağlı.
2. Kayıt Ekle dediğim zaman ayrı bir formu Dataset1.Append; ile açıyorum. Burdaki tüm DBedit vs. önceki formdaki Dataset1'e bağlı. Tamam derse Dataset1.Post ile kaydediyorum, hayır derse Dataset1.Cancel ile iptal ediyorum.
3. Kayıt Düzelt dediği zaman Ekle'de kullandığım formu bu sefer Dataset1.Edit ile açıyorum. Değişikliklerden sonra Tamam derse Dataset1.Post ile kaydediyorum, hayır derse Dataset1.Cancel ile iptal ediyorum.
4. Kayıt sil derse de direk hiçbir form açmadan Dataset1.Delete komutu ile siliyorum.
Aynı dataset'te işlem yaparsan Refresh vs. yapmana pek gerek kalmaz. Ancak toplu kayıt sileceksen bunu ayrı bir dataset ile (Query, TDataset vs.) yapıp, esas tabloyu Refresh etmen en uygun yol.
Umarım faydası olur.
Kolay gelsin.
hocam çok yanlış bir teknik kullanıyorsun

Kayıtlar üzerinde başka bir dataset (veriye ulaşmak için kullanılan bileşen Table, Query, TDataset) ile işlem yapınca ya Refresh ile kayıtları tekrar alırsın ya da esas Dataset'i kapatıp açarsın. Yani
Table1.Refresh; veya
Table1.Close;
Table1.Open; // kayıtların son halini aldık
Bunun dışında döngü ile bir şey yapmana gerek yok. Ben senin kullandığın yapıda kullanıyorum, nasıl yaptığımı anlatayım :
1. Formu açtığım zaman grid var ve bu Dataset1'e bağlı.
2. Kayıt Ekle dediğim zaman ayrı bir formu Dataset1.Append; ile açıyorum. Burdaki tüm DBedit vs. önceki formdaki Dataset1'e bağlı. Tamam derse Dataset1.Post ile kaydediyorum, hayır derse Dataset1.Cancel ile iptal ediyorum.
3. Kayıt Düzelt dediği zaman Ekle'de kullandığım formu bu sefer Dataset1.Edit ile açıyorum. Değişikliklerden sonra Tamam derse Dataset1.Post ile kaydediyorum, hayır derse Dataset1.Cancel ile iptal ediyorum.
4. Kayıt sil derse de direk hiçbir form açmadan Dataset1.Delete komutu ile siliyorum.
Aynı dataset'te işlem yaparsan Refresh vs. yapmana pek gerek kalmaz. Ancak toplu kayıt sileceksen bunu ayrı bir dataset ile (Query, TDataset vs.) yapıp, esas tabloyu Refresh etmen en uygun yol.
Umarım faydası olur.
Kolay gelsin.
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
güncelleme
size şöyle bir alternatif sunmak istiyorum silme ekleme ve düzeltme işelmlerinden sonra kayıt yaptığınız tableyi güncelleyin yani yapacağınız tek şey table1.refresh yapmak sanırım bu işinizi görür...
kolay gele...
kolay gele...
Merhaba,
bu da hiç uygun bir yöntem değil
arkadaşlar olayı 300-500 kayıtlık tablolar ile düşünmeyin. Belki şu an her işlemden sonra Refresh sıkıntı olmuyordur ama yarın bir gün 300-500 bin kayıtlık tablolarda çok büyük sıkıntılar çıkar.
Sadece çok gerektiği durumlarda Refresh ve Kapa/Aç olayı yapın.
Slogan belli : Az alan (field), az kayıt, az Refresh
Kolay gelsin.
bu da hiç uygun bir yöntem değil

arkadaşlar olayı 300-500 kayıtlık tablolar ile düşünmeyin. Belki şu an her işlemden sonra Refresh sıkıntı olmuyordur ama yarın bir gün 300-500 bin kayıtlık tablolarda çok büyük sıkıntılar çıkar.
Sadece çok gerektiği durumlarda Refresh ve Kapa/Aç olayı yapın.
Slogan belli : Az alan (field), az kayıt, az Refresh

Kolay gelsin.
Aynı dataset ile refresh yaptığım zaman hata veriyor yapamıyorum.(Gerci aynı dataset ile kullanmama gerek yok demişsiniz)
Ama bir problem var DBGrid olan form Sql ile İşlem No alanına göre sıralanmış ve eklediğim kayıt sıralamaya girmiyor DBGridin en alt satırına ekleniyor sıralamaya soktuğum zamanda aktif kayıt olmuyor bunu nasıl çözebiliriz.
Birde while konusunda haklısınız o yöntemi unutmak çok zor dos ta programlama yaparken çok alıştığım bir yöntemdi ama programlarımı ağırlaştırmaya başladığını farkettim ve bu sebebten dolayı yeni yöntemler araştırıyorum ve bu günde vermiş olduğunuz fikirler güzeldi çok teşekkür ederim.
Bir de Mustafa Bey sizin kullandığınız yöntemle benim ki hemen hemen aynı. Bende Ekleme formuna Nakit Tahsilat ile Nakit Ödeme işlemlerini yaptırtıyorum Değiştirme formuna Nakit Tahsilat ve Nakit Ödeme işlemlerinin değiştirme olaylarını yaptırtıyorum aslında ekleme ve değiştirme için tek bir forum kullanabilirdim ama kod kontrolümü kaçırmak istemiyorum çünkü kodlarımın arasına pek açıklama yazmıyorum inlşallah bir gün bunada alışacağım.
Teşekkür Ederim
İyi Geceler.
Ama bir problem var DBGrid olan form Sql ile İşlem No alanına göre sıralanmış ve eklediğim kayıt sıralamaya girmiyor DBGridin en alt satırına ekleniyor sıralamaya soktuğum zamanda aktif kayıt olmuyor bunu nasıl çözebiliriz.
Birde while konusunda haklısınız o yöntemi unutmak çok zor dos ta programlama yaparken çok alıştığım bir yöntemdi ama programlarımı ağırlaştırmaya başladığını farkettim ve bu sebebten dolayı yeni yöntemler araştırıyorum ve bu günde vermiş olduğunuz fikirler güzeldi çok teşekkür ederim.
Bir de Mustafa Bey sizin kullandığınız yöntemle benim ki hemen hemen aynı. Bende Ekleme formuna Nakit Tahsilat ile Nakit Ödeme işlemlerini yaptırtıyorum Değiştirme formuna Nakit Tahsilat ve Nakit Ödeme işlemlerinin değiştirme olaylarını yaptırtıyorum aslında ekleme ve değiştirme için tek bir forum kullanabilirdim ama kod kontrolümü kaçırmak istemiyorum çünkü kodlarımın arasına pek açıklama yazmıyorum inlşallah bir gün bunada alışacağım.
Teşekkür Ederim
İyi Geceler.