Error Handling in "Quadrant"
[This content is no longer valid. For the latest information on "M", "Quadrant", SQL Server Modeling Services, and the Repository, see the Model Citizen blog.]
This topic describes error handling in Microsoft code name “Quadrant”.
The Errors List
If your session has one or more errors, you can see the error list indicator displayed as Errors (n) at the lower-right corner of the “Quadrant” screen. n specifies the number of errors for the database session that is associated with the active session in the workspace. The error list indicator is displayed only when there are errors waiting to be resolved. Double-clicking the indicator launches the error list in a workpad, which displays all errors for the active database session.
Alternatively, on the View menu, click Errors. In the expanded submenu, you can choose to open a workpad that shows all errors across all the open database sessions, or you can open a workpad to view errors for a specific database session.
Examining Errors
Errors are listed in reverse chronological order with the newest errors on top. By default, the error message name, category (for example, whether it is a validation or compilation error for query execution, a commit error for a change, a SQL connection problem, and so on), source, time stamp, and session are displayed where applicable To view more information about the errors, on the Data menu, click Column Settings and choose the columns you want to view. For example, you can add the ErrorLevel column to the table so that you can sort errors based on severity.
Fields in the Source column are available for further examination. If you double-click or drag out the square icon, you can view the actual source (for example, a field of a record being edit, or a query in a viewer) of the error.
To examine a specific error in its own workpad, drag or double-click the circle icon on the left of the row. By default, only the basic fields mentioned previously will be shown. To view all the available information about an error, in the upper-right corner of the Error workpad, click the viewer switch icon (the triangle) and click Properties to view it in a properties viewer. Notice that all the fields are read-only, as in the Errors list.
Input Validation
Input in a value viewer (for example, text box, combo box, check box, and date picker) is validated before any attempt to commit. For example, if the field is of the Date type but you attempt to type in an alphabetical string, a red squiggly line will appear under your input. If you hover your mouse over the input, a tooltip will pop up displaying the exact error. In addition, if you add a new record and one of its fields does not allow a null value, the field will have a red squiggly line until you input a value of valid type.
Any input error is immediately logged to the Errors list (with Subcategory Validation) until it is resolved. Closing the workpad where the value viewer resides will have no effect on the Errors list.
Query Compilation
Query strings built using Microsoft code name “M” query grammar are validated in the same way as value viewer inputs. A red squiggly line will inform you if a grammatical error is detected. If you hover your mouse over the query, a tooltip will pop up displaying the exact error.
Errors resulted in compilation will be displayed underneath the query bar when you press ENTER to execute the query.
Query errors are immediately logged to the Errors list (with Subcategory Validation or Compilation). Unlike input validation errors, query errors are removed from the list if you close the workpad without fixing them.
Data Conflict
Conflicts can arise when edits are made in separate sessions within “Quadrant”, separate open instances of “Quadrant”, and directly from SQL Server Management Studio. This can result in discrepant data. When “Quadrant” attempts to save changes and detects a discrepancy between the database field it has last observed and the current value in the database, the record is adorned with an exclamation mark in the workpad. You have to explicitly choose a resolution option for each field before any change can be committed.
An error (with Subcategory Commit) will be logged to the Errors list for each field where the conflict has not been resolved. The corresponding record is adorned with a conflict adorner in the change list. For more information about resolving conflicts, see Committing Changes and Resolving Conflicts.