From Scott Coffey@21:1/5 to All on Mon Feb 19 13:28:53 2024
Hoping for a minor miracle here...
I have a Clipper application running on a handheld device (Pocket PC).
I'm using PocketDOS as the OS on the handheld device. I'm trying to
port this application to a handheld running Windows CE 7.0. Although
I had some issues installing PocketDOS on the Windows CE device (was
unable to use the installer and had to install manually), I got it
installed and am able to launch and run the Clipper application on
this device.
The application runs fine until I try to create an index, then the
application fails when I try to use that index.
Example:
Program A uses the following statement:
use c:\SCANFILE.DBF index C:\SCANFILE.NDX alias SCANFILE
That works fine as long as I'm using the original index created on the
old Pocket PC handheld. Then I have a program that does:
if file( "SCANFILE.DBF" ) = .T.
if file( "SCANFILE.NDX" ) = .T.
erase ("SCANFILE.NDX")
endif
use SCANFILE.DBF
index on ITEM to SCANFILE.NDX
endif
That runs OK, but the next time I try to run program A, it fails on
the "use" statement with the error: "expression error ( in index key
)"
The database files and indexes were copied from the working device to
the new device. As stated, accessing the database files via the index
works OK initially, but when I try to recreate the index the program
then fails as described. If I re-copy the files, the program works
again until I try to recreate the index.
Any ideas out there?
--
Scott at Scott dash(-) Coffey dot net
From Scott Coffey@21:1/5 to All on Tue Feb 20 11:56:51 2024
OK, after doing some additional research, it appears there's a problem
with databases in general.
I have an application that writes records to a database. The writes
appear to be happening (I can open the database in Advantage Data
Architect and the records are there), but I can't read those records
in a subsequent program. The file being written to has no keys and no associated indexes. So I can write to the file but can't read those
records from the file.
I have the handheld application working on a development PC. I can
take the file that was written on the handheld and copy it to the PC,
and the PC program reads the records with no problem.
The same handheld program that writes the records to the database
first validates that the item number being written is valid, so it
does a lookup via an index on another database. That function is
working. So it can access a database via index to validate a number,
but it can't read do straight reads from a database file.
Here is my compile script:
Clipper C:\Handheld\%1 -oc:\Handheld > errors.txt
IF NOT ERRORLEVEL 1 BLINKER FI C:\Handheld\%1 @c:\CLIPS87\BCL.LNK < C:\Handheld\C.TXT
IF NOT ERRORLEVEL 1 DEL C:\Handheld\%1.OBJ
In summary, the application works on a handheld running Pocket PC OS.
It also works on a development box (A Windows 7 box running in XP
mode). But it's failing on a handheld running Windows CE 7.0. The
only different variable here is the PocketDOS implementation on the
Windows CE device. I've tried reaching out to PocketDOS, but their
stance is that it's a "DOS problem" and they can't help.
Do any of you oldsters out there know of any DOS tweaks that might
help here? Here is my autoexec.bat and config.sys:
autoexec.bat:
cls
rem -----
rem The following line sets the DOS PATH
rem -----
PATH A:\DOS
rem ----
rem Display drive settings (for information only)
rem Type: SETDRIVE /? for more information.
rem Note: SETDRIVE must be run from AUTOEXEC.BAT to enable saved
redirections
rem ----
SETDRIVE NOBANNER
echo.
C:
main.exe (<--- this is the Clipper executable)
*************************
config.sys:
rem ----
rem Load File System Redirector
rem ----
DEVICEHIGH=\DOS\PKTDOSFS.SYS
rem ----
rem Load Expanded Memory (LIM EMS 3.2) Driver
rem ----
DEVICEHIGH=\DOS\EMSMEM.SYS
*************************
Any ideas/suggestions are appreciated.
--
Scott at Scott dash(-) Coffey dot net