proc make_typ {} {

	global base Types Utypes typf

	set sqlcmd "select s.name, s.usertype, s.type, s.uid, st.name, s.length, \
	object_name(s.tdefault), object_name(s.domain), s.allownulls, s.prec, s.scale, \ 
        s.ident from dbo.systypes s, dbo.systypes st where s.type = st.type  \
        and st.usertype != 18"

	set sqt systypes
	set err [catch {set ret [doSQL 1] } res]
	if {$err} {
		puts stderr "ERROR in SQL cmd in make_typ."
		return
	}

	set cols [sybCols 1]

# 	puts stderr "cols $cols"
	
	while {1} {
	
		set line [sybNext 1]
		if {$line == ""} {break}
	
		lassign $line name utype arche uid really size default domain nulls prec scale ident
		if {$utype <100} {
			keylset Types($utype) name $name arche $arche really $really size $size default $default domain $domain nulls $nulls prec $prec scale $scale
		} else {
			keylset Utypes($utype) name $name arche $arche really $really size $size default $default domain $domain nulls $nulls prec $prec scale $scale
		}
	}

	foreach ut [lsort [array names Utypes]] {
		puts $typf "Somehow create user datatype $ut"
	}

	return typ

}
	
