<?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>Απ: Linq με Unicode</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69263.aspx</link><pubDate>Sun, 12 Feb 2012 07:27:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69263</guid><dc:creator>Tourle</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69263.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=69263</wfw:commentRss><description>&lt;p&gt;Έκανα την αλλαγή στον τύπο σε nvarchar αλλά τίποτα πάλι. Μάλλον δεν είναι αυτό γιατί δεν βγάζει αποτελέσματα ούτε σε Αγγλικά ονόματα.&lt;/p&gt;&lt;p&gt;όταν λες &lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;var allCustomers=entities.Table.Where(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"it.Name LIKE @searchTerm"&lt;/span&gt;, &lt;span style="color:blue;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;new&lt;/span&gt; ObjectParameter(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"searchTerm"&lt;/span&gt;, mName)); το &lt;font color="#666666"&gt;LIKE @searchTerm"&lt;/font&gt;, &lt;font color="#666666"&gt;LIKE @searchTerm"&lt;/font&gt;, που ψάχνει; εννοώ like στην αρχή ή στο τέλος ή και τα 2;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black;font-family:Courier New;font-size:11px;font-weight:normal;background-color:transparent;"&gt;Ακόμη αν θες σε αυτό το ερώτημα να βάλεις και δευτερο πεδίο δηλαδή and address like xxxxx πως συντάσεται;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Απ: Linq με Unicode</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69200.aspx</link><pubDate>Wed, 08 Feb 2012 21:59:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69200</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69200.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=69200</wfw:commentRss><description>&lt;p&gt;Πρόσεξε ότι ανέφερα &lt;strong&gt;Ν&lt;/strong&gt;varchar. Το varchar δεν είναι Unicode, είναι ASCII. Το ADO.NET (συγκεκριμένα ο SQL Server provider) θα αναγκαστεί να κάνει μετατροπή από Unicode σε ASCII για να τρέξει το query σου. Αυτή η μετατροπή μπορεί να αποτύχει αν έχεις κάνει κάποιο λάθος στο system locale του server ή στο collation του server ή της βάσης. Αν π.χ. έχεις στήσει τη βάση σε μηχάνημα με αγγλικό locale, Latin collation, ο καημένος ο SQL Server provider θα προσπαθήσει να κάνει μετατροπή τους ελληνικούς χαρακτήρες του Unicode σε αγγλικό codepage και φυσικά θα βγάλει σκουπίδια. &lt;/p&gt;&lt;p&gt;Από τη στιγμή μάλιστα που στο πεδίο σου&amp;nbsp;ΔΕΝ χρησιμοποιείς unicode, δεν πρόκειται να πετύχει καμμία σύγκριση με Unicode χαρακτήρες - ή μάλλον, θα πετύχει μόνο αν μπορέσει να γίνει σωστή μετατροπή, πάντα ελπίζοντας το locale και το collation να είναι σωστά. Άλλα bytes είναι το N'Καλημέρα' και άλλα το 'Καλημέρα' σε Windows 1253.&lt;/p&gt;&lt;p&gt;Το πρόβλημα δεν είναι στον SQL Server ή στο ADO.NET. Είναι ότι χρησιμοποιείς ASCII πεδία στη βάση αντί για Unicode. Σε οποιαδήποτε βάση και να δουλέψεις θα έχεις πάντα το ίδιο πρόβλημα.&lt;/p&gt;</description></item><item><title>Απ: Linq με Unicode</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69192.aspx</link><pubDate>Wed, 08 Feb 2012 05:26:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69192</guid><dc:creator>Tourle</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69192.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=69192</wfw:commentRss><description>&lt;p&gt;πράγματι χρησιμοποιώ entity framework και ο τύπος είναι varchar. στα Αγγλικά το like δουλεύει, μόνο στα ελληνικα δεν επιστρέφει δεδομένα.&lt;/p&gt;&lt;p&gt;send from windows phone&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: Linq με Unicode</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69172.aspx</link><pubDate>Tue, 07 Feb 2012 06:54:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69172</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69172.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=69172</wfw:commentRss><description>Όπως λέμε κάθε φορά που βγαίνει μία ερώτηση για ελληνικά, "&lt;a href="http://www.dotnetzone.gr/cs/blogs/pkanavos/archive/2007/01/18/23726.aspx"&gt;O SQL Server δεν χρειάζεται κόλπα για να υποστηρίξει ελληνικά&lt;/a&gt;". Αν το πεδίο στον πίνακα σου είναι nvarchar και τα στοιχεία που έχεις αποθηκεύσει είναι επίσης nvarchar και ότι τίποτε "μασημένα" κινέζικα, δεν θα έχεις κανένα πρόβλημα.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Από εκεί και πέρα, έχεις το θέμα του case sensitivity το οποίο δεν έχει τίποτε να κάνει με τα ελληνικά. Αν για παράδειγμα το collation της βάσης ή του πεδίου είναι CS (Case Sensitive) το mName που δίνεις θα πρέπει να έχει ακριβώς το ίδιο case με τις τιμές στη βάση. Συνήθως τα default settings με τα οποία δημιουργείται μία βάση είναι CI_AS, που σημαίνει Case Incencitive, Accent Sensitive. Το accent sensitive σημαίνει ότι οι τόνοι λαμβάνονται υπόψη και μία τονισμένη λέξη δεν θεωρείται ίδια με μία μή τονισμένη λέξη.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δεν προσδιορίζεις ποιό Linq provider χρησιμοποιείς αλλά υποψιάζομαι ότι μάλλον χρησιμοποιείς Entity Framework. &lt;a href="http://stackoverflow.com/questions/491345/sql-produced-by-entity-framework-for-string-matching"&gt;Αυτό &lt;/a&gt;το post στο StackOverflow αναφέρει ότι ενώ το LINQ to SQL και το NHibernate εκτελούν ένα LIKE όταν δουν το StartsWith, το Entity Framework το αντικαθιστά με ένα CHARINDEX. Μπλιάχ.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Μία λύση είναι να πας σε κάτι πιο ώριμο, όπως το NHibernate. Άλλη λύση είναι αντί για LINQ statement &amp;nbsp;να χρησιμοποιήσεις EQL:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;var allCustomers=entities.Table.Where(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"it.Name LIKE @searchTerm"&lt;/span&gt;, &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; ObjectParameter(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"searchTerm"&lt;/span&gt;, mName));&lt;/span&gt;&lt;/pre&gt;Άλλη μία λύση είναι να προσθέσεις το δικό σου Like function στο edmx και να το καλέσεις όπως περιγράφεται &lt;a href="http://jendaperl.blogspot.com/2011/02/like-in-linq-to-entities.html"&gt;εδώ&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Προσωπικά θα προτιμούσα την 1η λύση, με το ζόρι τη δεύτερη. Θεωρώ εντελώς παρανοϊκό να πρέπει να κάνω τέτοιες αλχημείες για να χρησιμοποιήσω ένα τόσο συνηθισμένο τελεστή όπως το LIKE.&lt;/div&gt;</description></item><item><title>Linq με Unicode</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/69169.aspx</link><pubDate>Tue, 07 Feb 2012 06:06:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:69169</guid><dc:creator>Tourle</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/69169.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=69169</wfw:commentRss><description>&lt;p&gt;Εχω ενα ερωτημα Linq το οποίο τραβάει δεδομένα απο μια βάση SQL&lt;/p&gt;&lt;p&gt;Με τις Αγγλικές εγγραφές δεν υπάρχει πρόβλημα με τις Ελληνικές εγγραφές όμως δεν εμφανίζει καμία&lt;/p&gt;&lt;p&gt;Ξέρω οτι για να εμφανίσει Ελληνικά σε ένα ερώτημα προσθέτουμε το Ν π.χ "select from x where mName=N'xxx'"&lt;/p&gt;&lt;p&gt;Σε Linq πως μπορεί να γίνει το ερώτημα&lt;/p&gt;&lt;p&gt;var allcustomers = (from x in entities.Table
                                &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;where x.Name.StartsWith(mName)&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;&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;&amp;nbsp; select x)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Ευχαριστώ&lt;/p&gt;</description></item></channel></rss>