Internal Error 1210
deal? (Excellent reply contributed by David Husnian.) Clipper and most computer languages use a binary floating point format for their real numbers. This causes precision errors which commonly show up in calculations, comparisons and when rounding. The problem is related to trying to represent an infinite number of decimal numbers into a fixed number (and a small fixed number at that) of binary bits. Statistically, there aren't any numbers that can be represented exactly, of course, from a practical standpoint some can be (but they are all somehow related to powers of 2, like 1/2 or 3/8 or 127/128 or ...). Taking .275 out to just 16 bits yields: 0100011000100111 but that is really only .274993896484375. It is impossible to represent .275 accurately in a binary numbering system, even with unlimited bits, let alone the 64 bits that Clipper uses (all of which aren't used for the decimal portion). Most modern languages use a format defined by the IEEE. An IEEE-compliant double precision implementation meets the following criteria: 1 sign bit, 52 bits for the mantissa and 11 for the exponent. 2.22 * 10 ^ -16 is the smallest number that, subtracted from 1.0, gives something different than 1.0. Normalized to 1023, which means that 10 ^ 0 will be kept as 1023, with 10 ^ -1 as 1022 and 10 ^ 1 as 1024. Smallest useable floating value is 2.23 * 10 ^ -308. Largest useable floating value is 1.79 * 10 ^ 308. In the IEEE standard, rounding is considered to be finding the closest representable number to the "exact" number. Not an easy task, particularly at the level of Clipper. There are only two complete solutions: use only integers (for example, use 1234 to mean 12.34) or use a decimal numeric format like BCD. With Visual Objects you will be able to make variable declarations such as LOCAL i AS INT, which will have the effect of forcing only integer values into a variable. CA-Clipper 5.3a is compiled and linked with the 8.0 release of Microsoft C, including the standard math library component. The rounding problems under this library are likely to be somewhat less severe. 5.2 Why is "ABCDEF" = "ABC" turning up TRUE in my code? The single equal sign operator (=) is not what you expect. If you have SET EXACT OFF (the default) then string comparisons only check as far as the length of the right-side value. If you want an exact match, then
using Delphi 3, I had already created 32-bits Windows applications for HRIS, ERP and CRM. In 2007, using Ruby on Rails, an AJAX powered CRM site running on Apache & MySQL was created and I am now using Visual Studio .Net 2008 to create web-based projects and Delphi 7 for Win32 applications using SQL2005 & DBFCDX.So, why then am I reviving the Original Clipper... Clipper... Clipper via a Blog as CA-Clipper is a programming language for the DOS world ? Believe it or not, there are still some clients using my mission-critical CA-Clipper applications for DOS installed in the late 80's and up http://www.davep.org/clipper/FAQ/clipper-5.html to the mid 90's. This is testimony to CA-Clipper's robustness as a language :-)With the widespread introduction of Windows 7 64-bits as the standard O/S for new Windows based PCs & Notebooks, CA-Clipper EXE simply will not work and it has become imperative for Clipper programmers to migrate immediately to Harbour to build 32/64 bits EXEsSince 28th January 2009, this blog has been read by 134,389 (10/3/11 - 39,277) unique http://cch4clipper.blogspot.com/2009/01/internal-errors.html visitors (of which 45,151 (10/3/11 - 13,929) are returning visitors) from 103 countries and 1,574 cities & towns in Europe (37; 764 cities), North America (3; 373 cities) , Central America & Caribeans (6; 13 cities), South America(10; 226 cities), Africa & Middle-East (12; 44 cities) , Asia-Pacific (21; 175 cities). So, obviously Clipper is Alive & Well : -)TIA & Enjoy ! (10th October 2012, 11:05; 13th November 2015) Monday, January 26, 2009 Internal Errors This document was printed from the Norton Guide: `Clipper 5.00a - Internal Errors V1.04' by Terry McConnell. Though dated, I have found it to be extremely useful. The Clipper 5.3 NG on runtime errors may contain updates on these internal errors. By the way, I have not been able to reach Terry McConnell to enquire on the latest version of his document. Please e-mail me If you have his latest e-mail address. Internal Errors Internal Error #0 through #100 These messages are the same for Summer '87 and Clipper 5.0. Check out IERROR.TXT in LIB 0 for complete, official explanations from Nantucket. Internal Error #332 (#109665) User reported bug to Nantucket that when you fill array with a value and then change this value to NIL or "" (presumably, a
från GoogleLogga inDolda fältSök efter grupper eller meddelanden
indicate weakness in the product. Instead it is a strength -- it shows that error checking has been written into the run-time libraries at every opportunity. In fact, these error messages don't usually indicate an internal fault in CA-Clipper, but are an indication that some problem in your source code or operating environment has been intercepted. This list includes version 5.2 and 5.3 errors, but is not exhaustive. The CA-Clipper newsgroup is the source of some of this information. Research continues!0 Error System Integrity Error1 Evaluation Stack Underflow2 Memory Error3 Memory Error4 Memory Error5 Memory Error6 Buffer Error7 Buffer Error8 Buffer Error9 Buffer Error10 Too Many Nested BEGIN SEQUENCE/END Blocks11 BEGIN SEQUENCE/END Integrity Error12 Evaluation stack underflow after BEGIN SEQUENCE/END14 SORT Error15 SORT Error16 Database Not Open17 NTX File Corrupted18 NTX File Corrupted19 NTX File Corrupted20 NDX File Key Type Error21 NDX File Key Type Error22 NTX File Key Type Error24 Write Error37 Too many symbols in symbol table92 SORT/INDEX ON Error331 String/Array buffer/memory overflow332 String/Array memory overflow335 String/Array invalid pointer336 String/Array memory overflow340 Too many Extend locks415 Cannot open overlay file416 Read error on dynamic page file (overlay)520 Attempt to get value for an invalid field type.521 Replacement of field with invalid data type.612 EVAL() given something other than codeblock.650 Out of stack space666 C Function Attempt to Free Invalid Pointer667 Eval stack crashed668 Runtime error handler error (eval stack fault)669 Cannot expand MEMVAR table (eval stack fault)670 Memory initialization error701 Unable to locate keyboard driver upon startup.702 Keyboard driver I/O error upon startup703 Unable to locate display driver upon startup704 Screen display driver I/O error upon startup705 Unable to determine disk drivetype upon startup706 Disk drivetype I/O error upon startup715 Printer not ready.773 D