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

 

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

Passing coma delimeted parameters to stored procedure

Îåêßíçóå áðü ôï ìÝëïò zeon. Τελευταία δημοσίευση από το μέλος raPhaeL στις 29-09-2005, 17:15. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  29-09-2005, 15:12 5797

    Passing coma delimeted parameters to stored procedure

    Γεια χαρά. Το ερώτημά μου είναι το εξής. Θέλω να περάσω σε μια stored procedure
    ένα string από ids. H stored procedure στην ουσία κάνει select βάσει των ids. Σκέφτηκα
    μια υλοποίηση με temporary table, αλλά αν έχω πολλά ids από πολλά tables
    θα το γονατίσω. Θέλω να αποφύγω το απλό select. Μπορεί κανείς να βοηθήσει?
  •  29-09-2005, 15:22 5798 σε απάντηση της 5797

    Απ: Passing coma delimeted parameters to stored procedure

    Αν και δεν καταλαβαίνω τι εννοείς όταν λες "πολλά ids από πολλά tables", ένας απλός τρόπος να το κάνεις είναι ο ακόλουθος:

    exec('SELECT * FROM table WHERE ID in (' + @strIDS + ')')

    Αν θες να κάνεις κάτι πιο πολύπλοκο, τότε μάλλον πρέπει να εξηγήσεις λιγο καλύτερα τι είναι αυτό που θες να πετύχεις... :)
    Patrick
  •  29-09-2005, 15:35 5800 σε απάντηση της 5798

    Απ: Passing coma delimeted parameters to stored procedure

    Εννοώ ότι φτιάχνω μια procedure που κάνει select από πολλά tables με joins βάσει βέβαια κλειδιών. Θέλω να περάσω μέσα στην procedure strings με τιμές των ids.
    Πχ ας πούμε έχω
    select table1.name1, table2.name2, table3.name3
    from table1
    inner join .....
    inner join...
    Where table1.table2_id in (..)
    and table2.table3_id in (...)

    μέσα στην procedure. Θέλω στις παρενθέσεις να περάσω strings από τιμές των ids πχ. 1,2,3
    Το πρόβλημα είναι πως μου χτυπάει "Error converting data type varchar to numeric". Μπορώ να χρησιμοποιήσω temorary tables και να εκτελεστεί. Αλλά αν τα strings που θα περάσω είναι πολλά πολύ φοβάμαι πως η απόδοση θα είναι χάλια.
    Ελπίζω να έγινα λίγο πιο κατανοητός τώρα. Ε?
  •  29-09-2005, 16:38 5802 σε απάντηση της 5800

    Απ: Passing coma delimeted parameters to stored procedure

    Μπορείς λοιπόν να περνάς ένα string της μορφής:

    "1,2,3@5,7,3@6,9,11"

    Κάνεις split στο @ και τα επιμέρους strings τα βάζεις μέσα στο query σου με τον τρόπο που έγραψα προηγουμένως...
    Patrick
  •  29-09-2005, 17:15 5803 σε απάντηση της 5797

    Απ: Passing coma delimeted parameters to stored procedure

    Δές και το : Δυναμικό WHERE IN() χωρίς δυναμικη SQL

    Sex is like programing; One mistake, and you will have to support it for the rest of your life…
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems