IBDataSet Araya Kayit Eklemek.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
IBDataSet Araya Kayit Eklemek.
IBDataSet Araya Bir Kayit ekledigimde en son kayda atiliyor.
Ornegin 1 islem sirasi var.
1-
2-
.................. bu satiri insert eddim bilgilerle doldurdum asagiya inince en alt a gidiyor.
3-
4-
Ekledigim kaydin ekledigim satirda kalamasini istiyor.
Normal Table , ClientDataSet Öyle.
Ornegin 1 islem sirasi var.
1-
2-
.................. bu satiri insert eddim bilgilerle doldurdum asagiya inince en alt a gidiyor.
3-
4-
Ekledigim kaydin ekledigim satirda kalamasini istiyor.
Normal Table , ClientDataSet Öyle.
Bu senin index lerinle ilgilidir. Sıralamayıda ona göre yapar.
Benim tavsiyem eğer araya her zaman kayıt alman gerekiyorsa bir alan daha oluşturup mesela her kayıtta 10 ar 10 ar arttırırsan araya kayıt atabilirsin. Sıralamayı da ona göre yaparsın.
Kolay gelsin
Benim tavsiyem eğer araya her zaman kayıt alman gerekiyorsa bir alan daha oluşturup mesela her kayıtta 10 ar 10 ar arttırırsan araya kayıt atabilirsin. Sıralamayı da ona göre yaparsın.
Kod: Tümünü seç
Select * from TABLO_ADI Order By SIRA
indexlerimi : ÖRNEK - Firma_kodu
SELECT * FROM TABLO_ADI ORDER BY FIRMA_KODU
Firma_kodu
10 a firmasi
20 b firmasi
40 c firmasi
50 d firmasi
z.firmasini 30 satira ekliyorum ama henüz data kayitli degil.Son Kayda Gönderiyor.
Kayit ettikden Sonra Yerine Giriyor. Benin Sorunun Kayit Etmeden Araya
Kaydi girmek , kayit edilesine kadar orada kalmasini saglamak.
SELECT * FROM TABLO_ADI ORDER BY FIRMA_KODU
Firma_kodu
10 a firmasi
20 b firmasi
40 c firmasi
50 d firmasi
z.firmasini 30 satira ekliyorum ama henüz data kayitli degil.Son Kayda Gönderiyor.
Kayit ettikden Sonra Yerine Giriyor. Benin Sorunun Kayit Etmeden Araya
Kaydi girmek , kayit edilesine kadar orada kalmasini saglamak.
Geçici olarak şöye bişi uygulayabilirsin.
Firma kodunu 30 belirlersin ve post edersin. Sonra o kayda gelirsin ve editlersin. O zaman diğer bilgileri girerken senin istediğin yerde olacaktır. Commit edersen kalıcı olarak kaydedersin. Kesin kayıt olmayacaksa rollback yaparsın.
Başka yolu var mı bilmiyorum. Umarım işine yarar.
Firma kodunu 30 belirlersin ve post edersin. Sonra o kayda gelirsin ve editlersin. O zaman diğer bilgileri girerken senin istediğin yerde olacaktır. Commit edersen kalıcı olarak kaydedersin. Kesin kayıt olmayacaksa rollback yaparsın.
Başka yolu var mı bilmiyorum. Umarım işine yarar.
s.a.
recno o anki indekse göre kaydın sırasını verir. yani recno yu değişitrme şansın yok.
olay tamamen indeks ve refresh ile alakalı. ibdataset yeni girilen kayıtları en sona atar. commit edip. tabloyu kapatıp açarsan indekse göre olması gereken yere geçmesi lazım.
kolay gelsin.
recno o anki indekse göre kaydın sırasını verir. yani recno yu değişitrme şansın yok.
olay tamamen indeks ve refresh ile alakalı. ibdataset yeni girilen kayıtları en sona atar. commit edip. tabloyu kapatıp açarsan indekse göre olması gereken yere geçmesi lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Peki Kayit Edmeden Araya Eklemek istedigim Kayitlarin orada kalmasini nasil saglayacagim.
normal Table 'de kayit edmeden ekledigim kayitlar ekledigim yerde kaliyor bunun IBDATASET Bir çözümü yokmu.
Sanki SELECT * FROM MUSTERI ORDER BY MUS_KODU
Sadece ilk yuklediginde gecerli gibi sonraki hareketleri bu siraya bagimli kalmiyor.
normal Table 'de kayit edmeden ekledigim kayitlar ekledigim yerde kaliyor bunun IBDATASET Bir çözümü yokmu.
Sanki SELECT * FROM MUSTERI ORDER BY MUS_KODU
Sadece ilk yuklediginde gecerli gibi sonraki hareketleri bu siraya bagimli kalmiyor.
selam eğer proğramınınızda Pk kullanmış iseniz araya kayıt eklerken en sona kayıta gitmesi normaldir .Bu refresh veya commit ile alakalı değil bence .eğer illa araya kayıt eklemek istiyosanız o zaman tablolarında generator tanımlamayacan ve Pk kullanmıyacan .Başka çözümünüde düşünemiyom.eğer order by kullansanda sadece o anda kayıt eklendiğini görürsün sonra yine en son kayıda gitttiği görülür.
kolay gelsin
kolay gelsin
master detay tablo yapısından kaynaklanıyor olabilir diye veritabanı üzerinde denedim. bir tane tablo oluşturdum . bir tane de integer tipli alan oluşturdum. ve araya kayıt ekledim. her seferinde sona ekliyor. bunu delphi tarafında da yaptım değişien bişey yok. tablo tek tablo. master detail falan yok. bir türlü çözemedim.
deneme
--------
alan (integer)
deneme
--------
alan (integer)
şöyle bir çözüm buldum gayet düzgün çalışıyor.
[code]konular (table)
---------
id (pk)
konu (varchar 10)[/code]
veritabanına;
[code]CREATE PROCEDURE IDINCKONULAR (
GELENID INTEGER)
AS
DECLARE VARIABLE SECID INTEGER;
begin
for
select id from konular where id>=:gelenid order by id desc into :secid
do
begin
update konular set id=id+1 where id=:secid;
end
insert into konular (id) values (:gelenid);
suspend;
end[/code]
delphiye bir button ve icine;
[code]
var bos:string;
bos:=konularID.Text;
IBSQL1.Close;
IBSQL1.SQL.Text:='execute procedure idinckonular ('+konularID.Text+')';
IBSQL1.ExecQuery;
konular.close;konular.open;konular.Locate('id',bos,[]);[/code]
--
kolay gelsin

[code]konular (table)
---------
id (pk)
konu (varchar 10)[/code]
veritabanına;

[code]CREATE PROCEDURE IDINCKONULAR (
GELENID INTEGER)
AS
DECLARE VARIABLE SECID INTEGER;
begin
for
select id from konular where id>=:gelenid order by id desc into :secid
do
begin
update konular set id=id+1 where id=:secid;
end
insert into konular (id) values (:gelenid);
suspend;
end[/code]
delphiye bir button ve icine;

[code]
var bos:string;
bos:=konularID.Text;
IBSQL1.Close;
IBSQL1.SQL.Text:='execute procedure idinckonular ('+konularID.Text+')';
IBSQL1.ExecQuery;
konular.close;konular.open;konular.Locate('id',bos,[]);[/code]
--
kolay gelsin