Breaking changes in 3.12:There are no breaking source code changes in this version.
Please note: if you start using the new Audit feature, the tables where auditing is activated will not open in older versions.
Breaking changes in 3.11.1:There are no breaking source code changes in this version.
The AWE Server distribution/license method has changed in this version. Please see the "NexusDB Server AWE Edition Setup.pdf" file distributed with the server downloads in order to re-register your product.
Breaking changes in 3.11:There are no breaking changes in this version.
Breaking changes in 3.10.04:
- issue 1366:
Running queries when CloseInactiveTables was called could lead to AVs
Before the change for this issue, if there were prepared and bound (but not open) queries that referenced tables when CloseInactiveTables was called, these queries got unbound (releasing all cursors) in the hope that this would drop the cursor count down to 0 and allow the table to be closed. With the change, a prepared and bound query is considered to have the table "in use" and it will not be closed by CloseInactiveTables
- DCU Only products require XE2 update 4
When using a DCU only product with Rad Studio XE2, it now requires update 4, due to Embarcadero introducing breaking changes in interfaces.
Breaking changes in 3.10:
- issue 1254:
Named Users for the "secure server" logins should be stored in a secure table
Previously, named users for server logins were stored in the nxServer.nxdbworksettings file, and there were no built-in methods for managing the list of users. The server now saves the named users into an encrypted system table, and a new API exists for adding and deleting users. The server will convert the list of users to the new table on the first statup of nxServer v3.10. There is now a default admin login (Administrator / NexusDB) which cannot be deleted, disabled or have its access rights changed. The default password can and should be changed. An example of API usage is included in the installed examples folder.
- issue 1092:
Setting "secure server" flag will require admin login to be shown
Previously, no authentication was done in the server interface when the "secure server" setting was turned on or off. This is now enforced, requiring an administrator level login in order to sucessfully change the setting.
- issue 1170:
Declare statements in EXECUTE IMMEDIATE blocks not working
The SQL engine did not not correctly build and manage the local variables list for the dynamic sql block. In fact it also completely violated the SQL standard by not executing the dynamic sql block in it's own context. To fix this issue a new context is now created and initialized which is used to correctly handle declaration and assignment of variables within the dynamic sql block. This though manifests a change in behaviour, because the context isolation means that variables declared in the caller's context are now no longer available to the dynamic sql context. If you're using EXECUTE IMMEDIATE in your solutions we strongly recommend to review your use of variables and do extended testing in this area.
Breaking changes in 3.09:
- issue 920:
Widestring field key comparison problem
When a table is restructured in 3.09, table files will contain NLS Version information from the operating system for the used locales, and when opened on a system with different NLS versions for these locales, the system will protect against data corruption, placing the tables in read-only mode until packed. An exception with relevant info is raised by the server and can be trapped by the client to detect this condition.
If you expect your users to move tables between different OSs, your software should contain an update routine to pack all tables (which will regenerate indexes and fix the problem with index data not matching the OS sorting). Use the source generating wizard in the EM to create this code.
NOTE - the internal changes due to this issue means that restructuring tables with 3.09 will render them unable to open in nxServer (serverengine) 3.08 and earlier versions (a workaround to allow going back does exist). Note that 3.08 and older clients can connect to a 3.09 nxServer to work with the 3.09 tables.
Because of localized sorting being different on different version of windows, a serious problem existed when moving tables between different operating systems. FindKey and Locate might not find existing records, SetRange might not include records that should be included, etc.
- TnxBackupController change
NOTE - the TnxBackupController component for Live Backup requires that the client using it has the same version as the server(s) it operates against. A 3.08 client can't make Live Backups on a 3.09 server.
- issue 1091:
Usernames and Passwords are transfered as AnsiString without codepage information
NOTE - if a 3.09 client is used to connect to a 3.08 or older nxServer and the server requires username and password for client login, there is a potential for usernames and passwords not to be recognized. IF the usernames or passwords uses characters outside the lower 127 ASCII codes (eg, characters that are specific to a particular codepage), then the 3.08 or older nxServer will not be able to correctly decode the information. Such usernames or passwords must be changed to not use any codepage-specific characters. If nxServer and clients are both 3.09 or newer, then the information is exchanged as UTF-8 encoded text and any characters can be used.
Breaking changes in 3.08:
- issue 846:
Clearing filter property on unfiltered TnxTable should not move the current cursor pos
To improve BDE compatibility, the current cusor position will no longer change to the first record if the Filter property is changed on TnxTable\Query with Filtered = False
- issue 870:
Create starter edition
As a consequence of the required changes the SQL Trigger Monitor component was removed from the server data module and is now instantiated in code. The trigger monitor is now always active in non-starter editions and the UI for it is deprecated and will be removed in one of the next releases.