Gruplu Artan Alan Oluşturma
Gruplu Artan Alan Oluşturma
Arkadaşlar merhaba,
bir tabloda gruplu artan alan oluşturmak mümkün mü?
Elimde 4 kullanıcının girmesi gereken veriler var. Her girdikleri kayıt için otomatik numara verdiriyorum ve her kullanıcı girdiği kaydın 1'den başlayarak artması gerekiyor. Bunun için de 4 ayrı DB oluşturmak istemiyorum açıkçası.
Teşekkürler..
bir tabloda gruplu artan alan oluşturmak mümkün mü?
Elimde 4 kullanıcının girmesi gereken veriler var. Her girdikleri kayıt için otomatik numara verdiriyorum ve her kullanıcı girdiği kaydın 1'den başlayarak artması gerekiyor. Bunun için de 4 ayrı DB oluşturmak istemiyorum açıkçası.
Teşekkürler..
Re: Gruplu Artan Alan Oluşturma
Kullanıcı giriş yaparken kimin giriş yaptığını bu tablodaki bir alana yazdırıyorusunuz değil mi ? İşte bunu kullanacaksınız. Before Post olayında (kaydet butonuna bastığında da diyebilirim) başka bir Query ile aşağıdaki gibi bir select yazıp elde edeceğiniz maksimum değere 1 eklemeniz kafi.
veya
FieldByName('SonSayi').AsInteger değerin senin 1 nolu kullanıcı için veya diğer örnekteki 'ARMAN' kullanıcısı için verdiğin en son değeri yazar. Buna bir eklersen ve yeni kayda bunu yazarsan istediğin şekilde olur.
- Unutma ki, bu alanda kullanıcı sayın kadar aynı rakamdan değer göreceğinden ArtanAlan fieldin UNIQUE olmamalı.
Kod: Tümünü seç
SELECT MAX(ArtanAlan) AS SonSayi FROM OrtakTablo WHERE KullaniciID = 1
Kod: Tümünü seç
SELECT MAX(ArtanAlan) AS SonSayi FROM OrtakTablo WHERE Kullanici = 'ARMAN'
- Unutma ki, bu alanda kullanıcı sayın kadar aynı rakamdan değer göreceğinden ArtanAlan fieldin UNIQUE olmamalı.
Re: Gruplu Artan Alan Oluşturma
Teşekkür ederim Muharrem bey,
Verdiğiniz öneriyi kullanmak benimde aklıma geldi fakat bu işlemi trigger oluşturarak veritabanına yaptırmak mümkün mü?
Verdiğiniz öneriyi kullanmak benimde aklıma geldi fakat bu işlemi trigger oluşturarak veritabanına yaptırmak mümkün mü?
Re: Gruplu Artan Alan Oluşturma
Veritabanı değil, web sunucusundaki bir kaç satırlık kod ile mümkün olması lazım. Örneğin
şeklinde bir yapı size yeni ismiyle döndürür. Ancak sunucudakidosya.doc şeklinde statik bir yapı değil,
(1) Bir döngü ile bir klasördeki belli uzantılı dosyaların önce listelenmesi
(2) Sonra da bu döngüdeki istenen dosyanın sıra nosuna veya vereceğiniz ID'sine göre talep edip o zaman downloada başlamasını sağlamalısınız.
Veritabanında değil yazılım ayağında yapacağınız bir işlemdir.
Kod: Tümünü seç
<a href="sunucudakidosya.doc" download="gecicidosya.doc">indir</a>
(1) Bir döngü ile bir klasördeki belli uzantılı dosyaların önce listelenmesi
(2) Sonra da bu döngüdeki istenen dosyanın sıra nosuna veya vereceğiniz ID'sine göre talep edip o zaman downloada başlamasını sağlamalısınız.
Veritabanında değil yazılım ayağında yapacağınız bir işlemdir.
Re: Gruplu Artan Alan Oluşturma
Merhaba ,
Kullandığınız veri tabanı MySQL ise aşadağıki gibi bir index ekleyerek artan alanın gruplu olarak yeniden başlayarak artmasını trigger vb bulaşmadan direk VT ye yıkabilirsiniz.
Yukarıdaki Örnekte, "yer" alanının alacağı her yeni değer için "evrakno" alanına tanımlı olan AUTO INCREMENT yeniden saymaya başlıyor.
kolay gelsin..
Kullandığınız veri tabanı MySQL ise aşadağıki gibi bir index ekleyerek artan alanın gruplu olarak yeniden başlayarak artmasını trigger vb bulaşmadan direk VT ye yıkabilirsiniz.
Kod: Tümünü seç
CREATE TABLE `evrakid` (
`yer` int(10) NOT NULL,
`evrakno` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`yer`,`evrakno`)
) ENGINE=MyISAM;
kolay gelsin..
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Gruplu Artan Alan Oluşturma
@mrmarman ,
fakat sadece MyISAM tablo yapısı bunu destekliyor, InnoDB ve diğer tablo yapılarında yapı desteklenmiyor.
Bilginize.
İyi çalışmalar.
fakat sadece MyISAM tablo yapısı bunu destekliyor, InnoDB ve diğer tablo yapılarında yapı desteklenmiyor.
Bilginize.
İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
Re: Gruplu Artan Alan Oluşturma
Merhaba,
MS SQL tarafında lazım ilk akla geleni kullanmak daha mantıklı şu aşamada. İlginiz için teşekkür ederim.
MS SQL tarafında lazım ilk akla geleni kullanmak daha mantıklı şu aşamada. İlginiz için teşekkür ederim.
Re: Gruplu Artan Alan Oluşturma
Hem performans sağlamak hem de tüm vt lerde çalışabilen (elbetteki oradan oraya taşımayacağız ama ansi dışına çıkmamak için) kod elde edebilmek için, sadece trigger çözümünün önerilmesi gerekmiyor muydu arkadaşlar ?
Ömür Ölmez
Re: Gruplu Artan Alan Oluşturma
Merhaba @omurolmez aşağıdaki mesajım için söylüyorsun sanırım. Şimdi farkettim, sen de okuduğunda göreceksin ki, başka başlıktaki bir sorunun cevabını yanlışlıkla buraya yazmışım. Bu konu gruplu artan alanlar iken verdiğim cevap download edilecek dosyanın özel yeniden isimlendirilmiş haliyle download edilmesi üzerine idi...omurolmez yazdı:Hem performans sağlamak hem de tüm vt lerde çalışabilen (elbetteki oradan oraya taşımayacağız ama ansi dışına çıkmamak için) kod elde edebilmek için, sadece trigger çözümünün önerilmesi gerekmiyor muydu arkadaşlar ?
- Trigger tabii ki akıllı veritabanlarında, direkt veritabanından sunulan en ideal bir çözümdür.
mrmarman yazdı:Veritabanı değil, web sunucusundaki bir kaç satırlık kod ile mümkün olması lazım. Örneğin
şeklinde bir yapı size yeni ismiyle döndürür. Ancak sunucudakidosya.doc şeklinde statik bir yapı değil,Kod: Tümünü seç
<a href="sunucudakidosya.doc" download="gecicidosya.doc">indir</a>
(1) Bir döngü ile bir klasördeki belli uzantılı dosyaların önce listelenmesi
(2) Sonra da bu döngüdeki istenen dosyanın sıra nosuna veya vereceğiniz ID'sine göre talep edip o zaman downloada başlamasını sağlamalısınız.
Veritabanında değil yazılım ayağında yapacağınız bir işlemdir.