Bruce –

Thanks for sharing. What an elegant solution.

Have a great holiday.

Myron

 

From: [email protected] <[email protected]> On Behalf Of Bruce 
Chitiea
Sent: December 4, 2024 10:56 AM
To: [email protected]
Subject: [RBASE-L] - Utility | Find Table Containing ColumnName

 

Giving Tuesday Plus One

 

The following utility may be of use to some. Credit for an earlier iteration of 
the core code is due someone on the old R:List, name lost to time. Reworked and 
spiffed up a bit.

 

Bruce

 

{UTILITY | Interactive: Find all Tables containing a given column Name } 

--rbse: generic 

--file: 0findColumn.rmd 

--auth: bachitiea 

--crea: 2020-08-12 

--last: 2024-12-04 

--vers: v.2.0 

 

------------------------------------------------------------------perspective 
-- 

 {Finds all tables containing a given column name or name fragment. Use when 
you 

  need to change a column's parameters, but the Data Designer blocks changes 

  'coz the columnName exists in one or more other tables. } 

 

  ----------------------------------------------------------------environment 
-- 

  CLS 

  SET ERROR VARIABLE vget_errorVar 

 

  
------------------------------------------------------------------------vars-- 

  SET VAR vget_dKey TEXT = NULL 

  SET VAR vget_dCaption TEXT = NULL 

  SET VAR vget_dMessage TEXT = NULL 

  SET VAR vget_dOperator TEXT = NULL 

  SET VAR vget_dResponse1 TEXT = NULL 

  SET VAR vget_dResponse2 TEXT = NULL 

  SET VAR vget_amp_whereClause TEXT = NULL 

  SET VAR vget_amp_outputCaption TEXT = NULL 

 

  ------------------------------------------------------------string selector 
-- 

  SET VAR vget_dCaption = ' Find Table Names' 

  SET VAR vget_dMessage = ' Search for ...' 

 

  DIALOG .vget_dMessage vget_dResponse1 vget_dKey YES + 

  CAPTION .vget_dCaption + 

  OPTION THEMENAME longhorn + 

  |MESSAGE_FONT_NAME calibri + 

  |MESSAGE_FONT_SIZE 11 + 

  |BUTTON_YES_FONT_NAME calibri + 

  |BUTTON_YES_FONT_SIZE 11 + 

  |BUTTON_YES_WIDTH 100 + 

  |BUTTON_YES_CAPTION FULL NAME + 

  |BUTTON_NO_FONT_NAME calibri + 

  |BUTTON_NO_FONT_SIZE 11 + 

  |BUTTON_NO_WIDTH 100 + 

  |BUTTON_NO_CAPTION FRAGMENT 

 

  IF vget_dResponse1 = 'YES' THEN 

    SET VAR vget_operator = ' = ' 

    SET VAR vget_dMessage = 'Enter the full column name' 

    SET VAR vget_eMessage = 'Name not found as entered' 

  ELSE 

    SET VAR vget_operator = ' CONTAINS ' 

    SET VAR vget_dMessage = 'Enter the name fragment' 

    SET VAR vget_eMessage = 'Fragment not found as entered' 

  ENDIF 

 

  --------------------------------------------------------------select target 
-- 

  DIALOG .vget_dMessage vget_dResponse2=20 vget_dKey 1 + 

  CAPTION .vget_dCaption + 

  OPTION THEMENAME longhorn + 

  |MESSAGE_FONT_NAME calibri + 

  |MESSAGE_FONT_SIZE 11 + 

  |BUTTON_OK_FONT_NAME calibri + 

  |BUTTON_OK_FONT_SIZE 11 + 

  |BUTTON_OK_CAPTION OK 

 

  IF vget_dResponse2 IS NULL OR vget_dKey = '[Esc]' THEN ; GOTO cleanup ; ENDIF 

 

  ------------------------------------------------------------------Do the Do 
-- 

  SET VAR vget_amp_outputCaption = + 

    ( '|CAPTION Host Tables for Column: ' + (ULC(.vget_dResponse2)) ) 

 

  SET VAR vget_amp_whereClause = + 

    ('WHERE t1.sys_table_id = t2.sys_table_ID AND ' + + 

     't2.sys_column_name ' + .vget_operator & '''' + .vget_dResponse2 + '''' ) 

 

  SET ERROR MESSAGE 2059 OFF 

  BROWSE DISTINCT + 

    t1.sys_table_id, + 

    t1.sys_table_name, + 

    t1.sys_num_rows + 

  FROM + 

    sys_tables t1, + 

    sys_columns t2 + 

    &vget_amp_whereClause AND + 

    t1.sys_table_name NOT LIKE 'SYS_%' + 

  ORDER BY t1.sys_table_name + 

  OPTION WINDOW_STATE NORMAL|ZEBRA_STRIPE ON + 

    |TOP 50|LEFT 250|HEIGHT 600|WIDTH 500 + 

    |COLUMN_WIDTH[0] 90 + 

    |COLUMN_WIDTH[1] 280 + 

    |COLUMN_WIDTH[2] 155 + 

    &vget_amp_outputCaption 

  SET VAR vget_error = .vget_errorVar 

  SET ERROR MESSAGE 2059 ON 

 

  -------------------------------------------------------------error handling 
-- 

  IF vget_error <> 0 THEN ; PAUSE 1 USING .vget_eMessage ; ENDIF 

 

  --------------------------------------------------------------------cleanup 
-- 

  LABEL cleanup 

  SET ERROR VARIABLE OFF 

  CLEAR VAR vget% 

  CLS 

 

------------------------------------------------------------------end process 
-- 

  LABEL endProcess 

  RETURN 

 

-- 
For group guidelines, visit 
http://www.rbase.com/support/usersgroup_guidelines.php
--- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected] 
<mailto:[email protected]> .
To view this discussion visit 
https://groups.google.com/d/msgid/rbase-l/emad540fdc-d0a6-43eb-9356-cef8eaa58216%402164b13e.com
 
<https://groups.google.com/d/msgid/rbase-l/emad540fdc-d0a6-43eb-9356-cef8eaa58216%402164b13e.com?utm_medium=email&utm_source=footer>
 .

-- 
For group guidelines, visit 
http://www.rbase.com/support/usersgroup_guidelines.php
--- 
You received this message because you are subscribed to the Google Groups 
"RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/rbase-l/00e201db4711%2437283680%24a578a380%24%40gmail.com.

Reply via email to