taksit girişi hakkında yardım...

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

taksit girişi hakkında yardım...

Mesaj gönderen interboy »

arkadaşlar taksitli satış formunda iki table kullanıyorum. birincisi satış yapılan müşteri bilgilerini ve satılan malın bilgilerini tutan satis.db bu master table. ikinciside taksit bilgilerini tutan taksit.db bu da detail table. taksit tablesinde sadece rec_no odeme tarih ve not fielderi war. bu tablolar rec_no fieldleri ile bağlı. rec_no lar müşteri kayıt nosu. benim problemim şu:
taksit girişi yaparken aşağıdaki gibi bir döngü kullandım:

Kod: Tümünü seç

table1.post;

repeat
i:=i+1;//sayac arttı
next_tarih:=incmonth(strtodate(dbedit8.text));//girilen tarihi 1 ay arttırdım
dbedit8.text:=datetostr(next_tarih);//artmış tarihi dbedite girdim
table1.post;//kayıt
table1.insert;//yeni kayıt için alan açtım
until
i=taksit_sayisi; //sayaç taksit sayısı değişkenine eşitlenince dur..
buna benxer bi dongu kullanarak giriş yapmaya çalıştım ama şöyle bir hata aldım. ''' is not a valid ......'

acaba bu hatayı dongunun her dönüşünde insert yaptığı için not ve diğer dbeditlerin sıfırlandığı için mi aldım.
append yoluyla yapmayı düğşündüm ama bi yol bulamadım.
bu konuda yardım ederseniz sewinirim..

bu arada table lar paradox.
ve az önce arama yaptım. taksitle ilgili kodları inceledim ama benim dongumle aynı nerdeyse kodlar. neden hata yaptığımı bulamadım
kolay gelsin
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

öncelikle hatanın tam yerini yazmamışsın :) "..... bu geçerli bir ........." bu senin yazdığın hatanın tercümesi.

Kod: Tümünü seç

//table1.post;
if Table1.State in[dsEdit,dsInsert]then table1.post;// bu daha mantıklı

repeat
i:=i+1;//sayac arttı
next_tarih:=incmonth(strtodate(dbedit8.text));//girilen tarihi 1 ay arttırdım
dbedit8.text:=datetostr(next_tarih);//artmış tarihi dbedite girdim
table1.post;//kayıt
table1.insert;//yeni kayıt için alan açtım
// ii yapmışsın yeni kayıt ekliyceksin ama neyi ??? onları girmemişsin
// döngü içinde olduğu için bir üst satırdaki post çalışır ve boş kaydı post edersin
until
i=taksit_sayisi; //sayaç taksit sayısı değişkenine eşitlenince dur.. 
// burda koşul sağlandığı için çıkarsa ve sen döngü içinde insert dediğin 
//için table1 yeni kayıt modunda kalır


kolay gele
En son freeman35 tarafından 08 Nis 2005 06:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
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 !!!
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

Mesaj gönderen interboy »

yani hocam bütün dbedit ve dbmemo içine girilen bilgileri bir değişkene atayıp insertten sonra dbeditlere atamalımıyım.
tam anlayamadım???
hata da şu:
''' is not a valid.... ( yani '' geçerli bir string yada integer yada tarih değeri değil) yani insertden sonra boş dbgridleri post yapmaya kalkışmış program...

yada hocam bu kodları unutun gitsin. bana bu kaydı yapabileceğim bir kod yada dongu önerebilirmisiniz...

kolay gelsin...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2380
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

interboy yazdı:insertten sonra dbeditlere atamalımıyım
Evet.
interboy yazdı:bana bu kaydı yapabileceğim bir kod yada dongu önerebilirmisiniz...
Üzgünüm, balık kalmadı, ama yukarıda oltayı vermiştim ve nasıl tutacağınıda anlatmaya çalıştım.

Kolay gele
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 !!!
Kullanıcı avatarı
interboy
Üye
Mesajlar: 84
Kayıt: 18 Mar 2005 02:52

tşk

Mesaj gönderen interboy »

tşk. ederim
kolay gelsin
Cevapla