Genellikle ilişkili tablolar, ilişkili verilerle çalışırken kısa veritabanı bağlantıları yapıyorum. Belli sorguya ait gelen verilerin sadece Unique ID lerine ihtiyacım oluyor. Bu verileri başka bir yerde kullanacağım ama bir sürü satır kod yazmam gerekiyor.
Önce veritabanı bağlantısı yap, sonra döngüye sok, sonra bu ID leri yanyana koyup virgülle ayır. PHP değil ki bu tek satırla tabloya bağlanıp, ikinci satırlada fetch_array() yapıp diziye alabilesin?
ASP RecordSet te Getrows metodu ile bunları bir arraye atayabiliyorsunuz. Fakat bu array 2 boyutlu olduğu için Join() ile birleştirip tek String haline getiremiyorsunuz. Çünkü Join() fonksiyonu multi-dimensional arrayleri kabul etmiyor. Yani tek tek string birleştirme yapmanız gerekiyor.
İşinize yarayabilecek fonksiyonum;
<% Function VeriSorgu(Query,dbConnection) Set rsSorgu = Server.CreateObject("ADODB.RecordSet") rsSorgu.Open Query,dbConnection,1,3 VeriSorgu = "-1" If Not rsSorgu.Eof Then SorguDizi = rsSorgu.Getrows For SorguLoop = 0 To UBound(SorguDizi,2) VeriSorgu = VeriSorgu & "," & SorguDizi(0,SorguLoop) Next End If rsSorgu.Close : Set rsSorgu = Nothing End Function %>
Fonksiyona değer Olarak Query ve Database bağlantınızın adını veriyorsunuz. Çıktı olarak
-1,15,266,26126 olarak bir veri döndürüyor. Fakat verdiğiniz sorguda ID alanı gelen ilk değer olmalı…
Kullanım örnekleri
<% AktifYazilar = VeriSorgu("Select VeriID from tblYazilar Where Durum=1",dbConn) %>
Bu sayede AktifYazilar string inde aktif yazıların ID leri olacak. String in başında -1 değeri var, bunu isterseniz replace edebilirsiniz.
SQL Sorgularında in() fonksiyonu kullandığım için bu haliyle kullanıyorum, böylece geri dönen değer boş olduğu zamanlar SQL Sorgusunda hatayla karşılaşmıyorum.