After connecting, the main window appears. It holds a ribbon at the top, one or more editor documents in the middle, and a row of dockable panels below. The picture shows a statement on the sample database, with the rows it returned in "Results" below it. ![[20260811-qt-main-window.png]] ## Ribbon The ribbon has two tabs. Above them sits a quick access toolbar with "Save". "General" carries the daily work: - Actions: "Execute" runs the statement under the cursor, "Execute All" runs every statement in the document. - Connection: a split button naming the database currently connected as `<group>\<database>`, a menu to choose the [[Invantive UniversalSQL/General/Partitioning|partitions]] to work on, and "Preferences". - Tools: "Data Cache", "Invantive Data Loader" and "Describe Object". - Help: "Product Forums" and a split button "Help". "Editor" carries the text handling of the document: - Undo: "Undo" and "Redo". - Clipboard: "Cut", "Copy" and "Paste". - Edit: "Find", "Replace" and "Select All". - Goto Line. - View: "Wrap char", "Wrap word" and "Wrap none", and a list "Language" which sets the syntax highlighting of the document. From release 27.0 onwards the highlighting of a document set to Invantive UniversalSQL follows the vocabulary of the connection instead of a fixed list of words: keywords, functions, data types, constants, [[Invantive UniversalSQL/Packages/Packages|packages]], the statements of the application itself and the names of the reachable tables and views each get a colour of their own, and the completion offered while typing covers all of them together. Connecting to another database refreshes the vocabulary, so the words of the platform actually connected to are the ones coloured. ## Documents Statements are written in documents which appear as tabs, starting with `New.sql`. A tab whose name carries an asterisk holds changes which have not been saved. Each tab closes on its own. ## Panels Below the documents sit the panels, each of which can be docked, hidden or pinned: - "Available Objects": the tables, views and procedures reachable through the current connection; - "Results": the rows returned by the last statement, see [[Invantive Query Tool/Results|Results]]; - "History": the statements executed earlier; - "DBMS Output": the output written by a [[Invantive UniversalSQL/Grammar/Statement Types/PSQL Block|PSQL block]]; - "Explain Plan": how the engine intends to execute a statement; - "Trace": the technical trace of the execution. Two panels are shared by all documents: "Available Objects", since one database is connected at a time, and "History", which lists the statements of the whole session whichever document they were executed from. The history outlives the session: it is kept per user in `sqlhistory.json` in `%USERPROFILE%\Invantive\Prd\Invantive Query Tool` and is read again at the next start, up to the 2,500 most recently executed statements. From release 27.0 onwards the contents of that file are JSON; a history still held in XML format is read once and written back as JSON, so nothing is lost on upgrading. The other four belong to the document being edited: the rows in "Results", the output in "DBMS Output", the plan in "Explain Plan" and the lines in "Trace" are those of that document and remain while another document is worked on, so switching between documents and back shows each document's own again, with the column widths and the scroll position as they were left. The panel being read stays selected while switching from one document to another. ## Appearance The main window renders light or dark, following the app mode of Microsoft Windows; see [[Appearance]].