Şimdi Ara

Sql Deyimi Hatasi - Yardim Lütfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
352
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba Arkadaslar.

    Kisaca;
    Bir sayfada takvimim var (myLittleCalendarObj) ve kullanici bu takvimde tikladigi tarihi (ornegin : 26.07.2006 gibi) myLittleCalendarObj.mlcDate ile alarak birdegiskene atiyorum.

    daha sonra veritabanindaki rezervasyon tablosunun icinde kayitli olan rezervasyonlardan istedigim kriterdekilerini görüntülüyorum.

    Fakat problem su ki benim takvimdeki kullanicinin tikladigi tarihe uyan rezervasyon kayitlarini goruntuleyemiyorum.
    Yani rezervasyon tablosundaki kayitli rezervasyonlardankullanicinin tiklamis oldugu ornegin 26.07.2006 olanlarini gosteremiyorum.
    Anladigim kadariyla bir tip hatasi var Where deyimindeki kiyaslamalarda tipler uyusmuyor ama tam olarak cozemedim.Yanlis da yonlendiriyor olabilirim.

    Asagidaki kodlari inceleyerek bana yardimci olabilirseniz cok sevinirim.

    ---

    <%
    Dim tkgun1
    tkgun1= (myLittleCalendarObj.mlcDate)
    'myLittleCalendarObj.mlcDate kullanicinin tikladigi aktif tarihtir

    Set ObjProducts_MasaR = Createobject("ADODB.Recordset")
    ObjProducts_MasaR.open " SELECT TblRezervasyon.ComID, TblRezervasyon.ProdID, TblCustomers.StrCustomerName, TblRezervasyon.StrComments, TblRezervasyon.StrPoint, TblRezervasyon.StrDate, TblRezervasyon.StrTime, TblRezervasyon.Ssifirbir, TblRezervasyon.Sbiriki, TblRezervasyon.Sikiuc, TblRezervasyon.Sucdort "_
    &" FROM TblCustomers INNER JOIN TblRezervasyon ON TblCustomers.CustomerID = TblRezervasyon.CustomerID "_
    &" WHERE (((TblRezervasyon.ProdID)=" & Request("ProdID") & ")) AND (((TblRezervasyon.StrDate)=tkgun1))"_
    &" ORDER BY TblRezervasyon.ComID DESC", ObjConn , 1 , 3

    If ObjProducts_MasaR.EOF And ObjProducts_MasaR.BOF Then %>
    <b>herhangi bir rezervasyon bulunmamaktadır.</b>
    <%
    Else
    Do While Not ObjProducts_MasaR.EOF
    %>
    <%=ObjProducts_MasaR("StrComments")%><br>
    <%=ObjProducts_MasaR("StrCustomerName")%><br>
    <%=ObjProducts_MasaR("StrDate")%> <br>
    <%=ObjProducts_MasaR("StrTime")%><br>
    <%=ObjProducts_MasaR("ProdID")%><br>
    <%=ObjProducts_MasaR("StrPoint")%><br>
    <%=ObjProducts_MasaR("Ssifirbir")%><br>
    <%=ObjProducts_MasaR("Sbiriki")%><br>
    <%=ObjProducts_MasaR("Sikiuc")%><br>
    <%=ObjProducts_MasaR("Sucdort")%><br><br>

    <%
    ObjProducts_MasaR.MoveNext
    Loop
    End If
    %>


    burda herhangi bir kayit bulamiyor.Oysa ki yukaridaki Sql deyiminde WHERE den sonra ;

    &" WHERE (((TblRezervasyon.ProdID)=" & Request("ProdID") & ")) AND (((TblRezervasyon.StrDate)=Ali))"_

    degilde asagidaki gibi ;

    &" WHERE (((TblRezervasyon.ProdID)=" & Request("ProdID") & ")) "_

    yazdigimda istedigim butun rezervasyonlari goruntuleyebiliyorum ama bu seferde o eleyip goruntuledigim kayitlar arasindan istedigim tarihdekileri (kullanicinin tiklamis oldugu aktif tarihteki yani myLittleCalendarObj.mlcDate deki tarihi) goruntuleyemiyorum.

    Yardimci olursaniz cok sevinirim. Simdiden Cok tesekkurler..



    _____________________________




  • :) Veritabanına tarih kaydederken string olarak kaydetmenizi tavsiye ederim. SQL içerisinden gerekli dönüştürme işlemlerini yapabilirsiniz. Eğer Datetime olarak kaydediyorsanız. Tarihi tarihlerde şöyle bir kod sana yardımcı olabilir.

    CONVERT(CHAR (10),TarihField,103)

    Bu kod SQL içinde Tarih içeren sahayı string tipine çevirir. Böylece sorgularında hata oluşmaz.
    _____________________________
    "Data: Hayat Like Ref Null."
  • &" WHERE (((TblRezervasyon.ProdID)=" & Request("ProdID") & ")) AND (((TblRezervasyon.StrDate)=Ali))"_


    + buradan anladığım kadarıyla sen tarih le stringi karşılaştırıyorsun problem ondan kaynaklanıyor oraya ali yerine tarih yazmayı denedinmi?
    _____________________________
  • &" WHERE (((TblRezervasyon.ProdID)=" & Request("ProdID") & ")) AND (((TblRezervasyon.StrDate)=Ali))"_

    deyimindeki Ali degiskeni yada tkgun1 degiskeni daha onceden
    Dim tkgun1
    tkgun1= (myLittleCalendarObj.mlcDate)
    'myLittleCalendarObj.mlcDate kullanicinin tikladigi aktif tarihtir
    seklinde tanimlanmis. yani Ali yada tkgun1 degiskeni icerisinde 27.06.2006 gibi bir ifade var. Zaten takvime tiklayan kullanici istedigi tarihi bu degisken icine atiyorum. yani myLittleCalendarObj.mlcDate aslinda takvime tiklandiginda hangi tarihse onu iceriyor.

    Ama tabiki 26.07.2006 yazmasina ragmen heralde bunu string olarak aliyor.

    Diger bi konu da Rezervasyon tablosunun icindeki StrDate de kayitli olan rezervasyonlarin tarihlerini aliyor ve Date/Time türünde ve kisa tarih biciminde yani 26.06.2006 gibi... (TblRezervasyon.StrDate)

    anladigim kadariyla ayni formatlarda olmasina ragmen TblRezervasyon.StrDate icerisindeki degerler 26.07.2006 gibi ama Date/Time türünde ve myLittleCalendarObj.mlcDate yada bunu atadigim Ali veya tkgun1 degiskeni icerisindek ideger de 26.07.2006 gibi ama string türünde oldugundan sorgu calismiyor.

    Bu durumda myLittleCalendarObj.mlcDate 'yi yada bunun icerisindeki veriyi degiskeneatadigim Ali veya tkgun1 deguiskenini Date/Time olarak mi tanitmaliyim ve Nasil ???

    yada TblRezervasyon.StrDate türünü date/Tinme olarak degilde string olarak mi tanitmaliyim ???

    Bu durumda eger TblRezervasyon.StrDate trünü string olarak tanitirsam sorgu nasil olur ?

    Tesekkur Ederim
    _____________________________




  • Tarih formatını veritabanına string olarak veya datetime olarak almanız birşey değiştirmez herhangi bir SQL sorgusu gönderdiğinizde kıyas sorgularınızın hatasız dönmesi lazım ... Örnek vereyim ...

    "Select * from ip_Tablo where CONVERT(CHAR (10),tarihfield,103) = '" + DateTime.Now.ToShortDateString() + "'";

    Buradaki kodda veritabanımdaki field aslında datetime fakat ben onu stringe çevirip kıyaslatıyorum. Yani datetime değeri sorguda çeviriyorum. SQL sorgularında tarih formatı ile ilgili farklı hiyerarşiler vardır. Mesela tarihle ile ilgili sorgu döndürmek istediğinde #01.01.2006# gibi ibareler gerektiren durumlar olabilir. Eğer sorguda dönüşüm yaparsan bu sakıncaların hepsinin önüne geçmiş olursun .
    _____________________________
    "Data: Hayat Like Ref Null."
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.