Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: IB - SQL Sorgulama Sorunu?  (Okunma sayısı 1825 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
IB - SQL Sorgulama Sorunu?
« : 26 Ocak 2010 22:16:42 »
Projemde InterBase veritabanı kullanıyorum. Programda yeni bir kayıt girdiğim zaman "Kişi Sayısı" otamatik olarak "kisisayisi" alanına "1" değerini ekliyor ve ben bu değerleri bir label üzerinde SQL "SUM" komutu ile toplamını gösteriyorum. Ama yeni bir kayıt girdiğim zaman örneğin; Kişi Sayısı "5" iken yeni kayıttan sonra "6" olması gerekiyor ama olmuyor. Ne yaptıysam olmadı! Tabloyu Refresh ettim, Kapadım Açtım ama olmadı... Bu konuda bana yardımcı olursanız çok sevinirim.

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.117
  • Rep: +51/-0
  • Cinsiyet: Bay
  • Falan filan ...
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #1 : 26 Ocak 2010 22:32:40 »
sum ile toplatmak yerine COUNT ile sayısını alabilirsin (sql kullancam illa diyorsan ) yada

Kod: Delphi
  1. begin
  2.  label.caption := inttostr(ibtabel.recordcount); // tablodaki kayıt sayısınız verir ve label da gösterir..
  3. end;



Amatör Küme Programcı

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #2 : 31 Ocak 2010 15:52:26 »
Ama şöyle birşey var ki ben bunu yazmayı unuttum. Yetkili girişinde ben kişi sayısını "50" olarak giriyorum. Yani benim yapmak istediğimk olay KISISAYISI alanındaki rakamların toplamını almak. Yani önceden 15 kişivarsa "50" kişi daha eklenecek ve yeni toplam "65" olacak. Bunu SQL-SUM komutu ile yapıyorum fakat yeni kayıt eklediğim zaman refresh etmiyor. Dediğim gibi IBQuery kullanıyorum.

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #3 : 01 Şubat 2010 18:01:35 »
Yardımcı olacak birisi yok mu?

Çevrimdışı guguk

  • Kıdemli Üye
  • *****
  • İleti: 111
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #4 : 01 Şubat 2010 23:10:31 »
'yetkili girisinde "50" giriyorum' dan bisey anlamadim.
belki kayit  ve labele sayiyi aktarim kodunu yazarsan cozeriz

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #5 : 02 Şubat 2010 12:29:55 »
Hocam daha öncede yukarıda yazdığım gibi yeni kayıt girildiği zaman KISISAYISI alanının değerine "1" yazıyor. Yetkili girişi ekranında ise yetkili yeni bir kayıt girdikten sonra kişi sayısını "5" giriyor. ve ben bu kişi sayılarının toplamını SELECT SUM(KISISAYISI) FROM PERSONEL kodu ile alıyor ve bi labele aktarıyorum.
Fakat yeni bir kayıt girildikten sonra TOPLAMI refresh etmiyor yani program çalıştığında görünen toplam ne ise yeni kayıttan sonra değişmiyor. Sorunum bu?

Çevrimdışı guguk

  • Kıdemli Üye
  • *****
  • İleti: 111
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #6 : 03 Şubat 2010 22:36:30 »
interbase bende yuklu olmadigi icin deneyemiyorum.yanliz sormak istedigim bisey var.veriler program icinden kaydedildikten sonra veritabanina aninda yansiyor mu? bunu kontrol edebilir misin.programda bir kayit girip,programi kapatmadan veritabanini kontrol edermisin

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #7 : 04 Şubat 2010 21:28:43 »
Programa yeni bir kayıt girdikten sonra anında DBGrid üzerinde görüyorum. Veritabanınada yansıyor. Ama ben bir yerde yanlış bişeyler yapıyorum ve ne olduğunu bulamadım. Bana bu konuda yardımcı olur musunuz. Bu "Commit" etmelerle ilgili. Dediğim gibi yeni kayıttan sonra kişi sayısı artmıyor. Bu konuda yardımcı olursanız çok sevinirim.

Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 256
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #8 : 05 Şubat 2010 23:35:34 »
Slm. doğru anladıysam ; DataSourcenin OnDataChange olayına;
Kod: Delphi
  1. var
  2.  SQlCumle:AnsiString;
  3. begin
  4.  SQLCumle:='select Count(KISISAYISI) as TOP1 FROM TABLE1';
  5.  with IBQuery1 do
  6.  begin
  7.   close;
  8.   sql.clear;
  9.   sql.add(SQLCumle);
  10.   Open;
  11.  end;
  12.  Label1.Caption := IntToStr(IBQuery1.FieldByName('TOP1').AsInteger);
"Count" kişi sayısını verir "Sum" atanırsa Toplam verir.
« Son Düzenleme: 05 Şubat 2010 23:50:25 by Cturk »

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #9 : 06 Şubat 2010 14:23:51 »
Hocam denedim ama "Stack Overflow" hatası veriyor. Olmadı yani.

Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 256
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #10 : 06 Şubat 2010 16:07:17 »
Muhtemelen Belirlediğiniz alanda bir sorun var String olarakmı yoksa integer olarakmı?, sorunuzda "50-60" sayı olarak verdiğiniz için ben "integer" olarak verdim String alan ise ;burayı ;AsInteger); > AsString); olarak deneyiniz?.yani alan tanımlamanız ne ise sorgu ona göre olmalı.....kod çalışıyor.

Çevrimdışı akfbircan

  • Kıdemli Üye
  • *****
  • İleti: 65
  • Rep: +0/-0
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #11 : 06 Şubat 2010 17:14:12 »
Kodun çalıştığını biliyorum. Ben size sorunu tamamı ile şöyle anlatıyım;

Edit'e barkod okutulduğunda işlemler gerçekleşiyor. Kod Edit'in KeyPress olayında gerçekleşiyor. Benim yazdığım kod da PERSONEL tablosunun KISISAYISI alanına "1" değerini ekliyor ve (daha önce yazmış olduğum) SQL kodu çalışıyor. KOdun çalışması sonucunda KISISAYISI alnanını yeniden toplayarak bir LABEL'e aktarıyor. Ama sorun burada. Toplamını alıyor ama LABEL'e yansıtmıyor. Programı kapatıp açtığım zaman yeni toplam görünüyor.

Çevrimdışı Cturk

  • Kıdemli Üye
  • *****
  • İleti: 256
  • Rep: +5/-1
  • Cinsiyet: Bay
Ynt: IB - SQL Sorgulama Sorunu?
« Yanıtla #12 : 06 Şubat 2010 18:54:38 »
 Amacınız herhalde editlerden girilen verilerin VT ye kayıt ederek girilen değerlerin toplamını almak,yanlız niye iki kere toplatıyorsunuz onu anlamadım... kodlarınızı görmek lazım.