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

 

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

Sql Server Express database και διαγραφή εγγραφών

Îåêßíçóå áðü ôï ìÝëïò giocha. Τελευταία δημοσίευση από το μέλος Dimitris Papadimitriou στις 18-04-2007, 00:55. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-04-2007, 11:57 29781

    Sql Server Express database και διαγραφή εγγραφών

    Έχω μια βάση δεδομένων σε SQL Server Express μέσα σε ένα project που φτιάχνω. Είμαι ψιλο-αρχάριος με τον SQL Server. Μέχρι τώρα ασχολούμουν με MS Access.

    Ενώ περνάω δεδομένα στην βάση, μόλις κάνω μια αλλαγή στην βάση, π.χ. περάσω ένα νέο παεδίο σε έναν πίνακα, τότε διαγράφονται όλες μου οι εγγραφές από τον πίνακα αυτό. Κι έτσι χάνω τα δεδομένα μου. Την παράμετρο Copy to Output Folder έχει τιμή Copy if newer. Δεν ξέρω αν φταίει αυτό, γιατί δεν είμαι και πολύ γνώστης της λειτουργίας και της διαχείρισης του SQL Server.

    Θα μπορούσε κανείς να με βοηθήσει έτσι ώστε να μην χάνω τα δεδομένα μου κάθε φορά που κάνω αλλαγή σε έναν πίνακα στην βάση δεδομένων;
    Δημοσίευση στην κατηγορία: ,
  •  17-04-2007, 15:12 29820 σε απάντηση της 29781

    Απ: Sql Server Express database και διαγραφή εγγραφών

    Ναι, έχει σχέση η παράμετρος Copy to Output Folder. Βάζοντας την τιμή Copy if newer λες στο visual studio, κατά τη διαδικασία Build, να μεταφέρει την βάση στο output folder (π.χ. Bin\Debug) κάθε φορά που αυτή είναι νεότερη από την βάση που υπάρχει ήδη στο output folder. Και φυσικά όταν κάνεις μια αλλαγή (π.χ. προσθέτεις ένα νέο πεδίο σε ένα πίνακα) ενεργοποιείς αυτό το feature.

    Προφανώς έχεις ορίσει το connection string σου ώστε να χρησιμοποιεί την βάση από τον φάκελο [ProjectRoot]\Bin\Debug. Οπότε τα δεδομένα σου μπαίνουν σε αυτή, αλλά αυτή αντικαθίσταται!

    Προτείνω να απενεργοποιήσεις την ιδιότητα Copy to Output Folder και να αλλάξεις το connection string σου ώστε να χρησιμοποιεί την βάση από το Project root folder. Μπορείς να ορίσεις και σχετικό path (π.χ. ..\..\mydb.mdf ή κάτι ανάλογο).

    Σε αυτές τις περιπτώσεις υπάρχει κι ένα μικρό πρόβλημα αν δουλεύεις ομαδικά και το project σου είναι κάτω από κάποιο source control, αλλά μάλλον δουλεύεις μόνος, οπότε ας μην μπούμε σε λεπτομέρειες.
     


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  18-04-2007, 00:34 29934 σε απάντηση της 29820

    Απ: Sql Server Express database και διαγραφή εγγραφών

    S' euxaristo. 8a to dokimaso.

    Na rotiso omos kati. An pao na to kano PUBLISH (xrisimopoio VB.NET apo Visual Studio EXPRESS) kai na to grapso se ena CD gia na to egkatastiso se enan allon ypologisti, 8a peirazei pou isos exo ABSOLUTE H RELATIVE path sto connection string?
  •  18-04-2007, 00:55 29939 σε απάντηση της 29934

    Απ: Sql Server Express database και διαγραφή εγγραφών

    Αν έχεις absolute path φυσικά και θα πειράξει. Θα πρέπει να έχεις relative path. Είναι σύνηθες να έχεις ένα δεύτερο configuration file με τις default ρυθμίσεις για το CD σου. Π.χ. αυτό του config file μπορεί να θεωρεί ότι η βάση δεδομένων βρίσκεται στο ίδιο folder με το εκτελέσιμο. Από την άλλη το config file που χρησιμοποιείς κατά το development θα θεωρεί ότι η βάση δεδομένω βρίσκεται αλλού, ανάλογα με το περιβάλλον ανάπτυξης. Φυσικά και στα δυο προτείνεται να χρησιμοποιείς relative paths.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems