ЛК на Fancy с Firebird: все запросы к DEPO, курсы, база SPECTRE
ЛК (bj-lk берёт данные у bj-server) сам работает с той СУБД, что выбрана для DEPO. - Перевод на Firebird: YEAR/MONTH/DAY(x) — EXTRACT, AS float — AS DOUBLE PRECISION (float T-SQL — 8 байт, FLOAT Firebird — 4: точность сумм и цен в ЛК); шаблоны со сложением строк (история операций Hist02, поиск клиента Man01) — Firebird-тексты до подстановки (depoSQL); UPPER по кириллице — в WIN1251 (база NONE). - Курсы валют (Fx01): на Firebird запрос от всех курсов шёл больше 200 с (лимит 15 с — курсов нет) — для Firebird от 20 валют, 0,2 с. - База SPECTRE (архив портфеля и операций ЛК): поле в «Трансферные таблицы DEPO»; у Firebird — путь или строка подключения Fancy (может быть на другом компьютере); не задана — ЛК пишет, где указать. На данных SPECTRE не проверено: базы нет. - Тест FBLiveLK: функции ЛК, ручного ввода, сверки переводов и QUIK на копии базы по договору К1 Бубликова — все работают, 0,07–0,26 с каждая; FBLivePrepare — 101 из 101 запроса. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -102,6 +102,25 @@ func (h *setupHandlers) saveFancyDepoTables(w http.ResponseWriter, r *http.Reque
|
||||
if m := strings.TrimSpace(r.FormValue("iis_contract_marker")); len([]rune(m)) <= 100 {
|
||||
s.IISContractMarker = m
|
||||
}
|
||||
// база брокерского учёта SPECTRE (архив портфеля и операций в ЛК); у Firebird — путь или строка подключения Fancy
|
||||
if sp := strings.TrimSpace(r.FormValue("spectre_database")); sp == "" {
|
||||
s.SpectreDatabase = ""
|
||||
} else if s.IsFirebird() {
|
||||
if _, _, path, err := fbSplitConn(sp); err != nil || !validFBPath(path) {
|
||||
msg := "путь — без кавычек, ; ? и #"
|
||||
if err != nil {
|
||||
msg = err.Error()
|
||||
}
|
||||
setupFlash(w, r, "База SPECTRE: "+msg)
|
||||
return
|
||||
}
|
||||
s.SpectreDatabase = sp
|
||||
} else if validDBName(sp) {
|
||||
s.SpectreDatabase = sp
|
||||
} else {
|
||||
setupFlash(w, r, "База SPECTRE: имя — только латинские буквы/цифры/_, начинать с буквы")
|
||||
return
|
||||
}
|
||||
mode := r.FormValue("depo_tables_mode")
|
||||
if mode != "auto" && mode != "script" {
|
||||
mode = ""
|
||||
|
||||
Reference in New Issue
Block a user