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

 

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

Πρόβλημα σε query με like....

Îåêßíçóå áðü ôï ìÝëïò Adamantios. Τελευταία δημοσίευση από το μέλος Adamantios στις 24-03-2008, 21:36. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-03-2008, 18:22 41070

    Πρόβλημα σε query με like....

    Καλησπερίζω την παρέα!

    Γράφω μια μικρή εφαρμογούλα τις τελευταίες μέρες και αντιμετωπίζω ένα μικρό προβληματάκι.

    Κατ’ αρχήν να σας πω  ότι την εφαρμογή την γράφω με το Visual Web Developer 2005 Express Edition (σε VB) και σε access αλλά το πρόβλημα νομίζω ότι είναι άσχετο με τα παραπάνω.

    Όταν έχουμε λοιπόν, ένα qeuryακι της μορφής «select A, B from Table1 where A = @Param1» τότε πολύ απλά περνάμε την παράμετρο με την εντολή MyCommand.Parameters.AddWithValue("@Param1", strParam) κτλ κτλ.... Τι γίνετε όμως όταν στο queryακι αντί για ισότητα έχουμε Like, είναι δηλαδή της μορφής «select A, B from Table1 where A LIKE @Param1»; Πως πρέπει να το συντάξω για να μπορέσω να περάσω την παράμετρο;


    Ευχαριστώ για τον χρόνο σας.

     


    A wise man does not urinate against the wind Smile
  •  22-03-2008, 18:48 41071 σε απάντηση της 41070

    Απ: Πρόβλημα σε query με like....

    Καλάάάάάά αφήστε το!

    Το query το έγραφα «select A,B from Table1 where A like @Param» και πέρναγα την παράμετρο ως:  MyCommand.Parameters.AddWithValue("@pParam", "*" & strParam & "*") επειδή στην access δουλεύει το * στο Like αντί του %. Μόλις έβαλα όμως MyCommand.Parameters.AddWithValue("@pParam", "%" & strParam & "%") δούλεψε!

    Τώρα το γιατί δουλεύει έτσι.. θα σας γελάσω Smile

    Διαμάντης


    A wise man does not urinate against the wind Smile
  •  23-03-2008, 20:33 41080 σε απάντηση της 41071

    Απ: Πρόβλημα σε query με like....

    Ο λόγος είναι απλός: Στην SQL το wildcard είναι το %, όχι το *. Είναι καθαρά χαρακτηριστικό της Access ότι επιτρέπει τη χρήση του * επειδή αυτός ο χαρακτήρας χρησιμοποιείται και στα Windows. Σε οποιαδήποτε άλλη βάση όμως, το wildcard είναι το %
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  23-03-2008, 22:51 41081 σε απάντηση της 41080

    Απ: Πρόβλημα σε query με like....

    Παναγιώτης Καναβός:
    Ο λόγος είναι απλός: Στην SQL το wildcard είναι το %, όχι το *. Είναι καθαρά χαρακτηριστικό της Access ότι επιτρέπει τη χρήση του * επειδή αυτός ο χαρακτήρας χρησιμοποιείται και στα Windows. Σε οποιαδήποτε άλλη βάση όμως, το wildcard είναι το %

    ...μα η βάση μου είναι access Smile


    A wise man does not urinate against the wind Smile
  •  24-03-2008, 15:37 41099 σε απάντηση της 41081

    Απ: Πρόβλημα σε query με like....

    Η εξήγηση για αυτή την ελαφρώς ... ιδιαίτερη συμπεριφορά βρίσκεται στο Access wildcard character reference. Αρχικά η Access υποστήριζε το παλαιότερο πρότυπο SQL ANSI-89 το οποίο επέτρεπε το * για wildcard αντί για %. Το επόμενο standard, το ANSI-92 επιβάλει το %. Η Access χρησιμοποίησε και το % από τη στιγμή που άρχισε να συνεργάζεται με τον SQL Server, ο οποίος χρησιμοποιεί το ANSI-92. Ανάλογα με το αν δουλεύεις με Access Project ή Access Database, η Access θεωρεί ως default διαφορετικό χαρακτήρα.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  24-03-2008, 21:36 41109 σε απάντηση της 41099

    Απ: Πρόβλημα σε query με like....

    Ενδιαφέρον.... Θένξ! Smile

    A wise man does not urinate against the wind Smile
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems