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].
To view this discussion visit
https://groups.google.com/d/msgid/rbase-l/emad540fdc-d0a6-43eb-9356-cef8eaa58216%402164b13e.com.