DBKit v2.1b2 is now available

I saved this with Xojo 2026 R3.1 but it works fine in R3.

You can find it in Examples > Databases > DBKit - Current Beta

DBKit 2.1 Beta 2 Release Notes

New

  • DBKit.SearchField: Boolean columns are now searchable. The new BooleanValues property defines which words count as true and which count as false, so searches such as Taxable=True work with Boolean columns and with integer flag columns. The default is “True, T, Yes, Y, 1; False, F, No, N, 0”.
  • Layouts now raise DatabaseConnected and DatabaseDisconnected events and automatically handle reconnection when the connection is lost. If a DatabaseDisconnected handler returns True, the developer handles recovery. Otherwise, DBKit displays the DatabaseDisconnectedMessage, disables the layout’s controls, and checks periodically until the database reconnects; it then restores the controls and displays the DatabaseReconnectedMessage. Both message properties support <$1> as a placeholder for the application name. Save and delete failures show their own error messages before the disconnected state begins.

Changed

  • Case 82186: SQLite databases are now used from a per-user location. Before a layout connects to a SQLite database, DBKit looks for the database file in a folder named after the application inside the ApplicationData folder. If the file is there, it is used. If it is not, the database is copied from the app’s Resources folder into that location and the copy is used.
  • When a column name is invalid, the exception now identifies the control the column is attached to and explains how to correct the binding.

Bug Fixes

  • Fixed a bug where a row could appear twice in a DBKit.Table after it was created, saved, edited, and saved again. The database contained one row; the duplicate was in the displayed list.
  • Fixed the sort indicator in DBKit.Table so it shows the column the rows are actually sorted by, including a sort defined by OrderBy. Only the first column of a multi-column OrderBy is indicated.
  • Fixed searching on Byte columns. This also fixes searches on MySQL TINYINT columns, which are reported as Byte columns.
  • Adding a row to a table of related rows with its New button (for example, adding an item to an invoice) crashed on desktop and had no effect on web.
  • Fixed inline cell editing in web DBKit.Table controls, including Tab and Shift+Tab navigation between editable cells.
  • Case 82187: Fixed a NilObjectException when double-clicking a table row while the DoublePressed event handler is implemented but empty.

Notes

  • Case 82175: The MySQL “query already in progress” errors are fixed in Xojo 2026r3.1.

Known Issues

  • Opening a layout can occasionally freeze for about a minute before the data appears. The freeze is associated with the ImageViewer control: so far it has only been seen on layouts that include one, and only in the Customers layout in the DBKit example, only with MySQL and PostgreSQL, and infrequently. Layouts without an ImageViewer are not affected. We are still looking into it.