Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Corrupted dbf names in txt file
Message
 
À
11/01/2007 08:04:38
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows XP
Database:
Visual FoxPro
Divers
Thread ID:
01184495
Message ID:
01184504
Vues:
16
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.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform