{"id":780,"date":"2015-11-02T17:45:40","date_gmt":"2015-11-02T16:45:40","guid":{"rendered":"http:\/\/blog.systemconnect.dk\/?p=780"},"modified":"2015-07-08T09:31:22","modified_gmt":"2015-07-08T07:31:22","slug":"c5-for-sql-udenfor-paedagogisk-raekkevidde","status":"publish","type":"post","link":"https:\/\/scblog.lynge.org\/?p=780","title":{"rendered":"C5 for SQL helt udenfor p\u00e6dagogisk r\u00e6kkevidde"},"content":{"rendered":"<p>Har du v\u00e6ret ved at skifte en Klassisk Dynamics C5 til SQL-databasen og f\u00e5et denne mystiske fejl under Multi Import af data?<\/p>\n<p><div id=\"attachment_781\" style=\"width: 691px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-781\" class=\"size-full wp-image-781\" src=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range.jpg\" alt=\"SQL fejl SQL databasen har signaleret f\u00f8lgende fejl: [Microsoft][ODBC SQL Server Driver]Numeric value out of range \u00d8nsker du at gentage transaktionen?\" width=\"681\" height=\"150\" srcset=\"https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range.jpg 681w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-300x66.jpg 300w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-500x110.jpg 500w\" sizes=\"auto, (max-width: 681px) 100vw, 681px\" \/><\/a><p id=\"caption-attachment-781\" class=\"wp-caption-text\"><b>SQL fejl<\/b><br \/>SQL databasen har signaleret f\u00f8lgende fejl:<br \/>[Microsoft][ODBC SQL Server Driver]Numeric value out of range<br \/>\u00d8nsker du at gentage transaktionen?<\/p><\/div>S\u00e5 er den gal med dine data.<\/p>\n<p>Der kan v\u00e6re flere forklaringer p\u00e5 HVAD der er g\u00e5et galt &#8211; men fact er at du st\u00e5r tilbage med et eller flere\u00a0decimaltal, der ligger udenfor det en Microsoft SQL server tillader, men inden for det Klassisk C5 Native databasen accepterer.<\/p>\n<p>&nbsp;<\/p>\n<p>Klassisk C5 Native databasen kan arbejde med\u00a0decimaltal (REAL) i intervallet -10<sup>16.384<\/sup> til 10<sup>16.384<\/sup> (begge tal eksklusive), men dog\u00a0kun med en pr\u00e6cision p\u00e5 16 cifre.<\/p>\n<p>Pr\u00e6cisionen\u00a0betyder at der kan v\u00e6re 16 betydende cifre. Fx vil tallet 1234567,8910111213 ikke kunne lagres da det har 17 betydende cifre (tal), mens tallet 00001234567,8910111210000 kan lagres da foranstillede og efterstillede nul&#8217;er ikke er betydende.<\/p>\n<p>Bem\u00e6rk: tallene 12345678910111210000000000000 og\u00a0123,1234567891011 vil s\u00e5ledes\u00a0begge kunne lagres med Native databasen.<\/p>\n<p>&nbsp;<\/p>\n<p>I C5s Microsoft SQL database\u00a0lagres decimaltal (REAL) som DECIMAL(28,12) hvilket betyder, at der kan v\u00e6re 28 betydende cifre og de 12 bruges til decimaler.<\/p>\n<p>Bem\u00e6rk: tallene 12345678910111210000000000000 og\u00a0123,1234567891011 (de samme tal som ovenfor) s\u00e5ledes\u00a0IKKE kan lagres med\u00a0Microsoft SQL databasen.<\/p>\n<p>&nbsp;<\/p>\n<p>Nu er vi jo i yderligheder her, men det kan alts\u00e5 g\u00e5 galt &#8211; fx hvis en kunde har f\u00e5et scannet et serienummer ind i et bel\u00f8bsfelt &#8211; og p\u00e5 den m\u00e5de f\u00e5et lavet meget store tal&#8230; Eller der er indsat en del linjer p\u00e5 stort set samme sted p\u00e5 en ordre, indk\u00f8b eller et projekt (fordi nye linjenumre mellem\u00a0to andre linjer\u00a0beregnes som det kommatal der ligger midt imellem) &#8211; og man p\u00e5 den m\u00e5de har f\u00e5et lavet rigtigt mange decimaler.<\/p>\n<p>&nbsp;<\/p>\n<p>Bem\u00e6rk at decimalerne normalt ikke vil udg\u00f8re et st\u00f8rre problem da SQL-serveren blot afrunder dem til det korrekte antal decimaler (det kan dog medf\u00f8re at linjer pludselig sorteres anderledes eller at et unikt index ikke l\u00e6ngere er unikt).<\/p>\n<p>De store tal er straks en helt anden sag &#8211; og her er ikke en super god l\u00f8sning.<\/p>\n<p>&nbsp;<\/p>\n<p>Din importk\u00f8rsel vil typisk v\u00e6re stoppet et sted n\u00e5r fejlen kommer. Det er guld v\u00e6rd for dig lige at aflure i billedet hvilken tabel den er n\u00e5et til &#8211; fx (her tabellen &#8220;ProjTable&#8221;):<\/p>\n<p><a href=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-782\" src=\"http:\/\/blog.systemconnect.dk\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-2.jpg\" alt=\"Numeric value out of range\" width=\"916\" height=\"472\" srcset=\"https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-2.jpg 916w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-2-300x155.jpg 300w, https:\/\/scblog.lynge.org\/wp-content\/uploads\/2015\/07\/Numeric-value-out-of-range-2-500x258.jpg 500w\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" \/><\/a><\/p>\n<p>Eneste l\u00f8sning er nemlig at du nu g\u00e5r p\u00e5 jagt i filen der indeholder ProjTable (filen er EXPxxxxx.kom hvor xxxxx er tabllens nummer i C5 &#8211; i ProjTable&#8217;s tilf\u00e6lde 00129).<\/p>\n<p>Du kan evt. importere filen i Excel og g\u00e5 p\u00e5 jagt efter et kommatal der er meget stort. Det tal m\u00e5 du s\u00e5 simpelthen rette i dine data &#8211; men er det et tal der indg\u00e5r i en transaktion der skal give 0 &#8211; eller der ogs\u00e5 optr\u00e6der med hele eller dele af v\u00e6rdien i andre tabeller er opgaven RET diffus.<\/p>\n<p>Alternativt kan du skrive noget kode i Multi Eksport-k\u00f8rslen der advarer dig om n\u00f8jagtigt hvilke poster det g\u00e5r galt i &#8211; og s\u00e5 kan du jo kigge p\u00e5 dem manuelt INDEN du fors\u00f8ger at indl\u00e6se dem i C5 for SQL.<\/p>\n<p>Desv\u00e6rre er der mig bekendt ikke andre l\u00f8sninger &#8211; s\u00e5 det er bare at sm\u00f8ge \u00e6rmerne op! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Har du v\u00e6ret ved at skifte en Klassisk Dynamics C5 til SQL-databasen og f\u00e5et denne mystiske fejl under Multi Import af data? S\u00e5 er den gal med dine data. Der kan v\u00e6re flere forklaringer p\u00e5 HVAD der er g\u00e5et galt &hellip; <a href=\"https:\/\/scblog.lynge.org\/?p=780\">L\u00e6s resten <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37,6,4],"tags":[30,15,43,13,22,54,29,23,53,14,21,28,24],"class_list":["post-780","post","type-post","status-publish","format-standard","hentry","category-klassisk-c5","category-klassisk-c5-support","category-klassisk-c5-teknik","tag-bug","tag-business-solutions","tag-c5","tag-damgaard-data","tag-database","tag-dynamics-c5","tag-fejl","tag-hint","tag-klassisk-c5","tag-microsoft","tag-native","tag-sql","tag-xal"],"_links":{"self":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=780"}],"version-history":[{"count":7,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/780\/revisions"}],"predecessor-version":[{"id":789,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=\/wp\/v2\/posts\/780\/revisions\/789"}],"wp:attachment":[{"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scblog.lynge.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}