<?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>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71252.aspx</link><pubDate>Mon, 17 Sep 2012 16:36:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71252</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71252.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71252</wfw:commentRss><description>Όπως έχουμε πει Ν &amp;nbsp;φορές, o SQL Server ΔΕΝ αποθηκεύει κανένα κόμμα ή τελεία, όταν αποθηκεύεις κάποιο numeric ή float πεδίο. Το κόμμα και η τελείτα εμφανίζονται ΜΟΝΟ όταν η αριθμητική τιμή μετατρέπεται σε κείμενο: όταν δηλαδή προσπαθείς να τη δείξεις στην εφαρμογή σου, ή όταν συνδυάσεις στο ίδιο SQL statement κείμενο και νούμερα, ή όταν προσπαθείς να κάνεις join ή να συγκρίνεις αριθμητικό πεδίο με text.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το locale που θα χρησιμοποιηθεί εξαρτάται από το πού γίνεται η μετατροπή (στον client/browser ή στον server) και από το locale της ΣΥΝΔΕΣΗΣ, και πολύ σπάνια της βάσης.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Αν τα αριθμητικά δεδομένα έχουν φτάσει στον client, η μετατροπή θα γίνει σύμφωνα με το Thread.CurrentCulture (είναι αυτό που επιλέγει ο κάθε χρήστης, όχι το UI locale).&amp;nbsp;&lt;/li&gt;&lt;li&gt;Αν η μετατροπή γίνει στο statement, με κάποιο cast ή κάποιο concatenation, θα χρησιμοποιήθεί το locale της σύνδεσης, το οποίο είναι ίδιο με αυτό της εφαρμογής, εκτός και το αλλάξεις με statement&lt;/li&gt;&lt;li&gt;ΜΟΝΟ αν για κάποιο λόγο συγκρίνεις αριθμητικό πεδίο με κείμενο (π.χ. σε join ή where) θα χρησιμοποιηθεί το collation, γιατί εκεί ο SQL Server δεν μπορεί να ξέρει ποιό locale θέλεις να χρησιμοποιήσεις. Αυτό όμως είναι πάρα πολύ σπάνιο και κατά κανόνα σημαίνει ότι έχεις κάνει κάποιο λάθος στο statement.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Προφανώς, ο καλύτερος τρόπος να αποφύγεις αυτή τη μετατροπή είναι να μην την κάνεις: αν δεν υπάρχει σαφέστατος λόγος να μετατρέψεις το νούμερο σε string, μην το μετατρέπεις. Άσε να φτάσει το αριθμητικό στην εφαρμογή και κάνε την μετατροπή εκεί και μόνο.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Από την άλλη, είναι πολύ πιθανό αυτό που βλέπεις να είναι δική σου παρανόηση. Μπορεί ο χρήστης να έχει ελληνικό Locale και εσύ να περιμένεις να δεις αγγλική υποδιαστολή επειδή έχει αγγλικό UI ή το αντίστροφο. Άλλο το UI locale και άλλο το locale που προέρχεται από τα Regional settings. Το UI locale επηρεάζει τα λεκτικά που βλέπεις στο λειτουργικό και τις εφαρμογές και μόνο. Μόνο το user locale επηρεάζει το πως γίνονται οι μετατροπές. Αν για παράδειγμα η εφαρμογή σου έχει Thread.CurrentCulture = Greek και Thread.CurrentUICutlure = English, θα εμφανιστεί η ελληνική, όχι η αγγλική υποδιαστολή.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71253.aspx</link><pubDate>Mon, 17 Sep 2012 16:36:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71253</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71253.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71253</wfw:commentRss><description>Όπως έχουμε πει Ν &amp;nbsp;φορές, o SQL Server ΔΕΝ αποθηκεύει κανένα κόμμα ή τελεία, όταν αποθηκεύεις κάποιο numeric ή float πεδίο. Το κόμμα και η τελεία εμφανίζονται ΜΟΝΟ όταν η αριθμητική τιμή μετατρέπεται σε κείμενο: όταν δηλαδή προσπαθείς να τη δείξεις στην εφαρμογή σου, ή όταν συνδυάσεις στο ίδιο SQL statement κείμενο και νούμερα, ή όταν προσπαθείς να κάνεις join ή να συγκρίνεις αριθμητικό πεδίο με text.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Το locale που θα χρησιμοποιηθεί εξαρτάται από το πού γίνεται η μετατροπή (στον client/browser ή στον server) και από το locale της ΣΥΝΔΕΣΗΣ, και πολύ σπάνια της βάσης.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Αν τα αριθμητικά δεδομένα έχουν φτάσει στον client, η μετατροπή θα γίνει σύμφωνα με το Thread.CurrentCulture (είναι αυτό που επιλέγει ο κάθε χρήστης, όχι το UI locale).&amp;nbsp;&lt;/li&gt;&lt;li&gt;Αν η μετατροπή γίνει στο statement, με κάποιο cast ή κάποιο concatenation, θα χρησιμοποιήθεί το locale της σύνδεσης, το οποίο είναι ίδιο με αυτό της εφαρμογής, εκτός και το αλλάξεις με statement&lt;/li&gt;&lt;li&gt;ΜΟΝΟ αν για κάποιο λόγο συγκρίνεις αριθμητικό πεδίο με κείμενο (π.χ. σε join ή where) θα χρησιμοποιηθεί το collation, γιατί εκεί ο SQL Server δεν μπορεί να ξέρει ποιό locale θέλεις να χρησιμοποιήσεις. Αυτό όμως είναι πάρα πολύ σπάνιο και κατά κανόνα σημαίνει ότι έχεις κάνει κάποιο λάθος στο statement.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Προφανώς, ο καλύτερος τρόπος να αποφύγεις αυτή τη μετατροπή είναι να μην την κάνεις: αν δεν υπάρχει σαφέστατος λόγος να μετατρέψεις το νούμερο σε string, μην το μετατρέπεις. Άσε να φτάσει το αριθμητικό στην εφαρμογή και κάνε την μετατροπή εκεί και μόνο.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Από την άλλη, είναι πολύ πιθανό αυτό που βλέπεις να είναι δική σου παρανόηση. Μπορεί ο χρήστης να έχει ελληνικό Locale και εσύ να περιμένεις να δεις αγγλική υποδιαστολή επειδή έχει αγγλικό UI ή το αντίστροφο. Άλλο το UI locale και άλλο το locale που προέρχεται από τα Regional settings. Το UI locale επηρεάζει τα λεκτικά που βλέπεις στο λειτουργικό και τις εφαρμογές και μόνο. Μόνο το user locale επηρεάζει το πως γίνονται οι μετατροπές. Αν για παράδειγμα η εφαρμογή σου έχει Thread.CurrentCulture = Greek και Thread.CurrentUICutlure = English, θα εμφανιστεί η ελληνική, όχι η αγγλική υποδιαστολή.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71245.aspx</link><pubDate>Sun, 16 Sep 2012 05:56:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71245</guid><dc:creator>neoklis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71245.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71245</wfw:commentRss><description>&lt;p&gt;Δεν υπάρχει συγκεκριμένος λόγος, απλά ήταν μια παρατήρηση στα αποτελέσματα που έπαιρνα από select, συγκρίνοντας την local με την host db.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description></item><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71244.aspx</link><pubDate>Sun, 16 Sep 2012 04:48:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71244</guid><dc:creator>Antonios Chatzipavlis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71244.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71244</wfw:commentRss><description>&lt;p&gt;Ποιός είναι ο λόγος να κάνεις κάτι τέτοιο;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71242.aspx</link><pubDate>Sat, 15 Sep 2012 19:03:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71242</guid><dc:creator>neoklis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71242.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71242</wfw:commentRss><description>&lt;p&gt;μάλιστα..&lt;br&gt;&lt;br&gt;Μπορώ να ορίσω regional settings για συγκεκριμένη βάση; Αν όριζα language για&amp;nbsp;χρήστη στο syslogins table, θα είχα διαφορετικό αποτέλεσμα;&lt;/p&gt;</description></item><item><title>Απ: float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71241.aspx</link><pubDate>Sat, 15 Sep 2012 18:16:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71241</guid><dc:creator>Antonios Chatzipavlis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71241.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71241</wfw:commentRss><description>ΤΊΠΟΤΑ δεν φταίει...&lt;div&gt;Ο SQL πάντα αποθηκεύει τα πάντα με ANSI.&lt;/div&gt;&lt;div&gt;Απλα ο SSMS σε αλλα σημεία διαβάζει τα regional settings ενω σε αλλα όχι.&lt;/div&gt;&lt;div&gt;Το collation δεν έχει επιρροή στο συγκεκριμένο σημείο.&lt;/div&gt;</description></item><item><title>float datatype με κομμα separator</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71240.aspx</link><pubDate>Sat, 15 Sep 2012 16:47:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71240</guid><dc:creator>neoklis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71240.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=71240</wfw:commentRss><description>&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;Παιδιά καλημέρα,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font face="Times New Roman"&gt;

&lt;/font&gt;&lt;p style="margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;Σε ένα πίνακα
έχω ένα πεδίο &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;float&lt;/span&gt;&lt;span&gt;.
Όταν&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;/span&gt;&lt;span&gt;κάνω&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;span&gt;select &lt;/span&gt;&lt;/span&gt;&lt;span&gt;τον&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;/span&gt;&lt;span&gt;πίνακα&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;span&gt;(&lt;span&gt;SQL Server&lt;b style="mso-bidi-font-weight:normal;"&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;Management
Studio&lt;/span&gt;) &lt;/span&gt;&lt;/span&gt;&lt;span&gt;το&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;/span&gt;&lt;span&gt;πεδίο&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;/span&gt;&lt;span&gt;εμφανίζεται&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;/span&gt;&lt;span&gt;με&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt; &lt;span&gt;comma separator. &lt;/span&gt;&lt;/span&gt;&lt;span&gt;Ο
ίδιος πίνακας σε βάση που είναι &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;host,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;το πεδίο εμφανίζεται με &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;dot&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;separator&lt;/span&gt;&lt;span&gt;. Σκέφτηκα σε πρώτη φάση να ελέγξω το
&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;collation&lt;/span&gt;&lt;span&gt;
&lt;/span&gt;&lt;span&gt;της βάσης και όντως ήταν
διαφορετικό. Και οι δύο βάσεις έχουν το ίδιο &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;collation&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;τώρα ‘&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;Greek&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;CI&lt;/span&gt;&lt;span&gt;_&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;AS&lt;/span&gt;&lt;span&gt;’. &lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;To&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;επόμενο βήμα ήταν να σβήσω τον πίνακα
και να τον ξαναδημιουργήσω αλλά πάλι τίποτα. Τι μπορεί να φταίει;&lt;/span&gt;&lt;font face="Times New Roman"&gt;

&lt;/font&gt;&lt;/p&gt;&lt;p style="margin:0cm 0cm 10pt;" class="MsoNormal"&gt;&lt;span&gt;ευχαριστώ&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;font size="3" face="Times New Roman"&gt;

&lt;/font&gt;</description></item></channel></rss>