Repository navigation
ask lands where
Where does this field's value end up? From an ORM property or a form control, across the process boundary to the database column, the server code that writes and reads it, and the triggers that touch it. One of the diagram questions of the ask verb -- see Diagrams and Charts for the model, the bundle and click-to-source.
Answered in-process by the engine (drag-lint ask); no PowerShell is needed (see Charts and the IDE).
From RAD Studio: drag-lint > Reports > Where this field lands in the database... -- put the caret on the selection first (see IDE Menu Reference).
drag-lint ask --question lands-where --target <selection> --db <client.sqlite> --server-db <server.sqlite> --sql-db <sql-index.sqlite>
From a terminal:
drag-lint ask lands-where --target <selection> --db <CLIENT index> --server-db <SERVER index> --sql-db <SQL-script index>
Any one of:
- an ORM class property --
uCAUSFAIL.TmcCAUSFAIL.REASON; - the matching interface property --
iCAUSFAIL.ImcCAUSFAIL.REASON; - a backing field --
<Unit>.<Class>.f<FIELD>; - a form control --
<Form>.<Control>, which first resolves through the same chain asfeeds-from.
ORM property -> TABLE.COLUMN (anchored to its declaration in the SQL scripts) -> the server DataService rows that WRITE and READ it (anchored: the INSERT / UPDATE column list, the SELECT alias, and Obj.<PROP> member accesses) -> the triggers whose bodies use NEW.<COL> / OLD.<COL>; plus the client form bindings whose data-source chain resolves to that table.
-
The property-to-column hop is a naming convention.
Tmc<T>.PROP=T.PROPis graded[inferred], with the measured count printed: 1,991 of 1,997 table-class properties on ORM3 CLIENT follow it. -
Column states. A column is shown as one of:
column(declared in the current scripts),older-script-only,quoted(a quoted identifier -- see the engine note below),server-sql(used by the server's SQL but not declared in any script), ornot a column. -
Positional binds. A
Params[i]bind is visible only through theObj.<PROP>access that feeds it. -
The schema is script-derived, as for
consumers: theMS*.SQLmigration scripts, newest script wins -- not the live database. -
Known engine gap: the SQL-script index currently drops QUOTED column identifiers (e.g.
"ACTION","TABLE"-- exactly the reserved-word columns), so such columns may show asquotedrather thancolumnuntil the engine fix lands.
Three indexes read together -- the CLIENT project index, the SERVER project index and the SQL-script index -- joined on qualified name, file and line (the cross-database identity contract in the index schema), plus DFM bindings and member accesses.