<?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>Design &amp; Architecture</title><link>https://www.dotnetzone.gr:443/cs/forums/16/ShowForum.aspx</link><description>Θέματα αρχιτεκτονικής και σχεδιασμού εφαρμογών (design patterns, object orientation, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19602.aspx</link><pubDate>Wed, 01 Nov 2006 07:13:01 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19602</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19602.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19602</wfw:commentRss><description>Ήταν η πρώτη φορά που έπαιξα λίγο πιο σοβαρά με GDI+, μου άρεσε και το διασκέδασα μετά &lt;img src="/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19594.aspx</link><pubDate>Wed, 01 Nov 2006 04:17:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19594</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19594.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19594</wfw:commentRss><description>Ουσιαστικά πρόκειται για το γραφικό εργαλείο που καλείται να δημιουργήσει το xml (στην δική μου λύση) ή το ini (στην λύση odbc) που περιγράφει τις στήλες.&lt;br /&gt;
&lt;br /&gt;
Προς το παρόν δεν νομίζω να προκύψει αυτή η απαίτηση, στο συγκεκριμένο project που δουλεύω. Επειδή όμως η όλη διαδικασία του mapping έχει γίνει σε ξεχωριστό assembly με σκοπό την επαναχρησιμοποίηση, θα ήθελα στο μέλλον να κάνω ένα τέτοιο γραφικό εργαλείο!&lt;br /&gt;
&lt;br /&gt;
Βέβαια προϋποθέτει ότι έχουμε ανιχνεύσει τις στήλες, ειδικά αν το αρχείο είναι fixed length και όχι delimited.&lt;br /&gt;
&lt;br /&gt;
Από ότι βλέπω έχεις κάνει αρκετή δουλειά στο γραφικό μέρος!</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19593.aspx</link><pubDate>Wed, 01 Nov 2006 03:49:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19593</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19593.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19593</wfw:commentRss><description>Όντως, πολύ χρήσιμο. Είχα φτιάξει Wizard με αυτό, σαν κι αυτόν που έχει το Excel όταν κάνεις import data. Αν θυμάστε μια κουβέντα που είχαμε κάνει για mapping control, την είχα ξεκινήσει με αφορμή αυτό το sub-project. Μπορεί να σε ενδιαφέρει ως προς το UI part, ρίξε μια ματιά εδώ: &lt;A href="/cs/blogs/mkelaiditis/articles/8929.aspx"&gt;http://www.dotnetzone.gr/cs/blogs/mkelaiditis/articles/8929.aspx&lt;/A&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19591.aspx</link><pubDate>Wed, 01 Nov 2006 03:37:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19591</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19591.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19591</wfw:commentRss><description>&lt;P&gt;Εξαιρετικά ενδιαφέρον. Ουσιαστικά το παράδειγμα χρησιμοποιεί τον Microsoft ODBC Driver for Text Files και τον ODBCDataAdapter για να διαβάσει τελικά το αρχείο. Φαντάζομαι ότι μπορεί κανείς να χρησιμοποιήσει τον αντίστοιχο data reader, μια που το Fill θα διαβάσει όλο το αρχείο στην μνήμη.&lt;/P&gt;
&lt;P&gt;Αν στον ίδιο φάκελο με το αρχείο υπάρχει ένα αρχείο με όνομα schema.ini, τότε μπορεί να παραμετροποιηθεί η γραμμογράφηση. Ουσιαστικά σε αυτή τη σελίδα (που αναφέρεται στο blog που αναφέρεις) &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetschema_ini_file.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odbcjetschema_ini_file.asp&lt;/A&gt;&amp;nbsp;μπορεί κανείς να περιγράψει την μορφή ενός αρχείου όπως με το xml που είπα παραπάνω ή το xml που λέει ο Γιώργος.&lt;/P&gt;
&lt;P&gt;Το ενδιαφέρον είναι ότι στο schema.ini μπορείς να θέσεις ένα αριθμό γραμμών (π.χ. 10) τις οποίες θα διαβάσει το driver για να ανιχνεύσει τον τύπο δεδομένων της κάθε στήλης στο αρχείο!&lt;/P&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19568.aspx</link><pubDate>Tue, 31 Oct 2006 23:08:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19568</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19568.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19568</wfw:commentRss><description>Δημήτρη, ρίξε και μια ματιά σε αυτό μήπως πάρεις καμία ιδέα ακόμα:&lt;br&gt;&lt;a href="http://blogs.msdn.com/irenak/archive/2006/10/31/sysk-230-do-you-need-biztalk-to-load-a-csv-file.aspx"&gt;http://blogs.msdn.com/irenak/archive/2006/10/31/sysk-230-do-you-need-biztalk-to-load-a-csv-file.aspx&lt;/a&gt;&lt;br&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19523.aspx</link><pubDate>Tue, 31 Oct 2006 05:32:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19523</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19523.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19523</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/mistblue/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;gcapnias wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;Δημήτρη η ιστορία σου είναι "κλασική" περίπτωση... Είχα παρόμοιο ζήτημα, για να γεφυρώσω 2 συστήματα. Πιο συγκεκριμένα:&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Ψοφάω από περιέργεια να μάθω ποια είναι τα συστήματα αυτά... Έρευνα ανταγωνισμού γαρ &lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19511.aspx</link><pubDate>Tue, 31 Oct 2006 03:46:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19511</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19511.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19511</wfw:commentRss><description>&lt;P&gt;Τώρα που το είπες τα είδα... &lt;/P&gt;
&lt;P&gt;Σου&amp;nbsp;επισυνάπτω&amp;nbsp;μερικά από αυτά που φτιάξει εγώ για import... &lt;img src="/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/P&gt;
&lt;P&gt;Και ένα σύντομο απόσπασμα για την ιστορία:&lt;/P&gt;
&lt;P&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;recordset&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Accountability"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Table"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;try&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Accountability"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;cause&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AND"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;key&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PositionPartyID"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AccountabilityValPartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;value&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="{D3426632-E0Ab-4F93-A854-3DB7A0CF55CE}"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AssociatedPartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PartyID"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Position"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;cause&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AND"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="varchar"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;size&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="20"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;calculate&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;calculate&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="reportstoposition"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;try&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;catch&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;insert&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Accountability"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;key&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PositionPartyID"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AccountabilityValPartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;value&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="{D3426632-E0Ab-4F93-A854-3DB7A0CF55CE}"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AssociatedPartyID"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="uniqueidentifier"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="PartyID"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="Position"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;cause&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="AND"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;name&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="varchar"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;size&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="20"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;calculate&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;calculate&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;type&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="reportstoposition"&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;="DepartmentCode"&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;where&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;select&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;field&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;insert&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;catch&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;default&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: Maroon;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;recordset&lt;/span&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19508.aspx</link><pubDate>Tue, 31 Oct 2006 02:43:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19508</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19508.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19508</wfw:commentRss><description>Πολύ σημαντικό το σχόλιό σου Γιώργο! Ουσιαστικά αυτό που περιγράφεις στην τελευταία παράγραφο είναι ακριβώς αυτό που αποφάσισα να κάνω και εγώ, μάλλον για τους ίδιους λόγους. Αν δεις την επισύναψη που έχω παραπάνω θα δεις 2 παραδείγματα xml που περιγράφουν ακριβώς το transformation που πρέπει να γίνει. Αρχικά έχω δώσει την δυνατότητα για εισαγωγή από fixed length ή delimited αρχεία.</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19507.aspx</link><pubDate>Tue, 31 Oct 2006 02:33:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19507</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19507.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19507</wfw:commentRss><description>&lt;P&gt;Δημήτρη η ιστορία σου είναι "κλασική" περίπτωση... Είχα παρόμοιο ζήτημα, για να γεφυρώσω 2 συστήματα. Πιο συγκεκριμένα:&lt;/P&gt;
&lt;P&gt;Γενικά οι ελληνικές εταρείες δεν έχουν HR συστήματα. Αλλά σίγουρα έχουν προγράμματα μισθοδοσίας. Τον τελευταίο καιρό όλο και περισσότερες όμως αποκτούν ένα HR πρόγραμα. Ένας από τους βασικούς σκοπούς ενός HR προγράμματος είναι να παρακολουθεί τους υπαλλήλους, την μισθοδοσία τους, τις θέσεις εργασίας που υπάρχουν μέσα σε μια επιχείρηση, και αφού οριστούν αυτές τα skills που έχει κάθε θέση, να μπορεί με την χρήση των ικανοτήτων και γνώσεών των υπαλλήλων να προτείνει υποψηφίους για μια θέση.&lt;/P&gt;
&lt;P&gt;Η γεφύρωση εδώ έχει να κάνει με το οποιοδήποτε πρόγραμμα μισθοδοσίας, με το πρόγραμμα HR. Το δεύτερο ήταν βασισμένο σε Microsoft technologies και απαιτούσε SQL Server 2000, ενώ το πρόγραμμα μισθοδοσίας ήταν γενικά άγνωστο, όπως και τι τεχνολογία θα χρησιμοποιούσε. Το ζητούμενο ήταν μια φορά το μήνα,&amp;nbsp;να εισάγωνται&amp;nbsp;στο HR πρόγραμμα τα δεδομένα από το πρόγραμμα μισθοδοσίας αλλά ταυτόχρονα, να κρατούσε τα έξτρα δεδομένα που είχε το πρόγραμμα HR και ταυτόχρονα να μην χάνονται οι σχέσεις των δεδομένων, μετά από κάθε ενημέρωση.&lt;/P&gt;
&lt;P&gt;Η πρώτη μας προσέγγιση ήταν να κάνουμε χρήση των Data Transformation Services, αλλά απότυχε όταν πήγε να εφαρμοστεί στο πελάτη.&lt;/P&gt;
&lt;P&gt;Πολλοί πελάτες δεν είχαν SQL Server, και ήθελαν να κάνουν το έξοδο να αγοράσουν, μιας και το πρόγραμμα HR μπορούσε να τρέξει και σε MSDE. Δεν ήταν δυνατόν να τους αναγκάσουμε να αγοράσουν μόνο και μόνο για να μπορούμε εμείς να χρησιμοποιήσουμε Data Transformation Services. Μην πω για τους άλλους μισούς, που είχαν χρησιμοποιούσαν τεχνολογίες με flat files, που δεν υπήρχε ούτε ODBC για να συνδεθούμε επάνω τους.&lt;/P&gt;
&lt;P&gt;Αυτό που δούλεψε, και δουλεύει ακόμα εδώ και 4 χρόνια τώρα, ένα custom πρόγραμμα που μεταφέρει δεδομένα από την μια εφαρμογή στην άλλη. Στην αρχή ήταν custom για τον κάθε πελάτη, αλλά μετά τους τρεις πρώτους, το πρόγραμμα μεταφοράς των δεδομένων απόκτησε μια markup γλώσσα/xml αρχείο που περίγραφε τα transformations που έπρεπε να γίνουν. Έτσι με μικρές αλλαγές κάθε φορά, η εφαρμογή μεταφοράς δεδομένων είναι έτοιμη για όποιο σύστημα, με την χρήση OLEDB/ODBC/csv αρχείων για εισαγωγή δεδομένων.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19482.aspx</link><pubDate>Mon, 30 Oct 2006 22:37:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19482</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19482.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19482</wfw:commentRss><description>Πολύ σωστά. Σκέφτομαι ότι αν αφαιρέσω τους μηχανισμούς custom κώδικα από την λύση μου τότε μπορεί αυτή να αποτελέσει απλά το front-end του συστήματός μου και τελικά το import να γίνει π.χ. από έναν biztalk. Το σημείο στο οποίο το σύστημά μου θα παραλαμβάνει τα δεδομένα θα είναι ο παραπάνω μηχανισμός, χωρίς όμως τους μετασχηματισμούς που θα έχουν γίνει πλέον στον biztalk.&lt;br /&gt;
&lt;br /&gt;
Έχω λοιπόν απλά ένα layer στη διαδικασία import, το οποίο θεωρώ μικρό trade-off για την ευελιξία που μου δίνει.</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19481.aspx</link><pubDate>Mon, 30 Oct 2006 22:14:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19481</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19481.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19481</wfw:commentRss><description>&lt;P&gt;(Χωρίς να έχω κοιτάξει τον κώδικά σου) Ναι, ένας τέτοιος μηχανισμός είναι απαραίτητος για μια generic λύση, ωστόσο έχε υπόψην αν αναπτύξεις ο ίδιος τη λύση, πέρα από το τεχνικό θέμα - πώς θα γίνει σωστά η δουλειά - υπάρχει και το θέμα του performance και του scalability που ενδεχομένως να σε απασχολήσει. Τα έτοιμα εργαλεία έχουν λύσεις. Πχ&amp;nbsp;σε SSIS μπορείς να παίξεις με BulkInsert (και να κάνεις TableLock κατά το insert)&amp;nbsp;για μέγιστο throughput&amp;nbsp;ή να παίξεις με OLEDB Source, κλπ. Από την άλλη μεριά ο Biztalk έχει σχεδιαστεί ως Enterprise λύση και είναι πολύ scalable. &lt;/P&gt;
&lt;P&gt;Μην με παρεξηγήσεις, δεν είμαι biased για τις έτοιμες λύσεις, απλά θα πρέπει να εξετάσεις όλες τις πλευρές της λύσης που θα επιλέξεις και να θέσεις την βαρύτητα που έχει κάθε χαρακτηριστικό για το case σου. Ας πούμε, τόσο τα SSIS όσο και ο Biztalk έχουν υπολογίσιμο learning curve καθώς και ανάλογο administration ενώ έχοντας αναπτύξει τη δική σου λύση (και γνωρίζοντας πως παίζει) είσαι έτοιμος να παίξεις κατευεθείαν. Είπαμε, είναι όλα θέμα trade offs.&lt;/P&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19477.aspx</link><pubDate>Mon, 30 Oct 2006 20:48:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19477</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19477.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19477</wfw:commentRss><description>Νατάσα, όντως μιλάω για μια γέφυρα και όντως το σωστό είναι να λαμβάνει η εφαρμογή μου από συγκεκριμένο σημείο τα δεδομένα και όλες οι customιες να γίνονται σε μια άλλη διαδικασία που να γεμίζει το δικό μου προκαθορισμένο σημείο. Θυμίζει αρκετά αυτό: &lt;a href="http://www.dofactory.com/Patterns/PatternBridge.aspx"&gt;http://www.dofactory.com/Patterns/PatternBridge.aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;Κάτι τέτοιο σκέφτηκα να υλοποιήσω και εγώ. Δείτε την επισύναψη. Περιέχει δυο xml. Το ένα περιέχει το schema για import από fixed length αρχείο που έχει κάποια πληροφορία κωδικοποιημένη στο ID (ίσως από ένα παλιό σύστημα), ενώ το άλλο κάνει import από από delimited αρχείο που έχει όλη την πληροφορία flat (ίσως από ένα πιο σύγχρονο σύστημα).&lt;br&gt;&lt;br&gt;Ο κώδικας στο σύστημά μου λέει "δώσε μου το Sex" και ο κώδικας που κρύβεται πίσω βλέπει στο schema ότι π.χ. το αρχείο είναι utf-8, semicolon delimited και το sex βρίσκεται στη θέση 3. Αν πάλι το schema είναι διαφορετικό, βλέπει ότι το αρχείο είναι windows-1253, fixed length και ότι για να πάρει το sex πρέπει να εκτελεστεί ο custom κώδικας GetSex.&lt;br&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19476.aspx</link><pubDate>Mon, 30 Oct 2006 20:26:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19476</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19476.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19476</wfw:commentRss><description>Για να κάνεις τη διαδικασία του import λίγο πιο επεκτάσιμη, θα μπορούσες να εισάγεις ένα δικό σου data schema από το οποίο κάνεις εσύ την εισαγωγή, και στη συνέχεια να έχεις το μετασχηματισμό από το αρχικό σύστημα στη δική σου μορφή.&lt;br&gt;Αυτό το σχήμα μπορεί να είναι είτε ένας πίνακας, είτε ένα file format για πιο παλιά συστήματα τα οποία δουλεύουν έτσι τις γέφυρές τους ή αν δεν έχεις πρόσβαση στη βάση.&lt;br&gt;Καταλήγεις έτσι σε μια διαδικασία import, με το error handling και το χειρισμό των updates γραμμένο μια φορά, και τόσες διαδικασίες export από το αρχικό σύστημα στη δική σου μορφή όσες και οι εφαρμογές από τις οποίες αντλείς δεδομένα. Επίσης, αν το αρχικό σύστημα είναι άλλου κατασκευαστή με τον οποίο ο πελάτης σου έχει συμβόλαιο συντήρησης, μπορείς να τους σπρώξεις το κομμάτι του export και να &lt;strike&gt;ξεφορτωθείς&lt;/strike&gt;παραλληλίσεις έτσι τη δουλειά της "αποκωδικοποίησης" του περίεργου σχήματος που περιγράφεις.&lt;br&gt;</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19475.aspx</link><pubDate>Mon, 30 Oct 2006 20:20:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19475</guid><dc:creator>Dimitris Papadimitriou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19475.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19475</wfw:commentRss><description>Δεν νομίζω ότι θέλω να γίνω πιο συγκεκριμένος. Το ερώτημα είναι αρκετά φιλοσοφικό. Και οι απαντήσεις σας αρκετά σημαντικές! Όντως η λύση του sql server integration services είναι πολύ καλή, αν βέβαια έχεις sql server. Στην περίπτωσή μου, μάλλον ναι. Ή μια που μιλάμε για custom περιπτώσεις, μπορεί να χρησιμοποιηθεί όποτε υπάρχει.</description></item><item><title>Απ: Εισαγωγή δεδομένων από άλλο σύστημα - Integration</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/19474.aspx</link><pubDate>Mon, 30 Oct 2006 20:10:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:19474</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/19474.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=16&amp;PostID=19474</wfw:commentRss><description>&lt;P&gt;Θα βοηθούσε αν ήσουν λίγο πιο συγκεκριμένος...&lt;/P&gt;
&lt;P&gt;Είναι λίγο δύσκολο να κάνεις γενικευμένο σύστημα αν δεν ξέρεις ποιά είναι τα πιθανά σημεία στα οποία θα πρέπει να επεκταθεί. Πχ αν θες να φτιάξεις ένα σύστημα που να διαβάζει οποιοδήποτε τέτοιο proprietary ΙD και να κάνει map εξαγόμενες πληροφορίες σε πεδία της βάσης σου, τότε μπορώ να σκεφτώ ας πούμε τη δημιουργία ενός μηχανισμού με rules που θα γίνονται apply πάνω στα εισερχόμενα data. Τέτοια συστήματα υπάρχουν ήδη αλλά ακριβώς επειδή είναι πολύ generic, κοστίζουν και πολλά λεφτά (βλ. BizTalk Server). Πάντως εξέτασε και τη&amp;nbsp;λύση του SQL Server Integration Services. Σου δίνει out-of-the-box τέτοια ευελιξία και άπαξ και φτιάξεις τον βασικό μηχανισμό, μετά μπορείς να τον προσαρμόζεις ανάλογα, για κάθε πελάτη.&lt;/P&gt;</description></item></channel></rss>