kayıt işlemi integer alanı boş geçersem?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

kayıt işlemi integer alanı boş geçersem?

Mesaj gönderen selm@n »

Selamun Aleykum arkadaşlar;
daha önce form da sorulmuş ama ben ginede yapamadım.
adet ve birimfiyat'ı diye alanlarım var bunlar integer alanlar
boş olarak kayıt ettiğimde hata veriyor nasıl 0 değeri atıya bilirim veya
boş olarak kayıt ederim.
Veritabanım MSAccess
ADO kullanıyorum
edit7 --> adet alanı
edit8 --> birimfiyat alanı

Kod: Tümünü seç

with dm.QSiparisAl do begin
Close;
Sql.Text:='insert into siparisal (musno, siparisno, urunadi, adet, birimfiyat, sipaltarih, siptestarih, sipverper, sipalper) Values ('''
+edit1.Text+''','''
+edit5.Text+''','''
+edit6.Text+''','''
+edit7.Text+''','''
+edit8.Text+''','''
+edit9.Text+''','''
+edit10.Text+''','''
+edit11.Text+''','''
+edit12.Text+''')';
ExecSQL;
hakkus
Üye
Mesajlar: 160
Kayıt: 18 Haz 2003 12:02
Konum: Konya

Mesaj gönderen hakkus »

Merhabalar,
Tablo nu oluştururken default 0 atayabilirsiniz.

Kod: Tümünü seç

BIR_FIY   DOUBLE PRECISION DEFAULT 0,
ADET    DOUBLE PRECISION DEFAULT 0,
saygılar
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

Merhaba ;

MSAccess'ta adet ve birimfiyat alanlarımın varsayılan değerleri 0
alan boyutu yazan yer ise Uzun Tamsayı diye geçiyor
kod'um da bi yanlışlık var mı... :?:
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

İnteger olan değerler için tek tırnak koymalısın

Kod: Tümünü seç

values ('+edit1.text+')  
gibi..

Veya param kullanabilirsin

Kod: Tümünü seç

query1.Close;
query1.SQL.Clear;
query1.SQL.ADD('INSERT INTO TABLO VALUES (:ADET,:BIRIMFIYAT)');
PARAMBYNAME('ADET').ASINTEGER := strtoint(edit1.text);
PARAMBYNAME('BIRIMFIYAT').ASINTEGER := strtoint(edit2.text);
editler boş olursa null atar.
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

peki Null yerine nasıl 0 Atarım .

Kod: Tümünü seç

+edit6.Text+''','
buraya strtoint (+edit7.Text+','''
yazdım olmadı nasıl yapa bilirim
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

editleri önce kontrol edip içlerine 0 yazdırabilirsin. Yani exec işleminden önce

Kod: Tümünü seç

if edit6.text = '' then
  edit6.text := '0';
if edit7.text = '' then
  edit7.text := '0';

Kod: Tümünü seç

strtoint ('+edit7.Text+')
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

gokhan yazdı:peki Null yerine nasıl 0 Atarım .

Kod: Tümünü seç

+edit6.Text+''','
buraya strtoint (+edit7.Text+','''
yazdım olmadı nasıl yapa bilirim
Şöyle yapabilirsin:

Kod: Tümünü seç

Var
  test:variant;
Begin
  test := edit7.text;
  if VarIsNull(test) then // test değişkeninin içeriği NULL ise
  begin
    test := 0;
    edit7.text := 0 //istersen
  end;
End;
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

Cevap veren tüm arkadaşlara teşekkür ediyorum
sorunumu sizin sayenizde çözdüm..
hepnize iyi çalışmalar;
Cevapla