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, & & " " '
' < < > >
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