powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA8. Более свежий ODBC-драйвер на клиенте не работает
12 сообщений из 12, страница 1 из 1
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32669684
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил ASA8, распоследнее обновление.
Клиент отказывается работать, мотивируя отказом драйвера (см. рис).
Подключение происходит нормально (откуда угодно, включая Excel).
А мой клиент не ретрайвит данные.

Путем проб и ошибок был установлен ODBC-драйвер ASA8 образца 2003 года,
и все стало работать. Скажите мне, неумному, что такого можно было напортачить в драйвере? Или это кривой клиент?
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32669720
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообще-то там несколько кривостей :) И в драйвере и в клиенте.
Начнем по порядку:
SQLSTATE S1003 это ошибка из ODBC 2.x в ODBC 3.x она была смапирована на HY003 "Invalid application buffer type" и случиться она может при вызове функций SQLBindCol, SQLBindParameter, SQLGetData.

Теперь уточняй чего именно клиент делает когда получает такую ошибку.
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32669729
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, я не знаю что он делает (чиста канкретна :)
А по факту - он не видит НИ ОДНОЙ таблицы в базе. Т.е. чего-то запрашивает (не знаю как промежуточном ПО организован просмотр списка таблиц, читает он системные таблицы с описаниями или как-то по-другому действует), и получает в итого дулю с маслом. Не видит даже системных таблиц.

Самое мерзкое, что даже клятый Эхель все прекрасно видит и выполняет запросы безо всякого ущерба для себя. Другое дело, что Эхель - 2000 года, а мой клиент - 1997. Может, в стандарте ODBC за это время что-то сменилось?

Пока вот выкрутился дровами от ASA8.0.2, но страшновато юзать базу 8.0.3 старым драйвером, вдруг че поломается?
Есть слабая надежда, что где-нибудь что-нибудь ручками поправить можно. Знать бы где ковырять. И что.
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32671891
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну не так уж оно и страшно, использовать чуть более старый ODBC драйвер чем база. Ничего там поломаться не должно.
А насчет покрутить ручками, попробуй сделать свежую пустую базу 8.0.3 и подсунь ее клиенту вместо рабочей. Если он на пустой (или демо) базе не выругается, бери свою рабочую базу и сравнивай ее опции с опциями по умолчанию. Я когда мигрировал с семерки на девятку именно так и отлавливал странные глюки :)
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672297
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовал я создавать новые базы. Ничего хорошего. После 8.01 ни одна из них не работает. Мне кажется, что это как-то связано с доп. поддержкой Java, появившейся в 8.02
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672309
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я даже нашел место, на которое он ругается:

[SRC ODBCtrace]
6e8-284 EXIT SQLSetStmtOption with return code 0 (SQL_SUCCESS)
HSTMT 00B92178
UWORD 9 <SQL_ROWSET_SIZE>
SQLPOINTER 0x00000064 (BADMEM)

DW050 6e8-284 ENTER SQLBindCol
HSTMT 00B92178
UWORD 1
SWORD 30709 <unknown>
PTR 0x001BB6AC
SQLLEN 129
SQLLEN * 0x001AACA4

6e8-284 EXIT SQLBindCol with return code -1 (SQL_ERROR)
HSTMT 00B92178
UWORD 1
SWORD 30709 <unknown>
PTR 0x001BB6AC
SQLLEN 129
SQLLEN * 0x001AACA4
[/src]
А должно быть так:

[SRC ODBCtrace]
574-578 EXIT SQLSetStmtOption with return code 0 (SQL_SUCCESS)
HSTMT 00B91798
UWORD 9 <SQL_ROWSET_SIZE>
SQLPOINTER 0x00000064 (BADMEM)

DW050 574-578 ENTER SQLBindCol
HSTMT 00B91798
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x001BB944
SQLLEN 129
SQLLEN * 0x001B8AF0

DW050 574-578 EXIT SQLBindCol with return code 0 (SQL_SUCCESS)
HSTMT 00B91798
UWORD 1
SWORD 1 <SQL_C_CHAR>
PTR 0x001BB944
SQLLEN 129
SQLLEN * 0x001B8AF0 (0)
[/src]
Что бы это значило?
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672325
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustliveЯ даже нашел место, на которое он ругается:

[SRC ODBCtrace]
DW050 6e8-284 ENTER SQLBindCol
HSTMT 00B92178
UWORD 1
SWORD 30709 <unknown>
PTR 0x001BB6AC
SQLLEN 129
SQLLEN * 0x001AACA4
[/src]
Что бы это значило?
Ошибка произошла где-то раньше. Драйвер сообщает клиенту тип колонки, но вместо единички (char то есть) появляется нечто странное (30709). А потом клиент пытается привязать колонку резалтсета к собственной переменной, а в качестве типа колонки выдает 30709.
"Invalid application buffer type" :)

Кстати, обрати внимание на всякий случай. Клиент работает с ODBC 2.*, а на машине стоит скорее всего ODBC 3.5 и выше. Тут тоже могут быть разночтения...
Если есть возможность - было бы неплохо перекомпилировать клиента.
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672334
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у тебя ПБуилдер, то какая версия?
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672367
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Ошибка произошла где-то раньше.

Да нет, судя по логу - именно в этом месте начинаются (да собственно и заканчиваются error'ом чудеса в решете). После этого клиенту уже остается только тихо офигевать

автор
Если у тебя ПБуилдер, то какая версия?

У меня страшный зверь по прозвищу DataWindow Builder 5.0 :) End-of-life product. Перекомпилировать его возможности, к сожалению, нет. Компания Powersoft забыла выложить исходники ):
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672373
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, а я то думал, что кроме меня и Judge на SQL.RU все остальные спят :)
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32672408
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
In ASA 8.0.2 build 4330 the Sybase added the support for the UniqueIdentifier data-type, (SQL_GUID). This is causing PB 5 to become confused. All works fine with PB 9. Upgrade to PB9 or revert dbodbc8.dll back to 8.0.2 ebf 4322.

Возможно переход на 6.5.1. помог бы....

По 'правилам от Сибасе', с ОДБЦ от АСА802 можно работать с любой АСА.
...
Рейтинг: 0 / 0
ASA8. Более свежий ODBC-драйвер на клиенте не работает
    #32673256
mustlive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, _Dog
Я тут еще поковырял, и нашел, что он лажает с этим драйвером при запросе списка таблиц (LIST TABLES). И никак это не побороть, просто драйвер подпихивает непонятно что, которое DW не кушает.

Если же они сами пишут, что нужен downgrade для корректной работы, поробуем поверить на слово.

Всем спасибо
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASA8. Более свежий ODBC-драйвер на клиенте не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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