J
JonathanWilson
Guest
When Progress was a pure 4GL the CRC logic was fundamental to it's implementation. Now application environments can be more fluid and dynamic with inter-database dependencies with loosel y coupled db schemes that are not always perfect matches. OpenEdge's implementation of r-code stops dead the flexibility of run-time resolved validation at execution time (i.e. Interpreted). Running uncompiled aka interpreted code allow this flexibility, but for licensing reasons everything must be compiled for a production release, which leads to the loss of some very powerful functionality. Is it possible to keep this "Interpreted" execution without a Development license, but still meet "compiled" code requirements for licensing. No development is being done in production. So a version of r-code that does not implement CRC baked into the '.r' but resolves at run time. Most languages are now Interpreted: HTML, JavaScript / Node.JS, Perl, Rudy, etc. In addiction OpenEdge has online schema change functionality which can trigger r-code CRC issues in always on systems. Downtime is a luxury in an online world of 24/7 web facing applications. Footnote: A work around... but defeats the advantages of ABL; OpenEdge's core ABL is an excellent RAD tool, but to devolve the code into dynamic queries makes everything convoluted. ** Has a CRC FOR EACH customer WHERE custnum < numvar: Vs ** No CRC CREATE QUERY qh. qh:SET-BUFFERS(BUFFER customer:HANDLE). qh:QUERY-PREPARE("FOR EACH customer WHERE custnum < " + string(numvar)). qh:QUERY-OPEN.
Continue reading...
Continue reading...