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

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

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

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

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

[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
30.08.2004, 23:16
    #32672325
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
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
31.08.2004, 00:00
    #32672334
_Dog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
Если у тебя ПБуилдер, то какая версия?
...
Рейтинг: 0 / 0
31.08.2004, 03:40
    #32672367
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
автор
Ошибка произошла где-то раньше.

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

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

У меня страшный зверь по прозвищу DataWindow Builder 5.0 :) End-of-life product. Перекомпилировать его возможности, к сожалению, нет. Компания Powersoft забыла выложить исходники ):
...
Рейтинг: 0 / 0
31.08.2004, 04:15
    #32672373
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
Ну вот, а я то думал, что кроме меня и Judge на SQL.RU все остальные спят :)
...
Рейтинг: 0 / 0
31.08.2004, 07:22
    #32672408
_Dog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
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
31.08.2004, 13:37
    #32673256
mustlive
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ASA8. Более свежий ODBC-драйвер на клиенте не работает
Спасибо большое, _Dog
Я тут еще поковырял, и нашел, что он лажает с этим драйвером при запросе списка таблиц (LIST TABLES). И никак это не побороть, просто драйвер подпихивает непонятно что, которое DW не кушает.

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

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


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