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
adodataset ve adoquery problemi lütfen yardım....
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 37
- Kayıt: 03 Nis 2006 04:46
adoDataset
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...
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...
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
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.)
(Örn: ADOTable1.Requery; ADOQuery1.Requery; ADODataSet1.Requery vs.)
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
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
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
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)