<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ADO.NET</title><link>https://www.dotnetzone.gr:443/cs/forums/78/ShowForum.aspx</link><description>Θέματα σχετικά με την προσπέλαση δεδομένων μέσω του ADO.NET και του System.Data namespace</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11044.aspx</link><pubDate>Fri, 24 Mar 2006 04:35:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11044</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11044.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11044</wfw:commentRss><description>&lt;P&gt;Ειδικά σε web applications αυτό δεν γίνεται... Είναι τέτοια η φύση της εφαρμογής που απλά δεν γίνεται να κλειδώνεις την εγγραφή όσο την κάνεις edit.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Μπορείς να&amp;nbsp;υλοποιήσεις έναν μηχανισμό όπου θα θέτεις ένα flag όταν ξεκινάει το editing και όταν πάει να πειράξει κάποιος την εγγραφή με το flag on θα το αποτρέπει. Μόλις τελειώνει το editing θα κάνεις το flag off. Όμως μια τέτοια λύση μειώνει πολύ το scalability της εφαρμογής και αυξάνει την περιπλοκότητα καθώς θα πρέπει να αλλάξεις όλα τα SQL statements&amp;nbsp;ώστε να ελέγχουν το flag.&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11043.aspx</link><pubDate>Fri, 24 Mar 2006 04:18:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11043</guid><dc:creator>fterotos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11043.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11043</wfw:commentRss><description>Είχα και εγώ την ίδια απορία.Pessimistic concurrency και ADO.NET 1.1.Αυτό που θέλω είναι να φορτώνω κάποια στοιχεία π.χ. ενός πελάτη σε μία φόρμα για edit και την ίδια στιγμή να κλειδώνεται η εγγραφή.Οι απορίες μου είναι πως μπορώ να περιορίσω το χρόνο που η εγγραφή είναι κλειδωμένη?Που θα κάνω τα commands excecute?Και πως μπορώ να ειδοποιήσω έναν άλλο χρήστη που κάνει load τo ίδιo record ότι αυτή την στιγμή η εγγραφή είναι κλειδωμένη.&lt;br /&gt;&lt;br /&gt;Έχω υλοποιήση μια πολύ απλή εφαρμογή σε ASP.NET και πίσω SQL SERVER αλλά αρχικά   το έκανα με optimistic concurrency και μου δούλεψε τέλεια.Έλα όμως που τώρα θέλω να τα αλλάξω και δεν περίμενα να έχω τέτοιο πρόβλημα.&lt;br /&gt;&lt;br /&gt;Ένα μικρό sample από κώδικα θα βοηθούσε πολύ γιατί εχω πελαγώσει και δεν το περίμενα.</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11042.aspx</link><pubDate>Fri, 24 Mar 2006 03:54:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11042</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11042.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11042</wfw:commentRss><description>&lt;P&gt;Σημείωσε ότι θα πρέπει να ορίσεις και να κάνεις execute τα διάφορα Commands τοποθετώντας τα μεταξύ του &lt;/P&gt;
&lt;P&gt;trans.IsolationLevel = ...&lt;/P&gt;
&lt;P&gt;και του &lt;/P&gt;
&lt;P&gt;conn.Commit();&lt;/P&gt;
&lt;P&gt;Εγώ έχω βάλει ενδεικτικά ένα command.&lt;/P&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11041.aspx</link><pubDate>Fri, 24 Mar 2006 03:54:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11041</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11041.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11041</wfw:commentRss><description>Ευχαριστώ</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11040.aspx</link><pubDate>Fri, 24 Mar 2006 03:52:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11040</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11040.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11040</wfw:commentRss><description>&lt;P&gt;Καλύτερα να ρίξεις μια ματιά εδώ &lt;A href="http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-isolation.html"&gt;http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-isolation.html&lt;/A&gt;&amp;nbsp;που τα εξηγεί και δες πιο είναι καταλληλότερο για την περίπτωσή σου...&lt;/P&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11039.aspx</link><pubDate>Fri, 24 Mar 2006 03:48:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11039</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11039.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11039</wfw:commentRss><description>Και κάτι τελευταίο για να σε ευχαριστήσω. Ποιο level προτείνεις για το  trans.IsolationLevel = ... // READ-COMMITTED ή REPEATABLE-READ &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ευχαριστώ πολύ KelMan</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11038.aspx</link><pubDate>Fri, 24 Mar 2006 03:40:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11038</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11038.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11038</wfw:commentRss><description>&lt;P&gt;Το isolation level αναφέρεται σε όλα τα commands που τα τρέχεις με το connection που σχετίζεται με το transaction. Όταν έχεις ανοιχτό το transaction, τα Select που συμβαίνουν έξω&amp;nbsp;από αυτό δεν το κάνουν να σηκώσει exception. Μπορεί αυτά τα select να γίνουν blocked αλλά τίποτα παραπάνω. Ιδιαίτερα όταν κάνεις insert δεν μπορεί να υπάρξει τέτοιο πρόβλημα γιατί θα εισάγεις μια νέα εγγραφή που δεν υπάρχει. &lt;/P&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11037.aspx</link><pubDate>Fri, 24 Mar 2006 03:36:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11037</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11037.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11037</wfw:commentRss><description>Και κάτι ακόμα έστώ ότι το χρησιμοποιήσω για το Insert. Εάν την συγκεκριμένη στιγμή εκτελεσθεί και ένα select δε θα πέσω πάνω στο exception και θα γίνει το Rollback οπότε θα χαθεί η νέα εγγραφή. Αυτό προσπαθώ να αποφύγω.</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11036.aspx</link><pubDate>Fri, 24 Mar 2006 03:33:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11036</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11036.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11036</wfw:commentRss><description>Αυτό θα το χρησιμοποιήσω για τα queries για insert; Γιατί έχω την εντύπωση ότι δουλεύουν μόνο για το select επειδή το  IsolationLevel αναφέρετε μονο για το Select</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11035.aspx</link><pubDate>Fri, 24 Mar 2006 03:26:24 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11035</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11035.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11035</wfw:commentRss><description>&lt;P&gt;Απ'ότι είδα, ο provider αυτός υποστηρίζει τα isolation levels, οπότε κάνεις BeginTransaction στο connection object και ορίζεις το Isolation Level&amp;nbsp;πάνω στο Transaction object που σου επιστρέφει το BeginTransaction. Κατόπιν, ορίζεις και κάνεις execute κανονικά τα commands και στο τέλος κάνεις commit, δηλαδή κάτι σαν το παρακάτω:&lt;/P&gt;
&lt;P&gt;try {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.open;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trans = conn.BeginTransaction();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trans.IsolationLevel = ... // READ-COMMITTED&amp;nbsp;ή REPEATABLE-READ&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Connection = conn;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandText = strSQLStatement;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Transaction = trans;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.ExecuteNonQuery();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Commit();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn.Close();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trans.Rollback();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex) {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Handle the exception&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11033.aspx</link><pubDate>Fri, 24 Mar 2006 02:57:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11033</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11033.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11033</wfw:commentRss><description>MySQLDriverCS</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11032.aspx</link><pubDate>Fri, 24 Mar 2006 02:56:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11032</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11032.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11032</wfw:commentRss><description>Πες και τον Provider... &lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile [:)]" /&gt;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11031.aspx</link><pubDate>Fri, 24 Mar 2006 02:55:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11031</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11031.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11031</wfw:commentRss><description>ADO.NET 1.1 για .NET 2003 και C#</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11030.aspx</link><pubDate>Fri, 24 Mar 2006 02:53:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11030</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11030.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11030</wfw:commentRss><description>Τι provider χρησιμοποιείς; Και τι version ADO.NET 1.x ή ADO.NET 2.0;</description></item><item><title>Απ: Πως μπορώ να κλειδώνω έναν πίνακα για insert</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/11029.aspx</link><pubDate>Fri, 24 Mar 2006 02:47:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:11029</guid><dc:creator>amargar</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/11029.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=78&amp;PostID=11029</wfw:commentRss><description>Ξέχασα να πω ότι το select δε γίνεται με DataSet αλλά με DataReader. Κοίταξα το System.Data.IsolationLevel που διαθέτει κάποια επίπεδα αλλά δεν γνωρίζω εάν βοηθήσουν.</description></item></channel></rss>