Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение строковой функции превращается в "????" при обращении к ней в запросе / 19 сообщений из 19, страница 1 из 1
22.08.2004, 19:24:08
    #32660371
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Аксесс 97, т.е. стринги сидят не в юникоде. Функция строкового типа. При заходе в функцию видно в отладчике, что она возвращает правильное значение. К функции обращается запрос, но в поле, которое вычисляется при помощи этой функции, вместо правильного значения показано "????". Брал Asc от этих символов - получил честным образом код вопросительного знака.

Одна деталь. Эти символы - это ивритские буквы. Поэтому вопрос в первую очередь к тем, кто знаком с закидонами ивритского Аксесса. Но возможно, что и с русскими буквами тоже такое бывает.

Заранее спасибо.
...
Рейтинг: 0 / 0
22.08.2004, 19:36:04
    #32660381
vam911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Бывает - все работает нормально - фенька в шрифтах.

Исчезает само-собой при определенных сочетаниях Windows-Access закономерность в сочетаниях пока установить не удалось :).

Как я понял проблема в том, что где-то внутри юникод преобразуется в аски неправильно.
...
Рейтинг: 0 / 0
22.08.2004, 19:39:25
    #32660382
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
vam911Как я понял проблема в том, что где-то внутри юникод преобразуется в аски неправильно.
Юникод ни при чем, я с этого начал.

Больше того. Эта функция берет значения из некой таблицы. В запросе два поля - одно вычисляется через эту функцию, а другое показывается прямо из той же таблицы. Во втором значения правильные!
...
Рейтинг: 0 / 0
22.08.2004, 19:43:23
    #32660384
vam911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Владимир Саныч vam911Как я понял проблема в том, что где-то внутри юникод преобразуется в аски неправильно.
Юникод ни при чем, я с этого начал.

Больше того. Эта функция берет значения из некой таблицы. В запросе два поля - одно вычисляется через эту функцию, а другое показывается прямо из той же таблицы. Во втором значения правильные!

А если в дебуг загнать функцию, что там произходит.
...
Рейтинг: 0 / 0
22.08.2004, 19:44:18
    #32660385
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
vam911А если в дебуг загнать функцию, что там произходит.
Блин. Ну написано же в вопросе.
...
Рейтинг: 0 / 0
22.08.2004, 19:50:01
    #32660389
vam911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
а если "поиграть" с телом фуекции в цлях упрощения (вход=выход)?
...
Рейтинг: 0 / 0
22.08.2004, 19:58:16
    #32660390
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
vam911а если "поиграть" с телом фуекции в цлях упрощения (вход=выход)?
Ой. Вообще что-то странное. Запрос перестал запускаться. Выдает MsgBox с пустым текстом - и всё.
...
Рейтинг: 0 / 0
22.08.2004, 19:58:39
    #32660391
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
и тмпом параметов/значения пощёлкать -string/variant
...
Рейтинг: 0 / 0
22.08.2004, 20:29:02
    #32660397
YBW
YBW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Владимир Саныч vam911а если "поиграть" с телом фуекции в цлях упрощения (вход=выход)?
Ой. Вообще что-то странное. Запрос перестал запускаться. Выдает MsgBox с пустым текстом - и всё.

ИМХО если цифры и символы выдает правильно - значит шрифты...
...
Рейтинг: 0 / 0
22.08.2004, 21:10:12
    #32660402
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Alexey Shи тмпом параметов/значения пощёлкать -string/variant
Пробовал, ничего не меняется.

YBWИМХО если цифры и символы выдает правильно - значит шрифты...
А вот это, как ни смешно, не пробовал... Попробую.

Но шрифты - сильно сомневаюсь я, что дело в них. Потому что код ASCII этого вопросительного знака - как у вопросительного знака, а не как у буквы.
...
Рейтинг: 0 / 0
22.08.2004, 21:11:49
    #32660403
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Саныч, напустил бы JetComp на это дело для начала...

(с выражением лица)
...
Рейтинг: 0 / 0
22.08.2004, 21:23:04
    #32660408
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
VictoshaСаныч, напустил бы JetComp на это дело для начала...
Да, была мысль где-то в подсознании... Спасибо. :^)
...
Рейтинг: 0 / 0
23.08.2004, 09:02:10
    #32660564
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Полуофф
СанычАксесс 97, т.е. стринги сидят не в юникоде
Саныч, а кто тебе сказал, что в аксесе 97 стринги - не в юникоде???
...
Рейтинг: 0 / 0
23.08.2004, 09:14:09
    #32660588
kedzo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
хм. у нас была похожая проблема.
может поможет:
функция брала данные из прилинкованной таблицы (mdb) - результат функции был: ????
база с данными сжималась 2 раза: 1-раз с основной сортировкой, потом с русской. База с интерфейсом также 2 раза: основной и русской.
Модуль с функцией удалялся. Потом создавался заново, текст при этом копировался через блокнот, а не на прямую.
После этого функция возвращала нормальные значения.

Удачи.
...
Рейтинг: 0 / 0
23.08.2004, 10:59:36
    #32660778
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Лох ПозорныйСаныч, а кто тебе сказал, что в аксесе 97 стринги - не в юникоде???
Во-первых, брал пробу на Asc.
Во-вторых:
http://sql.ru/forum/actualthread.aspx?tid=59204&pg=-1

kedzoхм. у нас была похожая проблема.
может поможет:
функция брала данные из прилинкованной таблицы (mdb) - результат функции был: ????
база с данными сжималась 2 раза: 1-раз с основной сортировкой, потом с русской. База с интерфейсом также 2 раза: основной и русской.
Модуль с функцией удалялся. Потом создавался заново, текст при этом копировался через блокнот, а не на прямую.
После этого функция возвращала нормальные значения.

Удачи.
Ух как хитро... Попробую, спасибо. :^)
...
Рейтинг: 0 / 0
23.08.2004, 11:13:37
    #32660800
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
2 Саныч
В таблицах оно может и не юникод, а вот VB-шные функции тока с юникодовскими строками оперируют. Можешь на пробу LenB от строки посмотреть, или в массив байт загнать.

В запросе два поля - одно вычисляется через эту функцию, а другое показывается прямо из той же таблицы. Во втором значения правильные!
Ну вот из таблицы - оно берет напрямую. А для VB - конвертит, сначала в юникод, потом возможно обратно, и где-то его возможно сколбашивает.
...
Рейтинг: 0 / 0
23.08.2004, 14:20:49
    #32661218
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Лох Позорныйа вот VB-шные функции тока с юникодовскими строками оперируют.
А чего же тогда Asc возвращает значение меньше 256?
...
Рейтинг: 0 / 0
23.08.2004, 14:26:12
    #32661235
vam911
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Вплоть до выхода из функции все нормально??

если да. попробуй для теста - передать в ответ не всю строку, а только ее первый симовол, причем сделай chr(asc(left(1,str))).

Интересен результат.
...
Рейтинг: 0 / 0
23.08.2004, 14:33:20
    #32661258
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Значение строковой функции превращается в "????" при обращении к ней в запросе
Владимир Саныч Лох Позорныйа вот VB-шные функции тока с юникодовскими строками оперируют.
А чего же тогда Asc возвращает значение меньше 256?
Во-первых Asc и не может вернуть значение больше 255
Во-вторых:
Код: plaintext
1.
2.
3.
?asc("a")
  97  
?ascw("a")
  97  
Так что пофигу что оно там возвращает :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Значение строковой функции превращается в "????" при обращении к ней в запросе / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]