|
|
#1 (permalink) |
|
Üyelik Tarihi: 22.04.2003
Yer: İstanbul
Yaş: 26
Mesaj: 112
|
ASP'de database ilişkilendirme sorunu
Merhaba, Şu anda yapmakta olduğum sitenin database'i ile ilgili daha önce düşünemediğim çok ciddi bir sorunla karşı karşıyayım. Database'i oluştururken düşünmem gereken çok basit bir şeyi atlamışım maalesef. Şu anda site yayına konacağı için varolan database ile halletmem gerekiyor problemi. site bilgisayar parçaları ve bu parçalar kullanılarak toplanan bilgisayarlar hakkında. Sitenin veritabanında iki adet tablo var. Birincisi tüm parçaların yer aldığı "parca" tablosu; bu tabloda ID, ParcaTuru, Marka sutunları var. Diger tablo ise bu parçalar kullanılarak toplanmış bilgisayarların bulunduğu sistemler tablosu. Bu tabloda da ID, SistemAdı, Parca1, Parca2, Parca3....Parca24 gibi sutunlar var. Parca1, Parca2... sutunlarına parca tablosundan parçaların ID lerini yazdırıyorum. Sitede parça silme gibi bir özellik var. Benim sorunumda bu zaten. Herhangi bir parça silinince sadece parca tablosundan sildiriyorum. Dolayısıyla, eğer o parça sistemler tablosunun parçalarla alakalı 24 sutunundan birinde geçiyorsa sayfa hata veriyor. Bir parça silinmek istenince, o parçanın ID'sini sistemler tablosunda aratıp, o parçanın geçtiği tüm satırları bularak, o satırları da silmek istiyorum. Database'e ADO ile bağlanıyorum. Bu konuda yardım edebilirseniz çok sevinirim. |
|
|
|
|
|
#2 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,973
|
eğer geçtiği tüm satırları sileceksen;
aşağıdaki kodlar herhangi bir sutununda belirlenen ParcaID'si bulunan/yazan satırları tümüyle silecektir... [=sistemler tablosunda parçaların ID sini tuttuğunu varsayıyorum] Kod:
<% ParcaID = 25; set rs=server.createobject("adodb.recordset") SQL ="delete from sistemler where" for i=1 to 24 SQL=SQL + " Parca"& i &"=" & ParcaID if i<>24 then SQL=SQL+" or " next rs.open SQL,connection,1,3 %>
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 20.08.2001
Yer: İstanbul
Yaş: 30
Mesaj: 54
|
Merhaba,
Database'i tasarlarken dikkat edilmesi gereken en önemli konulardan bir tanesi de db'in relational bir yapıya sahip olmasıdır. Örneğin Table1.ParcaID , Table2.ParcaID birbine One-To-Many ilişki tipiyle bağlı olduğu zaman Table1.ParcaID silindiği zaman Table2.ParcaID lerin hepsi silecektir.Yani senin istediğin olay uzunca bir SQL cümlesi yazmaya gerek kalmadan gerçekleşecektir. böyle bir çözüm yolu üzerine yoğunlaşmanı tavsiye ederim. Kolay gelsin.
__________________
Sevgiler ve Saygılar ... |
|
|
|
|
|
#4 (permalink) |
|
Üyelik Tarihi: 09.12.2000
Yer: istanbul
Yaş: 30
Mesaj: 1,973
|
__________________
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney http://www.sipidik.com |
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 20.08.2001
Yer: İstanbul
Yaş: 30
Mesaj: 54
|
Selam,
Yo access'de de bu işlem kolaylıkla yapılabilir. Tools > Relationships adımları vasıtasıyla table'lar birbirine bağlanabilir.Bu yapıyı sağlamak için bağlanacak field'arın mutlaka uniqe numaralara sahip olması gerekiyor.Datatype' larda number,int vs. olmalı. Not : Başka yöntemlerde olabilir. Enforce Referential Integrity , Cascade update related fields, Cascade delete related records checked olmalı. Bu datayı çalıştıran arkadaş size çok büyük değilse tüm datayı silerek sadece table olarak bana göndersin ben boş bir zamanımda düzenleyip gönderebilirim. İyi çalışmalar.
__________________
Sevgiler ve Saygılar ... |
|
|
|
| Sponsorlu Bağlantılar | |
|
Zoque.Forum
Reklam
|
|
Zoque'a hoşgeldiniz!