Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Λάθος Query, σωστό αποτέλεσμα!

  •  11-09-2009, 10:24

    Λάθος Query, σωστό αποτέλεσμα!

    Καλημερίζω την παρέα.

    Εχτές, εντελώς τυχαία, ανακάλυψα ένα «λάθος» που είχα κάνει σε κάποιο site που έχω φτιάξει, αλλά χωρίς να δημιουργεί πρόβλημα Smile

    Έχω φτιάξει, λοιπόν, μια function, η οποία διαβάζει κάποια data από ένα table μιας access (OleDbConnection) και αφού τα επεξεργαστεί γυρνάει ένα array. Το query είναι κάπως έτσι:

    strSQL = "select pedio1 from table1 a, table2 b, table3 c " & _
                  "where " & _
                  "mpla mpla mpla " & _
                  "mpla mpla mpla " & _
                  "and a.dd = @pDD and a.mm = @pMM " & _
                  "union " & _
                  "select pedio2 from table4 a,  table5 b, table6 c " & _
                  "where " & _
                  "mpla mpla mpla " & _
                  "mpla mpla mpla " & _
                  "and a.days = datediff('d',cdate(@p1),cdate(@pCurDate))"

    Στην συνέχεια δηλώνω ένα oledbcommand και δίνω τιμές στις παραμέτρους ως εξής:

    MyCommand.Parameters.AddWithValue("@pDD", strDD)
    MyCommand.Parameters.AddWithValue("@pMM", strMM)
    MyCommand.Parameters.AddWithValue("@p1", strP1)
    MyCommand.Parameters.AddWithValue("@pDate", strDD & "/" & strMM & "/" & strYY)

    Η function έπαιζε σωστά και μου επέστρεφε τα σωστά αποτελέσματα. Αν όμως την παρατηρήσετε λίγο καλύτερα θα δείτε ότι η 4η παράμετρος έχει ένα θεματάκι αφού στο query είναι δηλωμένη σαν @pCurDate ενώ όταν την γεμίζω έχει σαν όνομα @pDate.

    Υποπτεύομαι ότι το «κλειδί» είναι στο OleDbConnection και στο oledbcommand το οποίο ίσως να μην δίνει σημασία στα ονόματα, αλλά στην σειρά των παραμέτρων.....

    Επειδή αυτό το ανακάλυψα εχτές το βράδυ αργά, και σήμερα μέχρι αργά το βράδυ δεν προβλέπετε να έχω χρόνο να το δω (ελέω RPG και i5 Stick out tongue ) οποιοσδήποτε με διαφωτίσει πως έπαιζε το query είναι ευπρόσδεκτος! Smile

    Διαμάντης


    A wise man does not urinate against the wind Smile
    Δημοσίευση στην κατηγορία: , ,
Δείτε όλες τις δημοσιεύσεις της Θεματική Ενότητας
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems