<?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>Απ: Επιστροφή τιμής από Function</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15538.aspx</link><pubDate>Sun, 06 Aug 2006 03:38:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15538</guid><dc:creator>spaceman</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15538.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=15538</wfw:commentRss><description>Εφοσον, το string που επιστρεφει η function αποτελειται μονο απο αριθμους και εναν χαρακτηρα '-', δεν ειναι απαραιτητο να επιστρεφει NVARCHAR.&lt;BR&gt;&lt;BR&gt;ALTER FUNCTION FN_SELECT_ContactsNewID (@Contacts_BranchID SMALLINT)&lt;BR&gt;&lt;BR&gt;RETURNS VARCHAR(12)&lt;BR&gt;&lt;BR&gt;AS&lt;BR&gt;&lt;BR&gt;BEGIN&lt;BR&gt;&lt;BR&gt;DECLARE @Contacts_ID VARCHAR(12)&lt;BR&gt;&lt;BR&gt;DECLARE @Max_Contacts_Line INT&lt;BR&gt;&lt;BR&gt;--return NULL, for NULL input or when length of user input is greater than 3 digits&lt;BR&gt;&lt;BR&gt;IF @Contacts_BranchID IS NULL OR LEN(@Contacts_BranchID) &amp;gt; 3&lt;BR&gt;&lt;BR&gt;RETURN &lt;BR&gt;&lt;BR&gt;--get maximum contacts line of specified Branch&lt;BR&gt;&lt;BR&gt;SELECT @Max_Contacts_Line = ISNULL(MAX(Contacts_Line), 0) + 1&lt;BR&gt;&lt;BR&gt;FROM Contacts &lt;BR&gt;&lt;BR&gt;WHERE Contacts_BranchID = @Contacts_BranchID&lt;BR&gt;&lt;BR&gt;-- leading 0's on Branch id + '-'+ leading zeros on maximum contacts line&lt;BR&gt;&lt;BR&gt;SELECT @Contacts_ID = REPLICATE('0', 3- LEN(@Contacts_BranchID)) +CAST(@Contacts_BranchID AS VARCHAR)+ '-'+ REPLICATE('0', 8- LEN(@Max_Contacts_Line)) + CAST(@Max_Contacts_Line AS VARCHAR)&lt;BR&gt;&lt;BR&gt;RETURN @Contacts_ID&lt;BR&gt;&lt;BR&gt;END&lt;BR&gt;&lt;BR&gt;Εκτελεση του παρακατω query:&lt;BR&gt;&lt;BR&gt;'select dbo.FN_SELECT_ContactsNewID(1)' απο την VB και ελεγξε το αποτελεσμα...&lt;BR&gt;&lt;BR&gt;--ΗΤΗ--&lt;BR&gt;&lt;BR&gt;</description></item><item><title>Απ: Επιστροφή τιμής από Function</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15520.aspx</link><pubDate>Sun, 06 Aug 2006 00:02:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15520</guid><dc:creator>mkoukou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15520.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=15520</wfw:commentRss><description>Όχι δεν γίνεται αυτό. Πολεμάω να εντοπίσω που είναι το πρόβλημα και δεν καταλαβαίνω γιατί ενώ η variable @Contacts_ID έχει την σωστή τιμή τελικά μου επιστρέφει λάθος.&lt;br /&gt;
&lt;br /&gt;
Τέλος πάντων. Επειδή με κούρασε αυτό μόλις τώρα τελείωσα μια StoredProcedure με @Contacts_ID OUTPUT κι επίλυσα το πρόβλημα.</description></item><item><title>Απ: Επιστροφή τιμής από Function</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15519.aspx</link><pubDate>Sat, 05 Aug 2006 23:49:33 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15519</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15519.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=15519</wfw:commentRss><description>Για το πρώτο σκέλος, δοκιμάζοντας διάφορα, το μόνο που μπόρεσα να παρατηρήσω είναι οτι η τιμη τύπου 001-00 που παίρνεις είναι 6 χαρακτήρες, ενώ επιθυμείς 12. Ο τύπος nvarchar είναι double-byte. Μήπως κάπου στην πορεία όταν καλείς την function την αναθέτεις σε varchar(12) και όχι σε nvarchar(12);</description></item><item><title>Επιστροφή τιμής από Function</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/15516.aspx</link><pubDate>Sat, 05 Aug 2006 22:13:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:15516</guid><dc:creator>mkoukou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/15516.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=15516</wfw:commentRss><description>&lt;P&gt;Έχω την εξής function&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;ALTER FUNCTION &lt;/FONT&gt;&lt;FONT size=2&gt;FN_SELECT_ContactsNewID (@Contacts_BranchID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SMALLINT&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;RETURNS NVARCHAR&lt;/FONT&gt;&lt;FONT size=2&gt;(12)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;AS&lt;/P&gt;
&lt;P&gt;BEGIN&lt;/P&gt;
&lt;P&gt;DECLARE &lt;/FONT&gt;&lt;FONT size=2&gt;@Contacts_ID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NVARCHAR&lt;/FONT&gt;&lt;FONT size=2&gt;(12)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;DECLARE &lt;/FONT&gt;&lt;FONT size=2&gt;@Max_Contacts_Line &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;INT&lt;/P&gt;
&lt;P&gt;DECLARE &lt;/FONT&gt;&lt;FONT size=2&gt;@Cnt_Contacts &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;INT&lt;/P&gt;
&lt;P&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@Max_Contacts_Line = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;MAX&lt;/FONT&gt;&lt;FONT size=2&gt;(Contacts_Line) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM &lt;/FONT&gt;&lt;FONT size=2&gt;Contacts &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE &lt;/FONT&gt;&lt;FONT size=2&gt;Contacts_BranchID = @Contacts_BranchID&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@Cnt_Contacts = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;COUNT&lt;/FONT&gt;&lt;FONT size=2&gt;(Contacts_Line) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;FROM &lt;/FONT&gt;&lt;FONT size=2&gt;Contacts &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;WHERE &lt;/FONT&gt;&lt;FONT size=2&gt;Contacts_BranchID = @Contacts_BranchID&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;IF &lt;/FONT&gt;&lt;FONT size=2&gt;@Cnt_Contacts = 0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@Max_Contacts_Line = 1 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ELSE SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@Max_Contacts_Line = @Max_Contacts_Line + 1&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;DECLARE &lt;/FONT&gt;&lt;FONT size=2&gt;@strBranchID &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NVARCHAR&lt;/FONT&gt;&lt;FONT size=2&gt;(3)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@strBranchID = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;REPLACE&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;STR&lt;/FONT&gt;&lt;FONT size=2&gt;(@Contacts_BranchID, 3), &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;' '&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;'0'&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;DECLARE &lt;/FONT&gt;&lt;FONT size=2&gt;@strLine &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;NVARCHAR&lt;/FONT&gt;&lt;FONT size=2&gt;(8)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@strLine = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;REPLACE&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;STR&lt;/FONT&gt;&lt;FONT size=2&gt;(@Max_Contacts_Line, 8), &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;' '&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;'0'&lt;/FONT&gt;&lt;FONT size=2&gt;)&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;SELECT &lt;/FONT&gt;&lt;FONT size=2&gt;@Contacts_ID = @strBranchID + &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;'-' &lt;/FONT&gt;&lt;FONT size=2&gt;+ @strLine&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;RETURN &lt;/FONT&gt;&lt;FONT size=2&gt;(@Contacts_ID)&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;END&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Όταν κάνω Step Into Function βλέπω ότι το @Contacts_IDπαίρνει μία τιμή της μορφής 001-00000001. Αυτή είναι και η τιμή που θέλω.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Όταν όμως τελειώσει η διαδηκασία και κοιτάζω το παράθυρο Output μου επιστρέφει το εξής:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=1&gt;
&lt;P&gt;&lt;FONT size=2&gt;Return Value &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;------------ &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;001-00&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;η οποία είναι και λάθος.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;Επίσης όταν καλώ τη συγκεκριμένη function από κώδικα της Visual basic 2005 με τον εξής τρόπο:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;Dim&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; a &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;(cmDB.ExecuteScalar)&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;μου επιστρέφει τιμή Nothing.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;Μπορεί κάποιος να μου πει τι κάνω λάθος.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000 size=2&gt;Ευχαριστώ&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description></item></channel></rss>