ibdataset modülü

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
sipi_raca
Üye
Mesajlar: 38
Kayıt: 07 Nis 2005 02:00

ibdataset modülü

Mesaj gönderen sipi_raca »

Merhaba arkadaşlar
ilk defa kullandığım InterBase bileşenleri hakkında farklı kullanımlar için elimde hiç örnek program ve dokuman yok.

Diğer veri tabanlarında şimdiye kadar hep Bde bileşenleri kullandım. Table nesnesi kullanmıyorum.
import, delete update işlemlerinde kolaylık sağlayan şu IBDATASET bileşeninin farklı kullanımlarıyla ilgili yardım ederseniz sevinirim.

IBDataSet e Sağ tıklayıp editinden insert için sorguyu belirledim de Object inspectorda delete, insert, update, refresh alanlarının hepsine otomatik sorguyu yazıyor iyi güzel de ben insert sorgusunu nasıl kullanacam parambyname şeklinde editten parametreleri nasıl atacam yada diğer tür sorguları :evil:
ilk defa vt uygulamasında bde kulanmıyorum, ibx bileşenlerinden acilen yardım istiyorum Acemi yardımı olsun :lol:
Başarı; Her zaman daha iyisini yapmak için gösterilen çabadır.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ibdataset i tıpkı bir able mış gibi kullanabilirsiniz.
insert deyip post ettiğinizde insertsqldeki
edit deyip post ettiğinizde modyfsql deki
delete dediğinizde deletesql deki
open dediğinizde selectsql deki
queryleri çalıştırır.
refresh yapmak için tabloyu kapatıp açıyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
sipi_raca
Üye
Mesajlar: 38
Kayıt: 07 Nis 2005 02:00

Mesaj gönderen sipi_raca »

Selam Aleyke
hocam ağzına sağlık dedim ya Ibx bileşenleri ile ilgili hiç kullanım için dokumanım yoktu.
insert için parametreleri (parambyname) nasıl kullanılıyor editlerden alınarak, yada örnek kod olursa daha çok memnun kalırım.
Kolaylıklar ve başarılar dilerim.
Başarı; Her zaman daha iyisini yapmak için gösterilen çabadır.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Öncelikle http://www.delphiturkiye.com/index.php? ... tabani.htm
linkini bir dolaşın derim. Oradaki İbx e girişe bakın.

Biraz kafanızda bir şeyler oluşsun. Sonra yapamadıklarınızı mesaj olarak sorarsınız.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
comlekciler
Üye
Mesajlar: 58
Kayıt: 17 Nis 2006 12:35

Mesaj gönderen comlekciler »

S.a. sipi_raca kardeş bende ibdataset bileşeni ile uğraşıyorum (başbelası birşey...) sanırım senin sorununla aynı derdi paylaşıyoruz. Yani bende TQuery ile paradox kullanarak istediğim şeyleri yaptırıyordum. Ama malesef bu dataset ile olmuyor mutlaka bi hata vermesi gerekiyor sanırım.:D

Neyse kısacası bu konuda ne yaptın ben de yeni FB araştırmaya başladım. Hergün forumu tarıyorum ama hiç kimse editten bilgileri alarak (dbedit değil) kaydetme,güncelleme,silme ve seçme işlemleri yapmamış. Örnekte bulamadım. Bulduğum örnekler ya DBGrid yada DBedit ile table kullanılarak yapılmış. Hala 7.seminerdeki örnek programı bulmaya çalışıyorum ama artık ondanda ümidimi kesdim. Eğer birşeyler bulduysan yardım edersen sevinirim. Bu işi hatasız yapar yapmaz bir örnek uygulama yapıp foruma göndereceğim.

Kolay gelsin.
"Bilgisizlerin geçtikleri mevkiye yaptığı fenalığı, yüzlerce aslan bir araya gelse yapamaz" MEVLANA
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Nasıl kaynak olmaz :wink: Uygun arama sözcükleri kullanılmazsa çıkmaz tabi :!: Doğrusu ben de bulamadım ama aramadığım için :lol:
Neyse form a bir adet IBDatabase, IBTransaction konur. Bu tür ortak bileşenleri DataModule (DM) form una koyuyorduk di mi :wink: Sonra diğer formumuza IBDataSet ve IBUpdateSQL bileşenlerini koyuyoruz. IBDataset.Database e DM.IBDatabase i seçip, Transaction un da seçildiğini görüyoruz. Sonra SelectSQL i açıp yazıyoruz;

Kod: Tümünü seç

select * from tablo_adi
gibi. Ikinci kısım IBUpdateSQL i IBDataSet in UpdateObject ine ekliyoruz/atıyoruz ve IBUpdateSQL e sağ klik Update SQL Editor.. den diğer Insert / Update / Delete / Refresh cümleciklerini otomatik oluşturuyoruz. Hepsi bu :idea: Eğer normal editlerden girilen bilgileri aktarmak istiyorsanız;

Kod: Tümünü seç

IBDataSet1.Insert;
IBDataSet1.FieldByName('ID').AsInteger := StrToInt(Edit1.Text);
IBDataSet1.FieldByName('ADI').AsString := Edit2.Text;
// ...
IBDataSet1.Post;
şeklinde atayabilirsin.. Fakat kendim bu şekilde hiç denemedim :!:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: ibdataset modülü

Mesaj gönderen ZeynelAbidin »

peki recep hocam madem biz bu iş fieldbyname ile yapacağız ozaman neden selectsql,modifysql delete sqlleri oluşturuyoruz.
inserti parambyname ile yapmaya çalıştım ama birtürlü beceremedim.baktım olacak gibi değil fieldbyname ile yaptım bu seferde update kısmında takıldım .bizim update için eski kodu veritabanına gönderip bu eski kodlu kaydı değiştir dememiz için parambyname kullanmamız gerekmiyormu.update parambyname ile yapıyorum bu sefer diyorki bu field yok diyor.fieldbyname yapayımdiyorum bu seferde hangikaydı değiştireceğini bilmiyor.bu kısımda bayadır bir bocalıyorum lütfen yardım
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: ibdataset modülü

Mesaj gönderen Lost Soul »

ZeynelAbidin yazdı:peki recep hocam madem biz bu iş fieldbyname ile yapacağız ozaman neden selectsql,modifysql delete sqlleri oluşturuyoruz.
inserti parambyname ile yapmaya çalıştım ama birtürlü beceremedim.baktım olacak gibi değil fieldbyname ile yaptım bu seferde update kısmında takıldım .bizim update için eski kodu veritabanına gönderip bu eski kodlu kaydı değiştir dememiz için parambyname kullanmamız gerekmiyormu.update parambyname ile yapıyorum bu sefer diyorki bu field yok diyor.fieldbyname yapayımdiyorum bu seferde hangikaydı değiştireceğini bilmiyor.bu kısımda bayadır bir bocalıyorum lütfen yardım
eğer insert yapacağınız nesne ibDataset ise
yani Dataset de kayıtları table de ki nesnelerle ilişkilendirmek ve bunu sql ile yapmak istiyorsanız

KARTKASA isimli ID, ISIM, KOD, ACIKLAMA alanlı bir tablo için

Kod: Tümünü seç

IbDataset.SelectSQL := 'SELECT  ID,KOD, ISIM, ACIKLAMA FROM KARTKASA';
IbDataset.ModifySQL:='UPDATE KARTKASA SET  KOD = :KOD, ISIM = :ISIM, ACIKLAMA = :ACIKLAMA WHERE ID = :OLD_ID';
IbDataset.RefreshSQL:='SELECT  ID,KOD, ISIM, ACIKLAMA FROM KARTKASA WHERE KARTKASA.ID = :OLD_ID';
IbDataset.DeleteSQL:='DELETE FROM KARTKASA WHERE  ID = :OLD_ID';
IbDataset.InsertSQL:='INSERT INTO KARTKASA (ID,KOD,ISIM, ACIKLAMA) VALUES (:ID,:KOD,:ISIM, :ACIKLAMA)';
şeklinde düzenleyin ve active ettikten sonra table nesnesini kullandığınız gibi kullanın;

yukardaki tanımlamayı tasarım anında yaparak tablonun kayıt alanlarını data nesnelerine bağlayabilirsiniz.
eğer

ibquery ile yapacaksanız
örneğin insert için

Kod: Tümünü seç

ibquery.SQL.clear;
ibquery.SQL.add('INSERT INTO KARTKASA (ID,KOD,ISIM, ACIKLAMA) VALUES (:ID,:KOD,:ISIM, :ACIKLAMA)');
ibquery.ParamByNane('KOD').AsString:='001'; // veya edit1.text;
ibquery.ParamByNane('ISIM').AsString:='AHMET' YEREYAPIŞIK; // veya edit2.text;
ibquery.ParamByNane('ACIKLAMA').AsString:='MERHUMU İYİ BİLİRDİK'; // veya edit3.text;
ibquery.ExecQuery;
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: ibdataset modülü

Mesaj gönderen ZeynelAbidin »

ibdataseti table nesnesi gibi kullanın derken anladığım şey parambyname değilde fieldbyname kullanın.değişiklik yapmak istediğniz kaydı seçin select ile ve seçilen kaydı yine fieldbyname ile değiştirin.eğer buysa neden sql cümlelerini oluşturuyoruz.ben denedim sql cümlesi oluşturmadan fieldbyname ile kayıt ekleyebiliyorum.
Cevapla