Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Can someone explain 2 dbc open at the same time?
Message
From
15/02/1999 10:05:53
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00187584
Message ID:
00187673
Views:
21
>My problem is new tables getting created in the wrong dbc. I am trying to write a small program to create my database with the structure stored in another database. kinda redundant, but with 42 relationships between 31 tables, I came up with a program to create the foreign key field names based on a small table of relations. Much more fun than entering all of those field names by hand.
>
>I keep changing things, and sometimes I get it to work, then other times it dosn't. I just don't have a good grip on it.
>
>here is the program:
>
>
>* program ddmakdbc.prg
>
>close all
>
>open database dd
>
>cd \persware\dev\data\
>create database pw
>modify database nowait
>
>do lmaktbl
>do lmakrel
>
>return
>*************************************************************************
>procedure lmaktbl
>
>select * ;
> from dd!dddbfs ;
> into cursor qdbfs
>
>scan
>
>* drop table ("Pw" + dnam)
>
> m.tdsc = lfixnam( tdsc )
> create table ("Pw" +tnam) name (m.tdsc) ( ;
>  ("c" + tid +"Key") c (6)  primary key, ;
>  ("c" + tid +"ID")  c (10) unique ,;
>  ("c" + tid +"Nam") c (20), ;
>  ("c" + tid +"Stt") c (1) )
>
>endscan
>
>return
>*************************************************************************
>procedure lmakrel
>
>SELECT cld.tord as tord, ;
> "Pw" + cld.tnam as cldtbl, ;
> cld.tdsc as cldnam, ;
> "c" + proper(rcid) + proper( rpid ) +"Key" as fldnam, ;
> "Pw" + pnt.tnam as pnttbl, ;
> pnt.tdsc as pntnam ;
> FROM  dd!ddtbls cld JOIN dd!ddrels on cld.tid = rcid ;
>  JOIN dd!ddtbls pnt ON  rpid = pnt.tid ;
> into cursor qrelcmd ;
> order by cld.tord
>
>scan
>
>  m.cldnam = lfixnam( cldnam )
>  m.pntnam = lfixnam( pntnam )
>
>  alter table (m.cldNam) ;
>   add (fldnam) c (6) references (m.pntNam)
>
>endscan
>
>return
>*************************************************************************
>function lfixnam( lcNam )
>
>local lnLen, lcRet
>
>lnLen = len( lcNam )
>lcRet = strt( trim(lcNam), " ", "_" )
>
>return lcRet
>*************************************************************************
>* eof: ddmakdbc.prg
>
>
Look at the SET DATABASE TO command.
Craig Berntson
MCSD, Microsoft .Net MVP, Grape City Community Influencer
Previous
Reply
Map
View

Click here to load this message in the networking platform