Seite 1 von 1

Wie mit DB verbinden, die in einem Ordner mit kyrillischen Buchstaben liegt?

Verfasst: Mi 17. Dez 2025, 13:37
von cosmic_db
Hallo,

ich habe eine Firebird 3 Datenbank auf einem Deutschen Windows 10, die in diesem Ordner liegt:
E:\Test Kyrillisch\Документы\test.fdb

Wenn ich mich mit Delphi und FireDAC oder IBDAC damit verbinden möchte erscheint der Fehler:

Code: Alles auswählen

Invalid connection string
Cannot transliterate character between character sets
Die Entwickler von IBDAC sagen, das ist kein Delphi oder IBDAC-Problem, sondern ein Firebird-Problem. Als Beweis wird gesagt, dass eine Verbindung mit isql.exe aus dem Firebird 3 Ordner ebenfalls nicht klappt:

Code: Alles auswählen

C:\Program Files\Firebird\Firebird_3_0>isql.exe
Use CONNECT or CREATE DATABASE to specify a database
SQL> connect "E:\Test Kyrillisch\Документы\test.fdb"
CON> user 'SYSDBA' password 'masterkey';
Statement failed, SQLSTATE = 08001
I/O error during "CreateFile (open)" operation for file "E:\Test Kyrillisch\?????????\test.fdb"
-Error while trying to open file
-Die Syntax f³r den Dateinamen, Verzeichnisnamen oder die Datentrõgerbezeichnung ist falsch.
Was kann ich machen, um mich mit einer Datenbank zu verbinden, die in eienm Ordner mit Unicode-Zeichen (hier Kyrillisch) liegt?

Re: Wie mit DB verbinden, die in einem Ordner mit kyrillischen Buchstaben liegt?

Verfasst: Mi 17. Dez 2025, 14:09
von bfuerchau
In dem du dem Pfad ein Laufwerk zuordnest:
https://learn.microsoft.com/de-de/windo ... ands/subst

subst x: "E:\Test Kyrillisch"

Ein Uralt-Command, mit dem man vor allem lange Namen abkürzen konnte.

Re: Wie mit DB verbinden, die in einem Ordner mit kyrillischen Buchstaben liegt?

Verfasst: Mi 17. Dez 2025, 16:09
von cosmic_db
Super, die Lösung mit subst als Workaround klappt schon mal.

Das Problem dabei ist, dass das nicht bei mir sondern bei Kunden auftritt, die komplett keine IT-Kentnisse haben und es eine Lösung im niedrigen Preissegment ist. D.h. die Lösung müsste "Out ouf the box" funktionieren, ohne dass weder der Kunde noch ich etwas machen müsste. Gibt es da etwas?

Re: Wie mit DB verbinden, die in einem Ordner mit kyrillischen Buchstaben liegt?

Verfasst: Mi 17. Dez 2025, 17:52
von bfuerchau
Nein, da gibts nichts, da Namen im NTFS nur im erweiterten Path-Modus überhaupt Unicode sind.
Ggf. kann man diesen Modus probieren:
"\\?\E:\Test Kyrillisch"

Der Leadin "\\?\" wird für Namen über 260 Stellen verwendet und ggf. auch als Unicode interpretiert.
Wenn das nicht klappt, kannst du denen ja eine cmd-File mt dem Subst zur Verfügung stellen.

Die Frage ist eben, ob das Programm, dass mit der FB Verbindung aufnimmt, überhaupt Unicode kann.
Dass es mit isql nicht klappt ist auch kein Wunder, da eine CMD-Box im Modus OEM arbeitet und dann mit einer anderen Codepage (im Westen mit 850) arbeitet, die kein kyrillisch kann.
Es liegt also nicht am ISQL sondern an Windows.

Du kannst bzgl. ISQL mal eine CMD-Box aufmachen und per
chcp
die aktuelle Codepage anzeigen und mit
chcp 65001
auf Unicode umschalten und dann mal versuchen mit kyrillisch zu connecten.

Und zu guter Letzt: Einfach einen Pfad aus ASCII-Zeichen verwenden, also A-Za-z0-9.

Re: Wie mit DB verbinden, die in einem Ordner mit kyrillischen Buchstaben liegt?

Verfasst: Mi 17. Dez 2025, 18:37
von bfuerchau
Hier gibts noch eine gute Erklärung:
https://stackoverflow.com/questions/415 ... rs-in-path

Wenn der Pfadname in UTF8 übergeben wird, dann sollte es klappen.
Kommt allerdings auf die Version des Treibers an, mit dem auf die FB zugegriffen wird.
Da man aber meist die Anwendung nicht anpassen kann, wirds wohl auch mit UTF8 nicht klappen.