Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Multiple data directories
Message
 
À
25/02/1998 03:47:21
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
Information générale
Forum:
Visual FoxPro
Catégorie:
Autre
Divers
Thread ID:
00081000
Message ID:
00081106
Vues:
28
Is there something that could be done with name expressions? Something like

FileLocation = "c:\data\"

then

OPEN DATABASE (FileLocation + "db_name")

?

Joe


>>>Does anyone know how to point a form's data environment
>>>to different data directories dynamically?
>>>
>>>I'm trying to enhance my current framework to handle
>>>multiple 'Companies' each with data in different
>>>directories, but with the same structure.
>>>
>>>Thank you,
>>>Chris Holtz
>>
>>Hi, Basically, VFP with Due with the Current Working Directory.
>>i.e. You can assign to what directory as you wish by:
>>
>>SET DEFAULT TO H:\happyDir
>>
>>Remember if You use a CommonDialog to open a file out of the orginal one...
>>You need to use:
>>CD H:\happyDir
>>to restore to original Directory!
>>
>>Or even simple add this 'CD' command at the beginning of program!
>>It is more comprehensive if you set all your favour setting at the beginning
>>of program and you nearly don't change them unless special reasons.
>>
>>Then, you can adjust them well.
>>For example, you can:
>>SET DELETE ON
>>SET ANSI ON
>>SET EXACT OFF
>>CD H:\happyDir
>>....
>>* Then, really start you Form
>>Do Form HappyNow With "Have a Nice Day!"
>>.....
>
>This could work with free tables but would fail with DBC. DBC is hardcoded in DE and should be changed, otherwise you would be using the same dbf, whatever directory is the default. It's unnecessary to change the default dir though.
>Placing the following code in form.de.beforeopentables would set the correct DBC and free table paths + w/o changing default dir.
>
>
>* cNewDBC and cNewFreePath are public vars
>* Changes database and free table paths at runtime
>nMembers = amembers(aCursors,this,1)
>for ix = 1 to nMembers
>	if aCursors[ix,2] = "Object" and this.&aCursors[ix,1]..baseclass = "Cursor"
>		if !empty(this.&aCursors[ix,1]..database)  && Cursor is not free
>			this.&aCursors[ix,1]..database = cNewDBC
>		else			&& Cursor is a free table
>		    oldCursor = this.&aCursors[ix,1]..cursorsource
>		    newCursor = cNewFreePath + ;
>		        iif(right(cNewFreePath,1) = "\","",;
>		        iif(empty(cNewFreePath),"","\"))+;
>		    	substr(oldcursor,rat("\",oldCursor)+1)
>		    this.&aCursors[ix,1]..cursorsource = newCursor	
>		endif	
>	endif
>endfor
>
>But of course in the case of Chris, I would suggest still using only one dbc and tables of it, with one extra field "Company" added and filter set as needed.
>Cetin
Joseph C. Kempel
Systems Analyst/Programmer
JNC
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform