değerli forum kardeşlerim;
Delphi ortamında msql server 2000 veri tabanı sunucusu üzerine bir çok program geliştirdim fakat bunlar hep tek kullanıcılı yani örnek vermek gerekirse bir kullanıcı farura kaydederken başka bir kullanıcı da fatura kaydedecek olsun idlerim birbirine giriyor yani kullandığım kod şu şekilde
yapı kısaca bir fatura bir de fatura satırları olsun ve ben fatura ekle deyince bana enson id neyse onu bir arttır demişim ve satırları da o fatura.id bağlayıp faturayı da o fatura.id ile kaydediyorum sıkıntı yok ama aynı anda bir başka kullanıcı da fatura eklemeye çalışıyor diyelim ve benim tablo hala ınsertte oldugu için o kullanıcıya da aynı fatura.id yi veriyor bu sorunu ben dolaylı olarak
ekle denilir denilmez hemen bir büyük numaralı bir kayıt ekleyip post edip tekrar edit eden bir kodum var
örn:
*************
en büyük id bulan tablo kodum şu şekilde
maxfaturaid.close;
maxfaturaid.sql.clear;
maxfaturaid.sql.add('select max(id) from fatura');
maxfaturaid.open;
***********
fatura.insert;
faturaid.value:=maxfaturaidcolumn1.value+1;
fatura.post;
fatura.edit;
*******
böylelikle kendime bir sıradaki id yi tahsis etmiş oluyorum fakat bence bu işin yöntemi bu deildir ve bu amatörce bir yöntemdir bunun gerçek çözümü nedir ?
bu konuda değerli yardımlarınızı bekliyorum
Çok kullanıcılı bir program yazmak ***
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Çok kullanıcılı bir program yazmak ***
En son oguthan tarafından 14 Kas 2006 03:00 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
oguthan
Öncelikle aramıza hoş geldiniz
Sanırım kuralları okudunuz. Hemen kurallara uygun mesajını düzeltirsen kimse görmez
Sanırım kuralları okudunuz. Hemen kurallara uygun mesajını düzeltirsen kimse görmez

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Re: Çok kullanıcılı bir program yazmak ***
Bu işin çözümü id lerde otomatik artan alanlar kullanmaktır. Ayrıca transaction yapısına hakim olmaktır.oguthan yazdı: ***********
fatura.insert;
faturaid.value:=maxfaturaidcolumn1.value+1;
fatura.post;
fatura.edit;
*******
böylelikle kendime bir sıradaki id yi tahsis etmiş oluyorum fakat bence bu işin yöntemi bu deildir ve bu amatörce bir yöntemdir bunun gerçek çözümü nedir ?
Otomatik artan alan kullandığınızda id yi sunucu kendisi arttıracaktır. Bu işi de transaction koruması altında yapacağından, aynı id yi alma gibi bir sorununuz olmayacak.
Forumu araştırdığınızda çok fazla yanıt bulacaksınız. Benim verdiklerim başlangıç arama kelimeleri olsun.