adodataset ve adoquery problemi lütfen yardım....

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
burak_us
Üye
Mesajlar: 7
Kayıt: 17 May 2007 10:35
Konum: İstanbul&Kıbrıs

adodataset ve adoquery problemi lütfen yardım....

Mesaj gönderen burak_us »

delphi7 ve sql server 2000 kullanıyorum
benim sorunum şu adodataset ile database bazı kayıtlar ekliyorum fakat bu kayıtları ekledikten hemen sonra aratınca databasede bulunamıyor fakat programımı kapatıp acınca hepsı kaydedılmıs oluyor.komutlarım şöyle :
personnels databasede kullandıgım tablo adı.
insert yerine append'de kullandığım fakat durum değişmiyor.
forumdan araştırdığım kadarıyla bir şekilde commit yapmam lazım ama ne yazıkkı bulamıyorum yardımcı olursanız sevınırım.

adodataset1.CommandText:='select * from Personnels';
adodataset1.Active:=true;
adodataset1.Insert;
adodataset1.FieldByName('Personnelid').asstring:=bsskinedit5.text;
adodataset1.FieldByName('Name').asstring:=bsskinedit2.text;
adodataset1.FieldByName('Surname').asstring:=bsskinedit3.text ;
adodataset1.FieldByName('Personneltype').asstring:=bsskincombobox1.text;
adodataset1.FieldByName('Dateofbirth').asstring:=bsskindateedit1.text;
adodataset1.FieldByName('Salary').asstring:= bsskinedit6.text;
adodataset1.FieldByName('Hiredate').asstring:=bsskindateedit2.text;
adodataset1.FieldByName('Phone').asstring:=bsskinmaskedit2.text;
adodataset1.FieldByName('Address').asstring:= bsskinedit4.text;
adodataset1.FieldByName('Status').asstring:=bsskincombobox2.text;
adodataset1.Post;


diğer denediğim kodlar :

adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from Personnels');
adoquery1.Open;
adoquery1.Insert;
adoquery1.FieldByName('Name').asstring:=bsskinedit2.text;
adoquery1.FieldByName('Surname').asstring:=bsskinedit3.text;
adoquery1.FieldByName('Personneltype').asstring:=bsskincombobox1.text;
adoquery1.FieldByName('Dateofbirth').asstring:=bsskindateedit1.text;
adoquery1.FieldByName('Salary').asstring:=bsskinedit6.text;
adoquery1.FieldByName('Hiredate').asstring:=bsskindateedit2.text;
adoquery1.FieldByName('Phone').asstring:=bsskinmaskedit2.text;
adoquery1.FieldByName('Address').asstring:=bsskinedit4.text;
adoquery1.FieldByName('Status').asstring:=bsskincombobox2.text;
adoquery1.Post;

*************************
adoquery1 in beforepost özelliğine adotable1.begintrans;
ve
adoquery1 in afterpost özelliğine adotable1.committrans;

komutları ekliyorum fakat bir işe yaramıyor

**************************

üstte yazdığım komutların sonuna

adoquery1.close;
adoquery1.open;

veya

adodataset1.open;
adodataset1.close;

komutları ekliyorum yine işe yaramıyor
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

adoDataset

Mesaj gönderen sevgi_kelbas »

Merhaba
commit işlemini eğer bir transaction başlattıysanız yapmanıza gerek var. ama gördüğüm kadarıyla siz transaction başlatmamışsınız. bilgileri nerde gösteriyorsunuz gridde mi belki refresh problemi yaşıyorsunuzdur...
burak_us
Üye
Mesajlar: 7
Kayıt: 17 May 2007 10:35
Konum: İstanbul&Kıbrıs

Mesaj gönderen burak_us »

arama yaptıgım zaman bilgileri gridde değil tek tek editler içinde gösteriyorum peki bu işlemde yani adoquery veya ado dataset kullanırken nasıl transaction kullanabilirim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Anladığıma göre projende farklı datasetler bulunuyor ve bunlar ortak tablolar kullanıyor. Bu durumda da bir kere program tarafından okunan kayıtlar tekrar tekrar okunmadığından diğer taraftan yapılan değişikliklerden haberi olmuyor (adoMusteri tablosu ile yapılan değişikliği adoMusteriArama tablosu anlayamaz). Eğer bir tabloda bir işleme başlamadan önce güncel son durumuna ulaşmak istiyorsanız o dataset bileşeninde Requery metodunu kullanın. Bu metot kayıtların güncel halini süratli bir şekilde çekecektir.

(Örn: ADOTable1.Requery; ADOQuery1.Requery; ADODataSet1.Requery vs.)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
burak_us
Üye
Mesajlar: 7
Kayıt: 17 May 2007 10:35
Konum: İstanbul&Kıbrıs

Mesaj gönderen burak_us »

ewt arkadaşlar teşekkür edirim bugün problemimi çözdüm.
ekleme yaptıktan sonra komutların altına :

adotable1.active:=false;
adotable1.active:=true;
yazmam yeterli oldu sabanakman arkadasın dedıgı gb adotable1.requery; komutunu eklememde ısıme yaradı 3 gunluk arastırmalarım sonucunda 2 cozumude aynı anda bulamam brz moralımı bozsada gercekten sevındırıcı oldu ::P
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

sabanakman yazdı:...Requery metodunu kullanın. Bu metot kayıtların güncel halini süratli bir şekilde çekecektir....
:wink:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla