{{tag>category:"OpenInsight Specific"}} [[https://www.revelation.com/|Sign up on the Revelation Software website to have access to the most current content, and to be able to ask questions and get answers from the Revelation community]] ==== List_... commands ? (OpenInsight Specific) ==== === At 14 DEC 1997 07:37:48PM Peter Richards wrote: === Running the List_ command set from the System Editor works fine, but executing these commands programatically doesn't seem possible. There have been many instances of wanting to do a "List_Dict" or "List_Index" within an event/procedure. I have checked out what is already posted and using the RECEIVER property is not always suitable either. To find out all the table/column names with indexes, retrieving @TABLES, look for those beginning with "!" (exclude !SYSREPOSLOCKS), then retrieving the "*INDEXES row, seems a waste of code, but there doesn't appear to be a shortcut. Tried the following: Retval=Utility("RUNWIN","DWB.EXE /UN=username /PW=pwd 'Run List_Index' ") but obviously it was a futile attempt, and would no doubt need the correct command line parameter in front of the 'Run List_Index', to alt least make a decent attempt to get System Editor to return the values. Do Revsoft have any plans to make these 'List_...' command set available programatically, or does anyone know how to force System Editor to return the values via the RUNWIN command ? Peter ---- === At 15 DEC 1997 12:18PM John Duquette wrote: === Peter, Why is the RECEIVER property not suitable? John Revelation ---- === At 15 DEC 1997 06:37PM Peter Richards wrote: === John, My understanding is limited, but from what I have read, I need to create an edit box if the Set_Property is used, so in effect an extra (albeit invisible if required) edit box on every form where I want to use any of the 'List_..' command set. Or am I making it too complex ? The application runs from a menu (MDI) , so I guess I just have to allocate an extra edit box on the main menu just for these types of retrievals, and all the child forms use the parent edit box ? Hmmm, thanks ! (It would be *real* nice though, to be able to retrieve the results from the 'List_' commands to a variable.) Thanks again, Peter ---- === At 16 DEC 1997 03:23AM Peter Richards wrote: === John, Have tested all the 'List_' routines with the use of the RECEIVER property. They all work fine, however List_Index is not returning all the required information. The commands: (Set_Property to set editbox as the receiver of data) Call List_Index('','','') (Get_Property to retrieve editbox TEXT) returns only the indexed tablenames; no column names or index type information is returned. Even: Call List_Index('EMPLOYEES','','') will not return the COLUMN_NAME or index information. I am running OI 3.2 Peter ---- === At 16 DEC 1997 07:46AM Cameron Revelation wrote: === Peter, I have posted a function below that has the functionality from List_Index. I think this is what you are looking for. Cameron Purdy info@revelation.com function Get_Index(pTableNameList, pColumnNameList, pIndexTypeList) ***************************************************************************** * * Name : Get_Index() * Description: Returns a list of indexes. * * Arguments: * pTableNameList - The name of the table to return indexing information about * pColumnNameList - Specific columns to get indexing information about * pIndexTypeList - A list of index types (1, 2, 3) to return * * Result structure: * Table Name * Column Name * Btree Flag * Crossref Flag * Relational Flag * * History (Date, Initials, Notes) * 12/16/97 cp Original programmer, based on List_Index * ***************************************************************************** declare subroutine Set_Status, V119 $insert Dict_Equates $insert FSErrors_Hdr $insert Logical ****** * main ****** Ret=" Set_Status(FALSE$) * check parameters if assigned(pTableNameList) then TableNameList=pTableNameList convert @lower_case to @upper_case in TableNameList end else TableNameList=" end if assigned(pColumnNameList) then ColumnNameList=pColumnNameList convert @lower_case to @upper_case in ColumnNameList end else ColumnNameList=" end if assigned(pIndexTypeList) then IndexTypeList=pIndexTypeList end else IndexTypeList=" end * apply parameter defaults if len(TableNameList) else * default to all index tables TableNameList=" cTables=count(@tables, @fm) + (@tables # "") for iTable=1 to cTables Table=@tables if Table 1,1=!" then TableNameList := Table 2,99999: @rm end next i * sort list V119("S", "", "A", "L", TableNameList, "") convert @rm to @fm in TableNameList TableNameList -1,1=" end if len(IndexTypeList) else * default to return all index types IndexTypeList=123" end * bErr=FALSE$ cTables=count(TableNameList, @fm) + (TableNameList # "") for iTable=1 to cTables TableName=TableNameList DictName =DICT.": TableName open DictName to fDict then * get a list of column names to check if len(pColumnNameList) else readv ColumnNameList from fDict, "%FIELDS%", 3 then convert @vm to @fm in ColumnNameList end else ColumnNameList=" end end * check each column for indexes cColumns=count(ColumnNameList, @fm) + (ColumnNameList # "") for iColumn=1 to cColumns ColumnName=ColumnNameList if len(ColumnName) and ColumnName 1,1 # "%" then read Record from fDict, ColumnName then if Record=F" or Record=S" then bIndexed=" BTree =FALSE$ bXRef =FALSE$ bRelIx=FALSE$ if index(IndexTypeList, 1, 1) then if Record then bIndexed =TRUE$ bBTree =TRUE$ end end if index(IndexTypeList, 2, 1) then if len(Record) then bIndexed =TRUE$ bXRef =TRUE$ end end if index(IndexTypeList, 3, 1) then if len(Record) then bIndexed =TRUE$ bRelIx =TRUE$ end end if bIndexed then Ret=TableName Ret=ColumnName Ret=bBTree Ret=bXRef Ret=bRelIx end end end end next iColumn end else ErrArgs=@file.error convert @vm to @fm in ErrArgs Set_Status(-1, FS_PREFIX$: @file.error, ErrArgs) bErr=TRUE$ end next iTable if bErr else Set_Status(FALSE$) end return Ret ---- === At 16 DEC 1997 06:03PM Peter Richards wrote: === Cameron, Thank you, have a great Christmas !! Peter [[https://www.revelation.com/revweb/oecgi4p.php/O4W_HANDOFF?DESTN=O4W_RUN_FORM&INQID=NONWORKS_READ&SUMMARY=1&KEY=FC350B4C53A3E0418525656E0003763D|View this thread on the forum...]]