#excel #firebird #firebird2.5
#excel #firebird #firebird2.5
Вопрос:
Мы используем ODBC-соединения для загрузки данных из Ostendo, который основан на Firebird 2.5, в Excel.
У нас возникли проблемы с подключением полей таблицы, данные которых содержат нестандартные символы ascii. Обычно они поступают из электронных писем, которые были скопированы и вставлены в поле под названием «примечания к заданиям» (которое представляет собой большой двоичный объект типа данных).
Возможно ли просмотреть каждый символ, чтобы проверить, больше ли его номер символа 126, и если да, заменить его на «{?}» или замените все поле на «Не загружено — содержит специальные символы *». Или есть функция, которая уже делает это? Большинство из того, что я нашел в Интернете, предназначено для людей с языковыми проблемами, но для нас это смесь языка и символов, используемых для разработки.
Комментарии:
1. Для этого нет ничего встроенного. Вы могли бы использовать
SUBSTRING(...)
иASCII_VAL(...)
для проверки каждого символа, но вам нужно будет написать такую логику самостоятельно. Вероятно, это проще сделать на вашем клиентском языке (например, для Excel, на VBA)2. что такое
data type blob
? в Firebird такой вещи нет. Существует либо двоичный двоичный объект, либо текстовый двоичный объект. Двоичные двоичные объекты не содержат «символов». И текстовые двоичные объекты могут иметь разные кодировки, поэтому на один символ может приходиться до 4 байт. Какие конкретные «проблемы» у вас есть? лучше всего было бы просто прочитать все данные как есть в вашем программном обеспечении, а затем заставить ваше программное обеспечение отбрасывать или заменять данные, которые оно не может использовать, например, расширенные символы. Можете ли вы подключиться к базе данных с точно такой же кодировкой, какую использует Ostendo? Кроме того, есть ли у вас другие варианты, кроме ODBC (кажется, не поддерживается активно)?3. Спасибо за ваш отзыв. У меня возникли проблемы с загрузкой информации в Excel для редактирования в первую очередь. Мне удалось загрузить его в Excel (без сбоев), а затем найти некорректные данные и соответствующим образом изменить их (на случай, если вам было интересно, это были 3 точки и многоточие). В итоге это не решило исходную проблему, вызывающую нарушение. Но мне удалось это решить.