I have just sent Udo the latest official versions of DP, for posting on the DP Users Web site. Here are Lew's comments about it, which he wants distributed with those versions:

--- Lew's message follows here ---

Here is a new zip file that includes two versions of DataPerfect that only differ by a single byte. The versions of DP2.6Y are DP26YI.EXE and DP26YU.EXE, and the only difference is in the web text output for a text field having a format suffix of ;;W – the first version surrounds underlined text with <i> ... </i> and the second with <u> ... </u>. Those used to HTML will note that these are the codes for italics and underline. Perhaps I should add italics support to DP in addition to that for bold and underline, but as an old DOS application, DataPerfect is already far beyond it's initial goals, and adding italics would severely stress it. I think I'd rather try to make progress on a Windows version.

[There is a bug remaining that I wanted to fix before sending this out, but I need your help if I am to fix it. When report output is sent to a file in WordPerfect format, it includes a header that sets the margins. Evidently this is not always wanted, or else it is not done correctly, or something. I would like to fix it, but I don't know what is wanted. And we need to be careful no to break DPSpool. Help!]

The main purpose for DP2.6Y is to better support scripting, so it will be more useful in web based applications and desktop application which are driven by scripts. Scripting programs usually form a chain communicating with STDOUT / STDIN -- “standard” output and input, so now DataPerfect will write the output from reports to STDOUT when the report is executed within a transaction log processed using the /EI command line option. If you are not using this in a scripting application, you will simply see this output to STDOUT as “printing” or “typing” to the console / display. This is quite different from the “normal” output from a DP report. Also, a b ug was fixed so that multiple reports can be run from a transaction log.

[The following from Brian Hancock.] “For example if you run the DOS DIR command at a DOS screen the output streams onto the console screen, and after DIR has finished you can still read the output on the console. In contrast a DP report printing to the screen only displays while DP is executing, and is removed from the screen after you exit the report and before DP exits. There are a couple of advantages to being able to output to STDOUT (or the console). Firstly at present to use output from DP in another program you first have to save it to a file in DP, and then open the file with another program to use the data. It is currently not possible to pipe data from one application into another. Many DOS users would be used to piping the output from DIR to the MORE command so you can view the output a page at a time. There are many advanced text processing tools which could be used with DP more quickly and efficiently, such as AWK and SED, etc. The new version allows piping to secondary processes. A major advantage of using STDOUT for output from DP is that data can be sent directly to a web browser or other Internet application. At present you need to save the output from DP into a file, and then with another program read the file and output it to the web browser. This has two problems, firstly, there are more steps to getting data to the browser and so is slower, and secondly, until a report finishes and DP exits nothing can be sent to the browser, so there is often a long period of inactivty until the web browser's screen suddenly fills with data. (users often think a problem has occurred with this delay). Using STDOUT, output from DP reaches the web browser screen as it is output from DP, so even a long slow DP report can present results to the user while it is still running.”

[More later about difficulties experienced by Brian.]
There are many bug fixes, and other changes include:
the ;;W field output formatter will act on An as well as AmAn fields

;;W acts on all of the XML/XHTML predefined entities, & &amp; " &quot; ' &apos; < &lt; > &gt;

the ;;W transforms a single line break (carriage return) in a AxAy memo type field to a <br /> instead of <BR> to conform more with XML and XHTML standards.

the ;;W transforms two consecutive line breaks in an AxAy memo field to two line breaks <br /><br / instead of a single <p>. This also makes it more conforming to XML and XHTML standards.

the ;;W transforms bold markup in an AxAy field to <b>...</b> in place of <B>...</B> to make it conform to standards.

The Beep function is removed – and this leads us to the second area of concern when trying to use DP as a scripting engine.

DataPerfect uses “spin” coding while waiting for keyboard input. It does this so that, in a network environment, it can remain “alive” and show changes made by others. However, this uses the CPU completely and doesn't share CPU cycles like normal Windows programs. This, or perhaps the file locking primitives, causes the following problem experienced by Brian:

“I have tried to get DP 2.6Y working on a Windows IIS webserver, but still no luck. I was hoping that with the removal of BEEP functions, and eliminating support for Hercules cards that it might not have polled hardware as much, which was a stab in the dark I was having about why it was not working. The error message from Windows is "The system cannot execute the specified program." I can execute other DOS internal commands and even other external DOS applications/commands successfully.
If the Windows webserver is running Apache rather than IIS, then it works.
The error message "The system cannot execute the specified program." is generally used when an application can't find depende ncies, such as missing DLL's etc. It can also be permission issues. Since I can run other DOS applications in the same folder, I know I have general permissions to do this, which now has me wondering about things like the DP.SYS file. If it was just that DP.EXE could not find DP.SYS I would get other errors from DP.EXE such as "Can't find DP.SYS", and since the message "The system cannot execute the specified program." is not contained withing the DP.EXE or DP.SYS it really does have to be coming from the operating system or IIS itself. This leads me a few questions. What is in DP.SYS? Does DP.EXE dynamically load DP.SYS only when needed, or does it always load it, and does it unload DP.SYS for other memory intensive operations. Why does DP.SYS need to be separately loaded? I know these are stabs in the dark about DP.SYS. Do you think there might be other mechanisms at play. For instance I know DP has some form of phone dialer, does it prove hardware for the presence of COM ports, or even printer ports? The really nice thing about getting DP to run on Windows with IIS is that it can natively run DOS applications, and so unlike Linux/Unix/BSD, you are not dependent firstly on loading an emulator like DOSEMU, but for commercial hosting, the hardest thing is to find is someone who will actually install it on their server. I have searched the world for commercial webhosters that run Windows with Apache as that would solve many things, but alas they are a very very rare breed, if they do at exist - I think I might find a Yeti first. ”

I don't know what is causing Brian's problem. Do any of you? Is it the file locking? I don't think it is DP.SYS, which is simply a file of text fragments that is sort of an analog to the “help” file for a Windows program.

Perhaps I should make a special version of DP without the "spin" code. Such a version would only check for modifications on the network when a keystroke is pressed. It would u se DOS keystroke input and would not execute quite the same.

Anyway, DP2.6Y cures a lot of problems and hopefully will be very useful.

And now, back to work!

Lew Bastian

_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/mailman/listinfo/dataperf

Reply via email to