powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ошибка: Недопустимое значение точности
5 сообщений из 5, страница 1 из 1
Ошибка: Недопустимое значение точности
    #37057217
WordFreedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К Cache подключена таблица Access, содержащая поле типа Memo. В старой версии cache (5) всё работало без проблем.

SQL-запрос в Сache 2009.1 странно реагирует на тип свойства класса %Stream.GlobalCharacter, которое соответствет нашему полю. При замене с %Stream.GlobalCharacter на %String Sql-запрос дает ошибку: ОШИБКА #5540: SQLCODE: -400 Сообщение: SQLState: (HY104) NativeError: [98] Message: [Microsoft][Драйвер ODBC Microsoft Access]Недопустимое значение точности

Автоматическое созданное описание:
Property ITEM As %Stream.GlobalCharacter(CLASSNAME = 2, EXTERNALSQLNAME = "ITEM") [ SqlColumnNumber = 14, SqlFieldName = ITEM ];

Измененное:
Property ITEM As %String(EXTERNALSQLNAME = "ITEM", MAXLEN = 32000, TRUNCATE = 1) [ SqlColumnNumber = 14, SqlFieldName = ITEM ];

Возможно нужно еще какие-нибудь параметры указать в определении типа?
...
Рейтинг: 0 / 0
Ошибка: Недопустимое значение точности
    #37060747
WordFreedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто-нибудь работал с таблицами Access, прилинкованными к Cache, содержащих поле типа Memo?
...
Рейтинг: 0 / 0
Ошибка: Недопустимое значение точности
    #37060750
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работал.
Но зачем вы меняете тип поля %Stream.GlobalCharacter на %String?
Мне кажется, что когда мемо отображается как %Stream.GlobalCharacter - это более правильно, чем %String.
...
Рейтинг: 0 / 0
Ошибка: Недопустимое значение точности
    #37060826
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WordFreedom ,

Связал Access-таблицу через JDBC/ODBC Bridge (Caché 2010.2.2).

Сгенерировалось:
Код: plaintext
Property ITEM As %Stream.GlobalCharacter(CLASSNAME = 2, EXTERNALSQLNAME = "ITEM", EXTERNALSQLTYPE = -1) [ SqlColumnNumber = 14, SqlFieldName = ITEM ];

Запрос вида
Код: plaintext
select ITEM||'' from table1
отработал и вернул данные.

Если JDBC не хотите использовать, то попробуйте поменять определение типа на:
Код: plaintext
Property ITEM As %String(EXTERNALSQLNAME = "ITEM", EXTERNALSQLTYPE = 12, MAXLEN=32000) [ SqlColumnNumber = 14, SqlFieldName = ITEM ];
...
Рейтинг: 0 / 0
Ошибка: Недопустимое значение точности
    #37062218
WordFreedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При создании ODBC соединения [Домашняя страница] > [Конфигурация] > [Параметры Объектного/SQL Шлюзов] > [Соединения Объектного/SQL Шлюзов] поставила галочку в «Требуется длина длинных данных».

Если в описании класса прилинкованной таблицы оставлять
Property ITEM As %Stream.GlobalCharacter(CLASSNAME = 2, EXTERNALSQLNAME = "ITEM") [ SqlColumnNumber = 5, SqlFieldName = ITEM ];
то запрос вида
select * from SQLUser.DOC
выдает ошибку:
На странице возникла ошибка исполнения
Ошибка: <LIST>%Open+4^%Stream.Object.1
ErrorNo: 5002
CSP страница: /csp/sys/exp/UtilSqlQuery.csp
Область: %SYS
Класс: %cspapp.exp.utilsqlquery
Программа: %Stream.Object.1
Расположение: %Open+4

при этом запросы вида: UPDATE SQLUser.DOC SET ITEM='001' WHERE DOC_ID=3; INSERT INTO SQLUser.DOC (DOC_ID,ITEM) VALUES (10,'0004')
отрабатывают нормально.

Если же заменить тип %Stream.GlobalCharacter на %String
Property ITEM As %String(EXTERNALSQLNAME = "ITEM", MAXLEN = 32000, TRUNCATE=1) [ SqlColumnNumber = 5, SqlFieldName = ITEM ];
то запрос вида select * from SQLUser.DOC срабатывает без ошибок, а вот остальные insert и update выдают:
ОШИБКА #5540: SQLCODE: -400 Сообщение: SQLState: (HY104) NativeError: [98] Message: [Microsoft][Драйвер ODBC Microsoft Access]Недопустимое значение точности
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Ошибка: Недопустимое значение точности
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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