This should get you started once you get past whatever wrapping Outlook does to
my beautified code... :-) YMMV
It's what I use for a somewhat generic reindex utility form. Replace the macro
expansion with something that builds a string.
LOCAL m.lcTable AS Character, m.lnCount AS Integer, m.lcFor AS Character,
m.lcOrder AS Character, m.lcCollate AS Character
LOCAL m.lcType AS Character, m.lcTagName AS Integer, m.lcKeyExpression AS
Character
m.lcTable=ALIAS()
DIMENSION laIndexes[1]
m.lnCount=ATAGINFO(laIndexes)
IF m.lnCount>0 && we have tag info
DELETE TAG ALL
SET TALK WINDOW
SET TALK ON
FOR m.lnI=1 TO m.lnCount
m.lcTagName=ALLTRIM(m.laIndexes[m.lnI,1])
m.lcType=ALLTRIM(m.laIndexes[m.lnI,2])
m.lcKeyExpression=ALLTRIM(m.laIndexes[m.lnI,3])
IF NOT EMPTY(m.laIndexes[m.lnI,4]) && index has a FOR
clause
m.lcFor=[ FOR ]+ALLTRIM(m.laIndexes[m.lnI,4])
ELSE
m.lcFor=[]
ENDIF
m.lcOrder=ALLTRIM(m.laIndexes[m.lnI,5])
m.lcCollate=[ COLLATE ']+ALLTRIM(m.laIndexes[m.lnI,6])+[' ]
IF m.lcType=[PRIMARY]
TEXT TO m.lcIndexCommand TEXTMERGE NOSHOW FLAGS 1
PRETEXT 1+2+4+8
ALTER TABLE <<m.lcTable>> ADD PRIMARY KEY
<<m.lcKeyExpression>> TAG <<m.lcTagName>>
ENDTEXT
ELSE
TEXT TO m.lcIndexCommand TEXTMERGE NOSHOW FLAGS 1
PRETEXT 1+2+4+8
INDEX ON <<m.lcKeyExpression>>
TAG <<m.lcTagName>> <<m.lcCollate>> <<m.lcFor>>
<<m.lcOrder>>
<<IIF(m.lcType<>[REGULAR],m.lcType,[])>>
ENDTEXT
ENDIF
&lcIndexCommand
NEXT
ENDIF
SET TALK OFF
WAIT CLEAR
--
rk
-----Original Message-----
From: ProfoxTech [mailto:[email protected]] On Behalf Of
Michael Madigan
Sent: Monday, September 24, 2012 5:10 PM
To: [email protected]
Subject: Re: is there a program to create program to build index from a cdx?
Kind of. I'd rather create a hardcoded prg from the cdx
The program examples ive seen so far don't handle ASCENDING, DESCENDIng, UNIQUE
or FILTER ON
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message:
http://leafe.com/archives/byMID/profox/DF1EEF11E586A64FB54A97F22A8BD04421726A9A81@ACKBWDDQH1.artfact.local
** All postings, unless explicitly stated otherwise, are the opinions of the
author, and do not constitute legal or medical advice. This statement is added
to the messages for those lawyers who are too stupid to see the obvious.