aboutsummaryrefslogtreecommitdiff
path: root/vo/votools/colbyname.cl
blob: b98b85d6d7bbfc7b42253745b8c3fcd980c6a210 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#{  COLBYNAME -- Find the column number (1-indexed) containing the specified
#   value of the NAME attribute.

procedure colbyname (table, name)

string	table			{ prompt = "Table name"			}
string	name			{ prompt = "NAME attribute"		}

int     column   = 0            { prompt = "Found column number (or -1)"}
string  ucd      = ""           { prompt = "Found column name"          }
string  id       = ""           { prompt = "Found column ID"            }
bool	print    = no		{ prompt = "Print the field number?"	}
bool    found    = no           { prompt = "Was attribute found??"      }

begin
    string  ltab, lname
    int     nfound


    ltab   = table		# get parameters
    lname  = name
    column = -1
    nfound = 0

    tinfo (ltab, ttout-)	# get table info
    for (i=1; i <= tinfo.ncols; i=i+1) {
        keypar (ltab, "TTYPE" // i,  >& "dev$null")
	found = keypar.found
        if (keypar.found == yes && keypar.value == lname) { 
            if (nfound == 0) {
                column = i

                keypar (ltab, "TUCD" // i,  >& "dev$null")
                ucd = ""
                if (keypar.found == yes)
                    ucd   = keypar.value

                keypar (ltab, "TID" // i,  >& "dev$null")
                id = ""
                if (keypar.found == yes)
                    id     = keypar.value
            }
        } 
    }

    if (nfound > 1)
        printf ("Warning: %d columns found with NAME='%s'\n", nfound, name)

    if (print)
	print (column)
end