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

 

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

Nested/Recursive Triggers

Îåêßíçóå áðü ôï ìÝëïò IXC. Τελευταία δημοσίευση από το μέλος IXC στις 08-10-2007, 12:29. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-10-2007, 14:12 35925

    Nested/Recursive Triggers

    Σενάριο :

    2 ίδιοι πίνακες. Πίνακας 1 + Πίνακας 2

    Ο Πίνακας 2 έχει ενα παραπανήσιο Column.

    Όταν ο χρήστης διορθώσει κάτι στον Πίνακα 1 και η εγγραφή υπάρχει στον Πίνακα 2 η διόρθωση γίνεται και σε αυτόν και αντίστροφα.

    Εφτιαξα τα triggers, τα εκτελώ και παίζουν μια χαρά αφου πρώτα ρύθμισα τα nested triggers =0 και EXEC sp_dboption '<name of db>', 'recursive triggers', 'true'
    στον SQL και στην βάση.
    Κάνω edit τον Πίνακα 1 μέσω του SQL Server Management Studio Express και παρατηρώ ότι διορθώνεται και ο Πίνακας 2 όπως ακριβώς θέλω.

    Όταν όμως εκτελώ την εφαρμογή σε VB.NET προσπαθώ να διορθώσω μια εγγραφή με τον παρακάτω κώδικα

    1
    2
    3
    4
    5
    6
    7
    8
    9
            Dim CustomerRow As Customers_DataSet.CustomersRow
    CustomerRow = Customers_DataSet.Customers.FindByid(CustomerID)
    With CustomerRow
    .Name = Trim(NameEditTextBox.Text)
    .Title = Trim(TitleEditTextBox.Text)
    ...............
    End With


    CustomersBindingSource.EndEdit()
    Me.CustomersTableAdapter.Update(CustomerRow)

    και παίρνω το παρακάτω SqlException

    Maximum stored procedure, function, trigger or view nesting level exceed (limit32)
    Γιατί όταν κάνω Update με το SQL Server Management Studio Express παίζει και οταν κάνω Update απο την εφαρμογή δεν παίζει ;

     

  •  08-10-2007, 12:29 35960 σε απάντηση της 35925

    Απ: Nested/Recursive Triggers

    Τελικά βρήκα τι έφταιγε και δεν δούλευε.

    Στο DataSource είχα επιλέξει Microsoft SQL Server Database File (SqlClient) και οχι Microsoft SQL Server (SqlClient)
    Αλλάζοντας το δούλεψε κανονικά.

    Μπορεί όμως κάποιος να μου εξηγήσει γιατί όταν στο Connection String βάζω ως AttachDBFileName |DataDirectory|\Database.mdf
    μου γράφει :

    An attempt to attach an auto-named database for file C:\Documents and Settings\Administrator\Desktop\Manager\Database.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

    Το ConnectionString είναι :

    Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=False;Context Connection=False

    Αν αλλάξω το User Instance σε True το Connection δουλεύει κανονικά αλλά εκτελωντας την εφαρμογή έχω το ίδιο πρόβλημα που αναφέρω πιο πάνω.
    Υπάρχει κάπου κάποιο tutorial που μπορώ να ξεκαθαρίσω λίγο το τοπίο σχετικά με την σύνδεση μιας απλής εφαρμογής με μια βάση δεδομένων SQL ;

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems