Description
We have a program which makes backups of our Firebird databases.
If the database name has only ASCII chars, it works correctly.
But if the database name has extended ASCII chars (for example "Ñ" or "Ç"), the backup fails.
We tested it on Firebird-5.0.3.1659-0-f4c0f85-windows-x64.
We use Delphi 12.3, and the component TFDFBNBackup.Backup, which breaks with error "[FireDAC][Phys][FB]I/O error during "CreateFile (open)" operation for file".
If we try to make an nbackup directly, with Windows command "nbackup" it works correctly.
Initially we thought it was a bug in Delphi component, so we contacted Delphi support.
But they say
"It seems there is a bug in Firebird isc_action_svc_nbak service (behind TFDFBNBackup). It does not support isc_spb_utf8_filename properly. All the possible combinations of isc_spb_utf8_filename and isc_spb_dbname value encoding fail with I/O or encoding errors. The issue should be reported to Firebird team."
So we asked about this issue in Firebird forums (https://groups.google.com/g/firebird-support/c/fGcByzSazNo).
In forums, they said that if it is reproducible with fbsvcmgr we shoud open a ticket in the Firebird tracker providing full
fbsvcmgr command line. In Firebird forums they also said there are bug reports about this in the tracker eg #2603.
We have tried the command with fbsvcmgr and it breaks. We have also seen the firebird issue 2603, and we think that our issue could be related to that issue, but our case is specifically about nbackup and we have tested it on a new version of Firebird (Firebird-5.0.3.1659-0-f4c0f85-windows-x64). So we think this could be reported as an independent issue.
The database filename we used is "C:\Users\Diego\Desktop\EMPLOYEEÑ.FDB", and the backup filename is "C:\Users\Diego\Desktop\EMPLOYEEÑ.NBK"
This database is a copy of standard EMPLOYEE.FDB database. The only change is the database filename, which in our case contains a "Ñ" character.
The commandline we used is:
"C:\Program Files\Firebird\Firebird_5_0\fbsvcmgr" service_mgr -user sysdba -password masterkey -action_nbak -nbk_level 0 -dbname C:\Users\Diego\Desktop\EMPLOYEEÑ.FDB -nbk_file C:\Users\Diego\Desktop\EMPLOYEEÑ.NBK
We used the exact filename for the commandline, as the filename on Windows.
The commandline tool breaks with error:
"I/O error during "CreateFile (open)" operation for file "C:\USERS\DIEGO\DESKTOP\EMPLOYEEÃ'.FDB"
-Error while trying to open file
-El sistema no puede encontrar el archivo especificado."
Thanks in advance