Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

i/o operation error in Win2K pro

Status
Not open for further replies.

GarncaPJ

IS-IT--Management
Mar 4, 2003
5
US
I have foxpro 2.6 for Windows installed on a server running Windows 2K server. I start Foxprow.exe from the network drive on my W2K Pro workstation.

I have a project file saved on the network. When I try to open this project file it starts and proceeds to 80% an then I get "i/o operation error". I can open other projects just fine.

Here is the problem of troubleshooting: I can open this project on my laptop/workstation, I can open it on a server, but can't open it on any other workstations.

I have ruled out amount of RAM as a cause, W2K SP versions as cause, moving the project to my local drive, and processor speed (tried everything from a 266mhz to 1133mhz. Has anyone has this problem?

Any thought would be greatly appreciated.

Peter
 
What SP of W2K ARE you running or the workstation and server? SP2&3 fixed and/or changed a number of networking parameters. What OS are you running on the Laptop? Is this a particularly "large" project?

Rick
 
I am running SP3 on all computers. My laptop I can say is the same W2K Pro SP3 config as the other workstations.

I have copied the project directory to the local drive to see if it would work and still no luck.

The project file is 2478KB.

The only thing I can't test is a local install of Foxpro 2.6 since I no longer have the disks.

I have checked the config.nt file and there is no differences between my workstation and other workstations.

Peter
 
It could be a network throughput scenario, not responding fast enough. Or maybe a temp files setting. Try making sure the temp files are being put on the local drive and not a network drive.


Dave S.
[cheers]
 
We found the problem. It has to dowith the drive letters on the server. To get it to work we needed to do one of the following:

If the workstation has a CD ROM drive and it is letter D: then we either have to have a CD in the drive or rename the CD-ROM to a different drive letter.

Thanks to those who responded.
 
Cut-n-paste the code below into prg file and run it...when getfile dialog comes up go find your compiled app or exe and it will fix the upper letter drive problem (make sure this is done just before you create your install or send to client - or make an exe out of it and run it at the client site on the installed app or exe)...

sApplicationFile = getfile("EXE|APP","Locate EXE/APP:","FIX")

if !Empty(alltrim(sApplicationFile))
=RemoveUpperDrive(sApplicationFile)
endif

Function RemoveUpperDrive
parameters sFile
Private nFix, apphandle, lastpos, filelen
nFix = 0
apphandle = FOPEN(sFile, 2)
On Error do FCLOSE(apphandle)
IF apphandle > 0
filelen = FSEEK(apphandle, 0, 2)
lastpos = -1
= FSEEK(apphandle, 0)
DO WHILE !FEOF(apphandle)
lastpos=srchfile(apphandle, lastpos+1, filelen, ':\')
IF lastpos > 1 AND UPPER(getstring(apphandle, lastpos-1, 1)) $ 'DEFGHIJKLMNOPQRSTUVWXYZ'
=FSEEK(apphandle, lastpos -1)
=FWRITE(apphandle, 'C')
nFix = nFix + 1
ENDIF
ENDDO
=FCLOSE(apphandle)
if nFix = 0
WAIT sFile + " did not require fixing." WINDOW TIMEOUT 2
else
WAIT sFile + " was fixed. Occurred: " + alltrim(str(nFix)) WINDOW TIMEOUT 2
endif
return .t.
ELSE
WAIT sFile + " couldn't be opened or does not exist." WINDOW TIMEOUT 2
return .f.
ENDIF

*************
PROCEDURE getstring
***************************************
PARAMETERS filehandle, fileloc, nbytes
=FSEEK(filehandle, fileloc)
RETURN FREAD(filehandle, nbytes)

************
PROCEDURE srchfile
PARAMETERS filehandle, fstart, fend, string1
***************************************
PRIVATE ALL && Bpos, Fpos, ByteBlock1, ByteBlock2, EndOfFile
fpos=fstart
bpos=0
=FSEEK(filehandle, fstart)
IF FEOF(filehandle)
RETURN -1
ENDIF
endoffile = .F.
byteblock1 = FREAD(filehandle, 2048)
endoffile = LEN(byteblock1)=0
byteblock2 = FREAD(filehandle, 2048)
DO WHILE !endoffile AND fpos<=fend
bpos=AT(string1, byteblock1+byteblock2)
IF bpos>0
=FSEEK(filehandle, fpos+bpos-1)
RETURN fpos+bpos-1
ENDIF
fpos=fpos+2048
byteblock1 = byteblock2
byteblock2 = FREAD(filehandle, 2048)
***IF OCCURS(&quot;D:&quot;, UPPER(byteblock2)) > 0
***SET STEP ON
***ENDIF
endoffile = LEN(byteblock2)=0
ENDDO
RETURN -1


Slighthaze = NULL
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top