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

 

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

Insert πρόβλημα

Îåêßíçóå áðü ôï ìÝëïò Tmark. Τελευταία δημοσίευση από το μέλος Tmark στις 12-04-2009, 18:40. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-04-2009, 15:21 49926

    Insert πρόβλημα

    Καλησπέρα παιδιά!Λοιπόν έτοιμάζω ένα project σε Visual Studio 2008 (C#) και έχω το εξής προβληματάκι..Έχω ένα πίνακα Persons με τις εξής στήλες
    • PersonID
    • Onoma
    • Eponimo
    • Tilefwno
    • Email
    Και έχω ένα δεύτερα πίνακα,τον Person_roles με τις εξής στήλες:
    • PersonID
    • RoleID
    • MonadaID
    Υπάρχει συσχετιση μεταξυ των 2 πινάκων με το Person ID και το Primary key του 2ου πίνακα είναι και οι 3 στήλες μαζί,ενλω του 1ου το PersonID
    Αυτο που θέλω να κάνω είναι να γράψω μια Stored Procedure για insert ενός νέου ατόμου(Insert into persons (mpla mpla) values (@Onoma,@Epomino,mpla mpla)
    To θέμα είναι πως θα πάρει ο 2ος πίνακας το PersonID της νεας εγγραφής ?θέλει νέο Insert στην ιδια Stored Procedure ή υπάρχει άλλος τρόπος?

    Knowing is not enough , you must apply.
    Willing is not enough , you must do.
  •  07-04-2009, 23:48 49940 σε απάντηση της 49926

    Απ: Insert πρόβλημα

    1. Χρησιμοποίησε το keyword OUTPUT ώστε να διαβάσεις την τιμή του id (INSERT INTO PERSONS(mpla mpla) OUTPUT INSERTED.PersonID VALUES());
    2. Στην stored procedure κάλεσε εσυ το generation του id κι όχι αυτόματα ο πίνακας (newid() function)
    3. Χρησιμοποίησε την @@SCODE_IDENTITY για να ξέρεις ποιο είναι το ID σου

    3 διαφορετικοί τρόποι που σκέφτηκα στα γρήγορα.


    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  08-04-2009, 09:30 49942 σε απάντηση της 49926

    Απ: Insert πρόβλημα

    Έχουμε κάνει αρκετές φορές αυτή τη κουβέντα.

    Τι βάση χρησιμοποιείς; Αν χρησιμοποιείς SQL Server, τότε μπορείς να στείλεις το INSERT (ή την κλήση της stored procedure) και να ακολουθείται με ένα SELECT.

    Δες εδώ:

    http://www.dotnetzone.gr/cs/forums/thread/25868.aspx

    http://www.dotnetzone.gr/cs/forums/thread/33458.aspx

    http://www.dotnetzone.gr/cs/forums/thread/8893.aspx


    Vir prudens non contra ventum mingit
  •  08-04-2009, 14:16 49960 σε απάντηση της 49942

    Απ: Insert πρόβλημα

    Ευχαριστώ για την βοήθεια..Το έλυσα με τον εξής τρόπο:

    DECLARE @PersonID int
    @personID=@@Identity

    Knowing is not enough , you must apply.
    Willing is not enough , you must do.
  •  08-04-2009, 14:52 49962 σε απάντηση της 49960

    Απ: Insert πρόβλημα

    Καλύτερα να χρησιμοποιήσεις την SCOPE_IDENTITY() αντι για @@IDENTITY καθώς έχει κάποια μειονεκτήματα το @@IDENTITY σε περίπτωση πχ triggers κλπ.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  09-04-2009, 20:28 50003 σε απάντηση της 49960

    Απ: Insert πρόβλημα

    θα συμφωνήσω με τον παναγιώτη. Χρησιμοποιήσε την SCOPE_IDENTITY() function. όλα τα σωστά Implementations αυτό κάνουνε. μόνο αν έχεις sql server 7.0 version(που αποκλείεται) αφού

    σε αυτό το version η SCOPE_IDENTITY() function δεν είχε γίνει καν Implement...


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
  •  12-04-2009, 18:40 50040 σε απάντηση της 50003

    Απ: Insert πρόβλημα

    Ευχαριστώ πολύ παιδιά!Η Scope_identity() παίρνει και ορίσματα όμως?

    Knowing is not enough , you must apply.
    Willing is not enough , you must do.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems