DEPO Firebird: путь к базе — и строкой подключения Fancy целиком (база на другом компьютере)

Поле пути в мастере и в «Таблицах обмена» принимает строку подключения из настройки Fancy: «сервер:путь»,
«сервер/порт:путь», «\\сервер\D:\путь», «\\сервер\D$\путь», «inet://сервер:порт/путь» — адрес и порт
bj берёт из неё (в мастере поля заполняются сразу при вставке). Сетевая папка «\\сервер\папка\…» — ошибка с
подсказкой: Firebird открывает базу только на своём диске, адрес — компьютер с сервером Firebird.
Проверено мастером на копии базы: пустой адрес + «127.0.0.1/3050:путь» — подготовка и BJ_PING.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-27 19:15:46 +03:00
parent 50e420f4a0
commit 1d8bb0c032
8 changed files with 123 additions and 9 deletions
+19 -1
View File
@@ -77,7 +77,25 @@ func (h *setupHandlers) saveFancyDepoTables(w http.ResponseWriter, r *http.Reque
}
s := h.rc.Snapshot().Fancy
db := strings.TrimSpace(r.FormValue("depo_database"))
if db != "" && !validDBName(db) {
if s.IsFirebird() && db != "" { // путь к базе на сервере Firebird или строка подключения Fancy целиком
host, p, path, err := fbSplitConn(db)
if err != nil {
setupFlash(w, r, "Таблицы DEPO: "+err.Error())
return
}
if !validFBPath(path) {
setupFlash(w, r, "Таблицы DEPO: путь к базе — без кавычек, ; ? и #")
return
}
if host != "" && (host != s.Server || (p != 0 && p != s.Port)) {
s.Server = host
if p != 0 {
s.Port = p
}
s.DepoJobCheck, s.DepoJobCheckOK = "", false
}
db = path
} else if db != "" && !validDBName(db) {
setupFlash(w, r, "Таблицы DEPO: имя базы — только латинские буквы/цифры/_, начинать с буквы")
return
}