INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

title: "Field attributes"
project: "Visual Eiffel"
revision: "$Revision: 1.1 $"
copyright: "Copyright (C) 1996-2005 Object Tools Group"
license: "http://visual-eiffel.com/license"
cluster: dale
class FIELD_ATTRIBUTES
inherit

DALE_SERVER
end
creation

make
feature -- Attributes:

name: STRING

type: INTEGER

precision: INTEGER

scale: INTEGER

sql_type: INTEGER

required: INTEGER

qualifier: STRING

owner: STRING

table_name: STRING

param_type: INTEGER
feature -- Commands:

make (db: DATABASE; q, o, tn, fn: STRING; t, sqlt, prec, sc, req: INTEGER)
-- creation procedure
require
valid_database: db /= void and then db.is_connected
valid_name: fn /= void and then not fn.is_empty
valid_precision: prec = -1 or prec > 0
valid_scale: sc = -1 or sc >= 0
valid_required: valid_required (req)
feature -- Queries:

is_required: BOOLEAN
-- is non-Null value required?

is_attached: BOOLEAN
-- ...

is_flat: BOOLEAN
-- ...

sql_name: STRING
-- SQL name of this field
require
valid_name: name /= void

sql_field_name (dbtype: INTEGER): STRING
-- ...
require
valid_name: name /= void

sql_type_name (dbtype: INTEGER): STRING
-- ...

sql_create_field (dbtype: INTEGER): STRING
-- ...

find_table: DB_TABLE
-- the table which this field belongs to or Void if
-- it's impossible to find out
require
attached: is_attached
valid_table_name: table_name /= void and then not table_name.is_empty

display_length: INTEGER
-- returns maximal length in character positions
require
valid_type: valid_type (type)
ensure
valid_result: Result >= 0
feature -- Settings:

set_name (n: STRING)
-- ...

set_type (t: INTEGER)
-- ...

set_sql_type (t: INTEGER)
-- ...

set_scale (s: INTEGER)
-- ...

set_required (r: INTEGER)
-- ...

set_qualifier (q: STRING)
-- ...

set_owner (o: STRING)
-- ...

set_table_name (tn: STRING)
-- ...

set_param_type (pt: INTEGER)
-- ...
feature -- Validations:

valid_type (t: INTEGER): BOOLEAN
-- ...

valid_sql_type (sqlt: INTEGER): BOOLEAN
-- ...

valid_c_type (ct: INTEGER): BOOLEAN
-- ...

valid_or_unknown_type (t: INTEGER): BOOLEAN
-- ...

valid_required (req: INTEGER): BOOLEAN
-- ...

valid_param_type (pt: INTEGER): BOOLEAN
-- ...
invariant

all_expanded_are_defined: is_expanded implies valid_type (type)
bind_if_allowed: is_bound implies is_bindable
end -- class FIELD_ATTRIBUTES

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES