Known issues of C# Model Generator

C# Model Generator has the following known issues:

  • With Oracle database connection, if a DataWindow SQL contains UNION but the columns (e.g. number type columns) in the statements have different lengths, the generated models may fail to retrieve data.

  • With Oracle database connections, the generated models do not have default values.

  • With SQL Anywhere database connections, if the C# Model Generate fails to find a table or view in the database, it sometimes reports SUBSUBSUBSUB ### (table or view name) error.

  • If a DataWindow gets its data from two tables from different schemas (e.g. dbo.Product and sale.Product) but having the same names, the generated model only gets data from the first schema (i.e. dbo.Product). In the future versions there will be a setting for users to specify.

  • Only commonly-used expression functions are supported in the generated models.

  • Sometimes a generated model does not contain all the database constraints.

  • If you have opened SnapDevelop IDE or Generate C# Models from the PowerBuilder IDE, when you right click the PowerBuilder IDE taskbar icon and click “Close All Windows”, only the SnapDevelop IDE or Generate C# Models window gets closed. The PowerBuilder IDE remains open.

  • If you have opened SnapDevelop IDE or Generate C# Models from the PowerBuilder IDE, when you sign out and exit the PowerBuilder IDE, the SnapDevelop IDE or Generate C# Models window remains open.

  • If you have enabled “Auto-hide the taskbar”, when the SnapDevelop IDE or Generate C# Models window is active, the taskbar can hide automatically but cannot reappear at mouse-over. You have to press Win+T to see the taskbar again.

  • If the initial value of a column is set to today in the DataWindow SRD, the initial value in the generated model will be the model generation date instead of the current date.

  • DataWindow parameters cannot work well in the generated models if the parameters are used outside SQLs, such as, in computed columns, group, sort or filter functions.

  • If no child DataWindow is specified for a DropDownDW column, the generated model would fail to retrieve data for the DropDownDW column.

  • If a DataWindow SQL is PBSELECT statement and the statement contains sub-queries, models cannot be generated successfully if there are parameters in the sub-queries.

  • If you copy and paste a column or duplicate a column in the DataWindow painter, because the new column does not exist in the DataWindow SRD, the generated model would fail to get the value of the new column.

  • If a DataWindow column has initial value that contains “~r” or “~r~n”, the “r” and “n” characters are incorrectly removed from the initial values in the generated model. You must manually add them back to fix the errors caused because of the missing of the characters.

  • The generated model does not support the “Key and Modified Columns” update property setting made in the original DataWindow.

  • The following DataWindow expression functions (and maybe more) are unsupported in the generated models:

    describe( s )


    case( x when a then b when c then d... else e)






  • If a DataWindow SQL contains left outer join or left outer join and joins a “not null” column, the generated model may fail to retrieve when the “not null” column gets a null value as the result of left/right outer join. The model cannot tell whether a column can be null or not.

  • If the DataWindow SRD contains a blob type column, when the generated model retrieves data, the value of the blob column is null.

  • If you have used the data view to specify the data to be stored with a DataWindow, and a Number or Datetime column is set to null in the view, the generated model will fail to retrieve.

  • With ODBC connections, the data source name shall not start with space or special character(s).

  • With Oracle connections, if the DataWindow SQL does not use schema, and the generated model uses a schema different from the DataWindow, there will be a runtime error stating that the table is not found.