Arşiv Anasayfa Veri Tabanı Soruları
Sayfalar: 1
Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 13 May 2008 10:54:24
Merhaba,
Ben FireBird üzerinde çalışmaya yeni başladım. Araştırlamalar yaptım ve bana uygun bir veri tabanı olduğuna kanaat getirdim. İnternette arştırıp öğrendiğime göre genelde yeni başlayanlar bazı problemlerle karşılaşıyormuş. Bende onlardan biriyim sanırım  Smiley...
Benim sorunum şu: 'Bir türlü firebird'e kayıt ekleyemedim  Undecided'... IBquery ile denedim read-only dataset dedi olmadı. Araştırdım ve IBQuery ile kayıt girmek için IBUpdateSQL ile yapmk gerekiyormuş onuda denedim. Kayıt eklemeyi başardım ; fakat ben edit1'in içindeki kayıtı eklemek istiyorum ve kayıtı eklerken şu şekilde ekledi '+edit1.text+'.. Nasıl düzelteceğimi bulamadım. Yine araştırdım IBDataset'le yapılabilecek şeyler buldum. Onları denedim olmuyor.
Benim istediğim şöyle bir şey: 'Form'da edit1 var butona basınca edit1 içindeki bilgiyi vt'ye girsin.'...

Bunu çözmemde yardımcı olanlara şimdiden çok teşekkür ederim...

Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 13 May 2008 11:27:28
Acaba burayı incelediniz mi?
http://www.delphidunyasi.net/index.php/topic,759.0.html
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 13 May 2008 11:34:38
inceledim... ordan yararlanarak bazı işlemler yaptım fakat boş kayıt ekledi :S
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 13 May 2008 11:58:06
Peki o halde arkadaşlarımızdan biri şu soruyu sormuştu.
http://www.delphidunyasi.net/index.php/topic,3931.msg17944/topicseen.html#msg17944

Onunla ilgili örnek eklemiştim. Sizde o bahsedilen bileşen olmayabilir ama en azından o kodlar üzerinden
bir mantık yürüterek istediğinizi elde edeiblirsiniz. İyi çalışmalar.
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 13 May 2008 22:29:45
o örnekte firebird ile ilgili birşey göremedim :S
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 14 May 2008 08:00:37
o örnekte firebird ile ilgili birşey göremedim :S

O konudaki örnek NxGrid bileşenine eklenen bilgilerin tek kalemde firebird veritabanına kaydedilmesi
ile ilgili bir örnek. Yani veri tabanı firebird olay kayıt. Siz tam olarak ne sormuştunuz ?
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 14 May 2008 11:57:54
aslında en iyisi şu olacak ben ne yaptığımı yazıyım hata yapıtığım yeri belki  görüp yardımcı olabilirsiniz.

İlk önce forma IBDatabase, IBDataset, IBTransaction, DataSource ve DBGrid ekledim... Burada IBDatabase ile ilgili gerekli Transaction ve veri tabanı bağlantılarını yaptım 'Connect > True' dedim ve sorunsuz bağlandım. Sonra DBGrid Datasource ayarında eklediğim DataSource seçtim. Sonra IBDatasete sağ tıklayıp 'Dataset Editöre' tıkladım.

Benim Ayarlarıma göre;
Tablo Adı: TABLO1
Key Fields: SIRANO  (Integer)
                 Ad (VarChar)
                 Soyad (VarChar)
Update Fields:SIRANO
                     Ad
                     Soyad
DataSet Editörde çıkan bu iki boşlukta  -Key Fields ve Update Fields- ben  hepsini seçtim ve GenerateSQL dedim. Ve karşıma aşağıdaki SQL cümlecikler geldi...

Modify:
update TABLO1
set
  SIRANO = :SIRANO,
  AD = :AD,
  SOYAD = :SOYAD
where
  SIRANO = :OLD_SIRANO and
  AD = :OLD_AD and
  SOYAD = :OLD_SOYAD

Insert:
insert into TABLO1
  (SIRANO, AD, SOYAD)
values
  (:SIRANO, :AD, :SOYAD)

Delete:
delete from TABLO1
where
  SIRANO = :OLD_SIRANO and
  AD = :OLD_AD and
  SOYAD = :OLD_SOYAD

Refresh:
Select
  SIRANO,
  AD,
  SOYAD
from TABLO1
where
  SIRANO = :SIRANO and
  AD = :AD and
  SOYAD = :SOYAD

Benim aklım bundan sonra karışıyor işte. Delete fonksiyonunu kullandım gayet güzel çalıştı... Insert fonksiyonunu nasıl kullanacağımı bir türlü bulamadım. Insert yaptığında benim editteki bilgileri girmesi için kodu şöyle değiştirdim:

insert into TABLO1
  (SIRANO, AD, SOYAD)
values
  (:SIRANO, '+QuatedStr(edit1.text)+', :SOYAD)

 Sonra Button1.Click için şöyle yazdım...

ibdataset1.Insert;
 ibdataset1.Post;

Sonra IBDataset AfterPosta şöyle yazdım...

:
ibdataset1.ApplyUpdates;
 ibdataset1.Transaction.Commit;

Programı çalıştırdım ve buttona tıkladığında şöyle bir hata verdi.

arithmetic exception, numeric owerflow, or string truncation

Kısaca sorun şu edit1'deki içeriği FireBird VeriTabanına ekleyemedim...
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 14 May 2008 12:07:19
insert into TABLO1
  (SIRANO, AD, SOYAD)
values
  (:SIRANO, '''+Edit1.Text+''', :SOYAD)


Şeklinde sorunsuzca olması gerekir.

Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 14 May 2008 12:23:36
arithmetic exception, numeric owerflow, or string truncation

bu hatayı verior :S
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 14 May 2008 12:52:05
eklemeye çalıştığınız alanın özlliği nedir ? Sanırım numerik bir değere string girmeye çalışıyoruz.
3 tırnak olan yerleri 1 tırnak yapıp denermisin?
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 14 May 2008 13:09:51
hep aynı hata...zaten bende acaba yanlış yere mi giriyorum diye baktım ama doğdu AD>VarChar idi sonra DENEME>Char oluşturdum ama yine aynı hata...
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: SelçuK Tarih: 14 May 2008 13:16:06
projeyi ekleyebilirmisin yada Ö.M ile gönder inceleyip sana bir bilgi vereyim.
Firebird versiyonunu da yazarsan daja iyi olur kolay gelsin.
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 14 May 2008 14:38:12
Selçuk Bey dünden beri bana yardım etmek için uğraşıyorsunuz. Bu uğraşınız için teşekkür ederim. Fakat ben FireBird'ten vazgeçtim ve Advantage Veri tabanı kullanmaya karar verdim. Ve aynı Paradox'ta yaptığım işlemleri çok kolay bir şekilde uygulayabiliyorum. Ve hızınıda test etmek istedim bu nedenle for döngüsü ile 110.000 kayıt girdim ve sonra hızına bakmak için tek tek kayıt ekledim ve çok hızlı geldi bana. Tabi ben profesyonel bir programcı değilim ve belki FireBird daha iyi olsada Advantage kullanmakta kararlıyım..

Sana tekrar tekrar ilgilendiğin için teşekkür ederim...


Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: kocaturk Tarih: 15 May 2008 10:29:03
Advantage ı sunucu uygulamalarında olmasa da local uygulamalarda çok kullandım, yüzbinlerce kayıt üzerinde çalıştırdım, performans,veri güvenliği ve taşınabilirlik  konusunda bence çok iyi eğer büyük ölçekli projeler üzerine çalışmıyorsnız kullanmakdan çekinmeyin.
Ynt: Firebird'e kayıt eklemeyi beceremedim.... Gönderen: FeelMe Tarih: 16 May 2008 00:31:50
Advantage ı sunucu uygulamalarında olmasa da local uygulamalarda çok kullandım, yüzbinlerce kayıt üzerinde çalıştırdım, performans,veri güvenliği ve taşınabilirlik  konusunda bence çok iyi eğer büyük ölçekli projeler üzerine çalışmıyorsnız kullanmakdan çekinmeyin.

teşekkür ederşim öneriniz için Kocaturk..