Arkadaşlar biraz karışık bir durum. Mantık olarak çözemedim yardımcı ollursanız sevinirim...
Bir table düşünün ve içinde bir sürü kayıt var.. ama bazılar birbirinle bağlı
3 tane alan düşünün..
ANAID
ALTID
ADSOYAD
ANAID - ALTID
1 - 2
2 - 7
7 - 9
Şimdi bu nedemek? Bu şu anlama geliyor
2, 1 e bağlı
7, 2 ye dolaylı yoldan 1 e bağlı
9, 7 ye, dolaylı yoldan 2 ve 1 e baglı....
9 a bağlı hiç bir şey yok değer null
Şimdi ben öyle bir kod vermek istiyorum ki,
ANAID si 1 olan kayda çift tıkladığımda açılan pencerede bana
1, 2, 7, ve 9 u getirecek
ANAID si 2 olan kayda çift tıkladığımda açılan pencerede bana
2, 7 ve 9 u getirecek
7 olana tıkladığımda
7 ve 9 u
9 olana tıkladığımda ise AnaIDsi sadece 9 olanı getirecek çünkü ALTID sinin değeri NULL, hiç bir kayıt yok buna bağlı.. Yani bunun amacı birbirine bağlı olan kayıtları listelemek...
Neden hepsini farkli yapiyorum ve neden bu yoldan yapmak istiyorum?
Çünkü ben 7 olana çift tıkladığımda onun bir üst bağlı olduğu 2 ve 1 in kayıtlarını görmek istemiyorum.
Düşündüğüm bir yol var, çift tiklanilan değeri al.... örneğin 2
SELECT * FROM TABLO WHERE ANAID = '2' OR ALTID = '7' OR ALTID = '9'
Ancak burada 7 ve 9 değerlerine ulaşmak zor .. 7 ye ulaşmak kolay tamam ancak 9 a 7 yi kontrol ettirerek ulaşmak gerekiyor..
burada bir repeat döngüsü düşündüm ama beceremedim
Repeat
x
x
x
until ALTID = NULL
Biraz karışık bir konu belki de anlatımım biraz karışık gelmiş olabilir umarım anlamışsınızdır.. Eğer anlatamadıysam, anlatamadığım kısımları tekrar açıklayabilirim
Şimdiden herkese teşekkürler, kolay gelsin
Database Kayitlari ile ilgili bir soru
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Hocam bu bahsettiğiniz bağıl liste ve tahminen yapmak istediğiniz de bir tür ürün ağacı olabilir tam olarak bir şey diyemiyorum bunun için sağlam birbirine bağlı döngüler kurabilirsin veya veritabanı tarafında sp ile halledebilirsiniz. Ama bana göre en kolay yöntem database çok büyük değilse bunu döngülerle halletmen değil ise veritabanını söylersen yardımcı olabiliriz ok. Kolay Gelsin
evet ürün ağacı gibi birşey yani aynen dediğiniz gibi .. SP kullanmayı bilmiyorum kayıtlar da büyük olucak yani bayağı fazla olacak.. SP hiç kullanmadım hakkında da pek bişey bilmiyorum bu structured procedure galiba (yanlis hatirliyor olabilirim)delphist yazdı:Hocam bu bahsettiğiniz bağıl liste ve tahminen yapmak istediğiniz de bir tür ürün ağacı olabilir tam olarak bir şey diyemiyorum bunun için sağlam birbirine bağlı döngüler kurabilirsin veya veritabanı tarafında sp ile halledebilirsiniz. Ama bana göre en kolay yöntem database çok büyük değilse bunu döngülerle halletmen değil ise veritabanını söylersen yardımcı olabiliriz ok. Kolay Gelsin
veritabanim MSSQL
MT
ANAID
ALTID
bu kadar
yani bunlara göre yaparsan ben uyarlarim dediklerinden.. Bu arada msn gibi birşey varsa oradan devam edelim, konuyu eğer halledersek ben de sonunda foruma çözümünü yazarim. daha hızlı sonuç elde etmiş oluruz msnden devam edersek
msnim: onur@glenfx.net
ALTID
bu kadar

yani bunlara göre yaparsan ben uyarlarim dediklerinden.. Bu arada msn gibi birşey varsa oradan devam edelim, konuyu eğer halledersek ben de sonunda foruma çözümünü yazarim. daha hızlı sonuç elde etmiş oluruz msnden devam edersek
msnim: onur@glenfx.net
MT
selam sornunuzu tam anlıyamamakla birlikte size şöyle söyliyim.anladığım kadarı ile siz bağlı olan kayıtlarmı yoksa fieldlermi
eğer bağlı olan kayıtlar ise 2 ye bağlı olan kayıt tabloda hangi sırada ve sutunda ise mesela bu kayıtlarınız bir dbgridde gösterin daha sonra
şöyle bir şey olabilir .bir arama kullanabilirsinzi adam diyeli editin içine 2 girecek.ve dbgridin sutun ve satır sayısını eof komutu ile bulunabilir aslında bunun gibi yöntemlerle yapılabilir aslında.
eğer bağlı olan kayıtlar ise 2 ye bağlı olan kayıt tabloda hangi sırada ve sutunda ise mesela bu kayıtlarınız bir dbgridde gösterin daha sonra
şöyle bir şey olabilir .bir arama kullanabilirsinzi adam diyeli editin içine 2 girecek.ve dbgridin sutun ve satır sayısını eof komutu ile bulunabilir aslında bunun gibi yöntemlerle yapılabilir aslında.