<?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>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: logon trigger</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45339.aspx</link><pubDate>Fri, 10 Oct 2008 17:32:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45339</guid><dc:creator>Παπαδημητρίου Γεώργιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45339.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45339</wfw:commentRss><description>&lt;P&gt;Φυσικά δεν χρειάζεται να επισημάνω ότι η συνδρομή για εσένα θα είναι free liletime!&lt;BR&gt;Γιατι έτσι όπως πάμε θα σύνδεθείς πριν από εμένα με τη βάση που έχω τα δεδομένα &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/P&gt;
&lt;P&gt;Σε ευχαριστώ!&lt;/P&gt;</description></item><item><title>Απ: Schedule στον SQL Server</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45321.aspx</link><pubDate>Fri, 10 Oct 2008 03:50:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45321</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45321.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45321</wfw:commentRss><description>&lt;P&gt;Δεν δίνεις αρκετά στοιχεία για να καταλάβω τί ζητάς. Το keep-alive χρειάζεται όταν έχεις web applications ή dekstop εφαρμογές οι οποίες δεν κρατάνε συνέχεια ανοικτό ένα connection στη βάση. Αν σκεφτείς μάλιστα ότι αυτό είναι απλά σωστή τακτική, θα καταλάβεις ότι κατά κανόνα ο SQL Server δεν ξέρει ποιοί χρησιμοποιούν κάθε στιγμή την υπηρεσία. Στην περίπτωση αυτή ο χρήστης μπορεί να έχει ανοικτή την εφαρμογή ή να έχει κάνει login σε ένα web site κι ας μήν υπάρχει ανοικτή σύνδεση στη βάση. Για το λόγο αυτό πρέπει περιοδικά η εφαρμογή ή κάποιο javascript να λέει στο server "είμαι ακόμα εδώ". Δεν έχει νόημα ούτε να ανανεώνει ούτε να ελέγχει ο ίδιος ο SQL&amp;nbsp;Server τον πίνακα των logged-on users, απλά γιατί δεν ξέρει ποιοί είναι και ποιοί δεν είναι logged on!&lt;BR&gt;Μάλιστα, δεν υπάρχει καν λόγος να αποθηκεύεις τη λίστα των online χρηστών στη βάση. Μπορείς άνετα να κρατάς ένα shared array στη μνήμη όπου θα καταγράφεις ποιοί είναι online κάθε στιγμή. Σε μία web εφαρμογή μπορείς να αποθηκεύσεις αυτά τα στοιχεία στο Application State.&lt;/P&gt;
&lt;P&gt;Ο SQL Server 2005 και μετά πάντως μπορεί να ελέγξει και να περιορίσει πόσα ταυτόχρονα connections μπορεί να έχει ανοιγμένα ο ίδιος χρήστης, αλλά αυτό είναι χρήσιμο μόνο αν ο κάθε χρήστης κρατάει συνέχεια ανοικτά τα connections του. Ουσιαστικά σε βολεύει μόνο αν η υπηρεσία που παρέχεις είναι η πρόσβαση στη βάση. Αυτό μπορείς να το πετύχεις με ένα &lt;A href="http://technet.microsoft.com/en-us/library/bb326598(SQL.90).aspx"&gt;logon trigger&lt;/A&gt;. Μάλιστα, το παράδειγμα του Books Online περιγράφει ακριβώς πως να περιορίσεις τον αριθμό connection ανά χρήστη. Το trigger έχει τη μορφή:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;USE&lt;/SPAN&gt; master;&lt;BR&gt;GO&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;CREATE&lt;/SPAN&gt; LOGIN login_test &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;WITH&lt;/SPAN&gt; PASSWORD = &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'3KHJ6dhx(0xVYsdf'&lt;/SPAN&gt; MUST_CHANGE, CHECK_EXPIRATION = &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ON&lt;/SPAN&gt;;&lt;BR&gt;GO&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;GRANT&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;VIEW&lt;/SPAN&gt; SERVER STATE &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TO&lt;/SPAN&gt; login_test;&lt;BR&gt;GO&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;CREATE&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TRIGGER&lt;/SPAN&gt; connection_limit_trigger&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;ON&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ALL&lt;/SPAN&gt; SERVER &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;WITH&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;EXECUTE&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;AS&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'login_test'&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;FOR&lt;/SPAN&gt; LOGON&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;AS&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;BEGIN&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IF&lt;/SPAN&gt; ORIGINAL_LOGIN()= &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'login_test'&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND &lt;/SPAN&gt;(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SELECT&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:fuchsia;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;COUNT&lt;/SPAN&gt;(*) &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;FROM&lt;/SPAN&gt; sys.dm_exec_sessions&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&lt;/SPAN&gt; is_user_process = 1 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;AND&lt;/SPAN&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;original_login_name = &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'login_test'&lt;/SPAN&gt;) &amp;gt; 3&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ROLLBACK&lt;/SPAN&gt;;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;END&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Το trigger αυτό ελέγχει τα connections μόνο για το χρήστη login_test αλλά μπορείς να αλλάξεις το Where σε&amp;nbsp; &lt;FONT face="Courier New"&gt;WHERE is_user_process = 1 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT color=#000000 size=2&gt;AND&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;original_login_name = &lt;FONT color=#000000&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ORIGINAL_LOGIN() &lt;/SPAN&gt;) &amp;gt; 3&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT size=2&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Σε κάθε περίπτωση όμως θα πρέπει να εξηγήσεις τί θέλεις να κάνεις, και όχι το πως, για να μπορέσεις να βρεις&amp;nbsp;την απάντηση.&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: Schedule στον SQL Server</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45308.aspx</link><pubDate>Thu, 09 Oct 2008 22:35:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45308</guid><dc:creator>Παπαδημητρίου Γεώργιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45308.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45308</wfw:commentRss><description>&lt;P&gt;"2) Σε περίπτωση που δεν γίνεται το 1, μπορεί ο ίδιος ο SQL να κοιτάζει τα δεδομένα του "keep alive πίνακα" κάθε&amp;nbsp;X χρόνο&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; και να καθαρίζει από τη λίστα των online χρηστών αυτούς που είναι inactive για πολύ χρόνο?"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;και η λύση ονομάζεται Job Schedule&amp;nbsp;στον SQL Server Agent...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/cc645912.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc645912.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;...εάν&amp;nbsp;καταφέρω&amp;nbsp;φυσικά&amp;nbsp;να&amp;nbsp;πείσω την εταιρεία&amp;nbsp;με τον&amp;nbsp;SQL Server να δημιουργήσει αυτό το job&amp;nbsp;for me!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No permissions no honey!&lt;/P&gt;</description></item><item><title>Απ: Rapidshare style</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45304.aspx</link><pubDate>Thu, 09 Oct 2008 21:05:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45304</guid><dc:creator>Παπαδημητρίου Γεώργιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45304.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45304</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BR&gt;Το Rapidshare είναι Internet service και η δημοσίευση είναι στο Winforms forum οπότε .... τί εννοείς?&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Η αναφορά "Rapidshare" έγινε σχετικά με τον τρόπο. &lt;BR&gt;Πληρώνω και έχω κωδικό για χρήση υπηρεσιών&amp;nbsp;περιορισμένης χρονικής διάρκειας.&lt;/P&gt;
&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BR&gt;Υποθέτωντας ότι η ερώτηση σου έχει να κάνει με licensing ουσιαστικά ρωτάς "πως θα περιορίσω τον αριθμό των ταυτόχρονων συνδέσεων ενός συνδρομητή στο service μου"? &lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Η ερώτηση πολύ όμορφα γίνεται "πως θα περιορίσω τον αριθμό των ταυτόχρονων συνδέσεων &lt;STRONG&gt;ενός&lt;/STRONG&gt; συνδρομητή &lt;STRONG&gt;στα δεδομένα του SQL&lt;/STRONG&gt;".&lt;/P&gt;
&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BR&gt;Κάθε χ λεπτά μετά εσύ θα πρέπει να καθαρίζεις από τη λίστα των online χρηστών αυτούς που είναι inactive για πολύ χρόνο.&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Αυτό ακριβώς ήθελα να ρωτήσω...&lt;BR&gt;1) Αντί να κάνει την κλήση keep alive η εφαρμογή, δεν&amp;nbsp;γίνεται να κάνει την κλήση keep alive o&amp;nbsp;SQL?&lt;BR&gt;2) Σε περίπτωση που δεν γίνεται το 1, μπορεί ο ίδιος ο SQL να κοιτάζει τα δεδομένα του "keep alive πίνακα" κάθε&amp;nbsp;X χρόνο&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; και να καθαρίζει από τη λίστα των online χρηστών αυτούς που είναι inactive για πολύ χρόνο?&lt;BR&gt;&lt;BR&gt;Σε καμία περίπτωση δεν θα ήθελα να κάνω επιπλέον εφαρμογή και υπολογιστή όλο το 24ωρο στη πρίζα για να κάνει την ανωτέρω εργασία.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: Rapidshare style</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45302.aspx</link><pubDate>Thu, 09 Oct 2008 20:21:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45302</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45302.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45302</wfw:commentRss><description>&lt;P&gt;Το Rapidshare είναι Internet service και η δημοσίευση είναι στο Winforms forum οπότε .... τί εννοείς? Ή μήπως θέλεις να φτιάξεις κάποιο service το οποίο θα μπορούν να το κτυπάνε και Winforms clients? Μάλλον θα πρέπει να ξανακάνεις την ερώτηση χωρίς παραπομπές στο Rapidshare.&lt;/P&gt;
&lt;P&gt;Υποθέτωντας ότι η ερώτηση σου έχει να κάνει με licensing ουσιαστικά ρωτάς "πως θα περιορίσω τον αριθμό των ταυτόχρονων συνδέσεων ενός συνδρομητή στο service μου"? Η ερώτηση αυτή δεν έχει σχέση με τον SQL server και δεν μπορεί να λυθεί σε αυτό το επίπεδο.&lt;/P&gt;
&lt;P&gt;Ουσιαστικά θα πρέπει να κρατάς ποιοί χρήστες είναι online και να εμποδίζεις τη σύνδεση ενός χρήστη αν ξεπεράσει το μέγιστο επιτρεπόμενο όριο. Επειδή όμως μπορεί να πέσει η σύνδεση ενός χρήστη και να φαίνεται ότι είναι logged-in θα πρέπει η εφαρμογή να κάνει περιοδικά μία keep-alive κλήση στην υπηρεσία. Κάθε χ λεπτά μετά εσύ θα πρέπει να καθαρίζεις από τη λίστα των online χρηστών αυτούς που είναι inactive για πολύ χρόνο.&lt;/P&gt;</description></item><item><title>Rapidshare style</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/45299.aspx</link><pubDate>Thu, 09 Oct 2008 19:25:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:45299</guid><dc:creator>Παπαδημητρίου Γεώργιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/45299.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=45299</wfw:commentRss><description>&lt;P&gt;Γεια χαρά,&lt;/P&gt;
&lt;P&gt;έχω αναπτύξει μια εφαρμογή η οποία ελπίζω να γίνει συνδρομητική, στυλ Rapidshare&lt;/P&gt;
&lt;P&gt;Τι θα ήθελα να κάνω;&amp;nbsp;&lt;BR&gt;Ο κωδικός που θα δίνεται για την ανανέωση της συνδρομής θα δίνει πρόσβαση στα δεδομένα του SQL server από διαφορετικούς υπολογιστές.&lt;BR&gt;...με μία μικρή λεπτομέρεια&lt;BR&gt;Μόνο ένας υπολογιστής θα έχει πρόσβαση κάθε φορά&lt;/P&gt;
&lt;P&gt;Με αυτό τον τρόπο (ξέρω ότι ζούμε στην Ελλάδα) ο χρήστης ο οποίος έχει κανονικά τη συνδρομή του, &lt;BR&gt;θα αποθαρρύνεται να δώσει τους κωδικούς στον "κολλητό" γιατί πολύ απλά δεν θα μπορεί να συνδεθεί εφόσων έχει συνδεθεί ο κολλητός πρωτίστως!&lt;/P&gt;
&lt;P&gt;Ευχαριστώ για τον χρόνο σας&lt;/P&gt;</description></item></channel></rss>