|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
|
Interbase SMP 2009 в Windows Server 2019 ошибка сохранения EXCEPTIONS23.01.2024, 09:12. Показов 1290. Ответов 8
Метки нет (Все метки)
Доброго дня!
При переносе базы interbase 2009 со старой тачки на новую с новой Windows Server 2019 возникла следующая проблема. Перестали в клиенте программы, написанной еще в D7, появляться exceptions от БД из хранимок. Начал смотреть, разбираться, решил перекомпилировать хранимку, которая должна отдавать текст warning от exceptions и обнаружил, что при компиляции хранимки получаю ошибку, мол "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets.". Долго не мог понять, где вдруг появились кодировки, которые не может компилятор обработать. Методом исключения нашел, что такие места вызывают куски кода, где происходит проверка условия и по нему выкидывается exceptions на клиент. Попробовал отредактировать текст самого exceptions и в ответ получил вот такое: "This operation is not defined for system tables. unsuccessful metadata update. MODIFY EXCEPTION failed. arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets." Причем под более старой версии Windows 7 х64 или Windows Server 2008 х64 такой проблемы само собой не наблюдалось. Понимаю, что большая разница в версиях системы и могли появиться более весомые изменения в системной кодировке по умолчанию или иных настройках. Плюс версия самой базы уже старенькая. Но кодировка, где хранятся сообщения, имеет значение "None", как и collate. Даже не unicode_fss, как большинство остальных полей в системных таблица. Пробовал менять кодировку и collate у этого поля в таблице rdb$exceptions. Не помогло. Может кто-то сталкивался с подобным и сможет подсказать как это решить? Или тут уже ничего не поделать и пора переходить на более новую версию Interbase? 2020 к примеру.
0
|
|
| 23.01.2024, 09:12 | |
|
Ответы с готовыми решениями:
8
Вход в панель управления MS Exchange Server 2019 на Windows Server 2019 Windows Server 2019 powershell ошибка
|
|
184 / 37 / 8
Регистрация: 14.04.2019
Сообщений: 238
|
|
| 23.01.2024, 12:14 | |
|
А какая вообще кодовая страница для строковых данных?
Добавлено через 4 минуты Пардон, невнимательно читал. Кодировку none придется переделывать. И это отдельная задача. Новые версии сервера тут вряд ли помогут. Берешь бэкап gbk и восстанавливаешь с изменением кодировки. Но это отдельная тема. В интернете полно рекомендаций, но базы у всех разные.
1
|
|
|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
|||
| 23.01.2024, 16:39 [ТС] | |||
|
Добавлено через 3 минуты То есть даже так. Ну перенос-то я и делал через backup/restore. Значит нужен будет повторный restore, только с изменением кодировки. Спасибо, попробую поискать в нете инфо в этом ключе.
0
|
|||
|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
|
| 24.01.2024, 15:59 [ТС] | |
|
Заметил еще странности с этой базой.
Есть системная таблица rdb$database, где в поле RDB$CHARACTER_SET_NAME по идее указана кодировка, которая была выбрана при создании базы. Я пару баз создал тестовых, указав в первый раз кодировку NONE, во второй WIN1251. В этих базах в этой системной таблице в этом поле были соответствующие значения. Причем в системных таблицах RDB$ некоторые поля таки имеют по умолчанию кодировку NONE, т.е. это не зависит от выбранной кодировки при создании. Однако, когда посмотрел rdb$database у рабочей базы, то в поле RDB$CHARACTER_SET_NAME просто было NULL. Что меня озадачило сильнее)))) У пользовательских таблиц в базе кодировка при создании указывалась WIN1251 и у полей varchar тоже. Поэтому там-то вопросов нет. Просто получается, а где именно кодировку менять то надо? То что у самой базы там стоит null это треш конечно. У системных таблиц для полей varchar кодировка NONE это похоже норма. Хотя после других баз с которыми работал, это странно конечно. В моем случае наверно только, если попробовать создать новую базу с корректным выбором кодировки WIN1251, после извлечь метадата из рабочей и поместить в новую. А потом уже и данные перенести из рабочей в новую. И после проверить будет ли появляться ошибка при попытке отредактировать exception и соответственно будет ли ошибка при попытке скомпилировать процедуру из-за таких exception под windows 10/windows server 2019. Потому что под версиями ниже такой ошибки я не наблюдал.
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
|
| 24.01.2024, 16:21 [ТС] | |
|
Извиняюсь, надо было сразу приложить скрины.
Собственно вот, что я вижу, когда пытаюсь сохранить exception. Та же самая ошибка появляется, когда пытаюсь скомпилировать процедуру, в которой есть условие с exception. Комментирую кусок с exception и компиляция проходит нормально. Собственно вот поле character set из системной таблицы rdb$database А вот структура системной таблицы exception. Ровно точно такая же структура у этой таблицы, когда создается база с нормальным указанием кодировки по умолчанию. Дело возможно конечно не в этом, а не дает сохранить возможно по другой причине.
0
|
|
|
184 / 37 / 8
Регистрация: 14.04.2019
Сообщений: 238
|
|
| 25.01.2024, 00:11 | |
|
Вручную менять значения полей у системных таблиц - гнилое занятие. Я когда-то тоже пробовал, но ничего хорошего не получилось
0
|
|
|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
||
| 25.01.2024, 00:53 [ТС] | ||
|
Да и копание в системных таблицах дело интересное, но лучше в плане изучения конечно. Хотя иногда и бью себя по рукам за то, что скопировать права с одного пользователя на другого гораздо быстрее через RDB$USER_PRIVILEGES в один запрос, чем лопатить портянки с разрешениями на все соответствующие таблицы и процедуры. Тем более, когда у тебя "над душой" стоят и ждут, что ты сделаешь это в мгновение ока) А exception редактируется из соответствующего раздела в ibexpert
0
|
||
|
0 / 0 / 0
Регистрация: 17.10.2011
Сообщений: 10
|
|
| 29.01.2024, 12:44 [ТС] | |
|
Создавал чистую базу с корректным указанием кодировки базы. Excpetions на русском просто не воспринимает. Ни создание, ни редактирование.
Обновил interbase до версии 2020 и проблема ушла. Правда подраспухла база немного при развертывании из бэкапа, но зато теперь ошибок нет. Тестирую работу старой программы с новой версией IB и замечаю, что все стало шевелиться гораздо быстрее. В принципе вопрос можно считать закрытым тогда)
0
|
|
| 29.01.2024, 12:44 | |
|
Помогаю со студенческими работами здесь
9
Ошибка 0x00000709 при добавлении принтера общего доступа на windows server 2019 Сервер условной пересылки. Ошибка между двумя компьютерами. Windows Server 2019
Использование SQL Server на Windows Server 2019 в VirtualBox FTP server in Windows server 2019 IIS Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|