Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Corrupted dbf names in txt file
Message
 
To
11/01/2007 08:04:38
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01184495
Message ID:
01184504
Views:
15
This message has been marked as the solution to the initial question of the thread.
>Dear Experts
>
>I use following procedure to findount corrupt tables in a dbc,
>Then store the name of all corrupt dbf's in ("c:\Baddbf.txt").
>Then proble is:
>If more than one dbf is corrupted then only last dbf name is stored into txt file.
>
>Please modify codes, how to store the name of all dbf's into given txt file.
>
>Please help.
>
>parameters mdbcname
>mdbcname=(sys(5)+alltrim(sys(2003)))+'\TABLES\ACWS.dbc'
>
>if empty(mdbcname)
>	return
>endif
>
>close all
>close data
>
>open database (mdbcname) excl
>= adbobjects(latablearray, "TABLE")
>
>for i=1 to alen(latablearray) && loop through each table in the array
>	mtablename=latablearray(i)   && pick up table name from array
>	=opentable(mtablename) && attempt to open table
>next x
>
>procedure opentable
>parameters M.table
>
>x=0
>on error x=error()
>use (M.table) in 0
>on error
>
>if x<>0 && Possible table corruption
>	local lnhandle,ix
>	lnhandle = fcreate("c:\Baddbf.txt")
>	do case
>	case "corrupt"$message()
>		=fputs(m.lnhandle,"Table "+m.table+" is corrupt!",48,"Unable to open table")
>	case "does not exist"$message()
>		=fputs(m.lnhandle,"Table "+m.table+" does not exist",48,"Unable to open table")
>	case x=1705 or "cannot access"$message()
>		=fputs(m.lnhandle,"Table "+m.table+" does not exist",48,"Unable to open table")
>	otherwise
>		=fputs(m.lnhandle,"Table "+m.table+": "+message()+"!",48,"Unable to open table")
>	endcase
>	=fclose(m.lnhandle)
>endif
>
Try:
#define CRLF CHR(13)+CHR(10)

ERASE ([c:\BadDbf.TXT])
close all
close data

open database (mdbcname) excl
= adbobjects(latablearray, "TABLE")

for i=1 to alen(latablearray) && 
........



.....
if x<>0 && Possible table corruption
	local lnhandle,ix
	LOCAL lcStr
	do case
   	case "corrupt"$message()
             lcStr = "Table "+m.table+" is corrupt!"
	case "does not exist"$message()
             lcStr = "Table "+m.table+" does not exist"
	case x=1705 or "cannot access" $ message()   
             lcStr = Cannot access table "+m.table
	otherwise
             lcStr = Cannot access table "+m.table+": "+message()+"!"
	endcase
        STRTOFILE(lcStr+CRLF, [c:\BadDBF.TXT], 1) 
endif
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform