Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ошибки через ODBC / 8 сообщений из 8, страница 1 из 1
26.08.2005, 16:33
    #33236676
искатель22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
ASA 9.0.2
Соединение клиентского приложения через ODBC.
При просмотре пакетов с помощью CommView вижу , на все селекты сервер отвечает - "невозможно выполнить операцию", хотя SELECT написан верно и приложение получает данные от сервера.С чем связаны данные ошибки и на что мне обратить внимание. Мне кажется , что дело в ODBC.
реестр:
"Driver"="C:\\Program Files\\Sybase\\SQL Anywhere 9\\win32\\dbodbc9.dll"
"UID"="dba"
"DatabaseName"="in"
"EngineName"="in"
"ConnectionName"="Bill"
"AutoStop"="YES"
"Integrated"="NO"
"EncryptedPassword"="38e"
"Debug"="NO"
"Encryption"="Simple"
"DisableMultiRowFetch"="YES"
"CommLinks"="SharedMemory,TCPIP{host=1.1.1.1},NamedPipes"
"PrefetchRows"="1000"
"Compress"="YES"
"Description"="Bill"

Все остальное по умолчанию.
P.S Приложение использует BDE.
...
Рейтинг: 0 / 0
26.08.2005, 18:33
    #33236966
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
Команда на подключение к базе проходит? Значит все параметры связи в порядке.

Идешь в ODBC Adminstrator, ищешь там вкладку Tracing, указываешь на ней имя лог файла, жмешь кнопку "Start Tracing Now" и запускаешь свое клиентское приложение. Потыкаешься, получишь ошибку. Открываешь любым текстовым редактором лог ODBC и смотришь что BDE в реальности посылало серверу.

.... после чего долго и в меру воспитанности материшься и стираешь BDE к чертовой матери :)
...
Рейтинг: 0 / 0
26.08.2005, 18:49
    #33236986
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
искатель22 wrote:

> P.S Приложение использует BDE.

Фтопку. Для доступа к ASA есть нормальные компоненты, которые и следует
применять вместо этого мусора.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
29.08.2005, 11:06
    #33238267
искатель22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
Трассер ODBC уже делал,там все хорошо.
Запустил сервер с ключами -zr "all"
результат:
I. 29/08 10:51:05. ** REQUEST conn: 3 STMT_PREPARE "select DeltaTime from "DBA".providers where id=1
I. 29/08 10:51:05. "
I. 29/08 10:51:05. ** DONE conn: 3 STMT_PREPARE Stmt=65603
I. 29/08 10:51:05. ** REQUEST conn: 3 STMT_DESCRIBE_OUTPUT Stmt=-1
I. 29/08 10:51:05. ** DONE conn: 3 STMT_DESCRIBE_OUTPUT
I. 29/08 10:51:05. ** REQUEST conn: 3 STMT_DESCRIBE_INPUT Stmt=-1
I. 29/08 10:51:05. ** DONE conn: 3 STMT_DESCRIBE_INPUT
I. 29/08 10:51:05. ** REQUEST conn: 3 STMT_EXECUTE Stmt=-1
I. 29/08 10:51:05. ** WARNING conn: 3 code: 111 "Невозможно выполнить оператор"

и так при любом запросе

А это я вообще не понимаю что такое (какой-то системный запрос с той-же ошибкой )

I. 29/08 10:50:58. ** REQUEST conn: 3 STMT_PREPARE [large string unavailable]
I. 29/08 10:50:58. ** EXTRA conn: 3 SELECT DISTINCT if domain_name = 'float' then 'real' else domain_name endif AS TYPE_NAME,cast(coalesce(if domain_name='date' then 9 endif,if domain_name='time' then 10 endif,if .........domain_name='numeric' or domain_name='decimal') then 10 endif ) AS integer) AS RADIX,cast(NULL as smallint) AS INTERVAL_PRECISION
I. 29/08 10:50:58. FROM SYS.SYSDOMAIN
I. 29/08 10:50:58. WHERE domain_name not like 'java%'
I. 29/08 10:50:58. AND domain_name = 'double'
I. 29/08 10:50:58. ORDER BY 2,1
I. 29/08 10:50:58. ** DONE conn: 3 STMT_PREPARE Stmt=65557
I. 29/08 10:50:58. ** REQUEST conn: 3 STMT_DESCRIBE_OUTPUT Stmt=-1
I. 29/08 10:50:58. ** DONE conn: 3 STMT_DESCRIBE_OUTPUT
I. 29/08 10:50:58. ** REQUEST conn: 3 STMT_DESCRIBE_INPUT Stmt=-1
I. 29/08 10:50:58. ** DONE conn: 3 STMT_DESCRIBE_INPUT
I. 29/08 10:50:58. ** REQUEST conn: 3 STMT_EXECUTE Stmt=-1
I. 29/08 10:50:58. ** WARNING conn: 3 code: 111 "Невозможно выполнить оператор"
I. 29/08 10:50:58. ** DONE conn: 3 STMT_EXECUTE
I. 29/08 10:50:58. ** REQUEST conn: 3 CURSOR_OPEN Stmt=65557
I. 29/08 10:50:58. ** DONE conn: 3 CURSOR_OPEN Crsr=65558
I. 29/08 10:50:58. ** REQUEST conn: 3 ROW_DESCRIPTOR Crsr=65558
I. 29/08 10:50:58. ** DONE conn: 3 ROW_DESCRIPTOR
I. 29/08 10:50:58. ** REQUEST conn: 3 CURSOR_FETCH Crsr=65558, Count=1, Offset=1 (relative)
I. 29/08 10:50:58. ** DONE conn: 3 CURSOR_FETCH
I. 29/08 10:50:58. ** REQUEST conn: 3 CURSOR_FETCH Crsr=65558, Count=1, Offset=1 (relative)
I. 29/08 10:50:58. ** WARNING conn: 3 code: 100 "Строка не найдена"
I. 29/08 10:50:58. ** DONE conn: 3 CURSOR_FETCH
...
Рейтинг: 0 / 0
29.08.2005, 18:02
    #33239631
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
искатель22Трассер ODBC уже делал,там все хорошо.
Если бы там все было хорошо, оно бы все работало. Показывай.
Пока возникает подозрение что юзер не имеет прав на выборку из нужных таблиц.
...
Рейтинг: 0 / 0
30.08.2005, 10:48
    #33240385
sboyko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
у меня было подобное если имя таблицы/поля совпадало с зарезервированным словом ОДБЦ или/и самой базы
...
Рейтинг: 0 / 0
30.08.2005, 11:37
    #33240570
искатель22
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
трассер ODBC
Bill ecc-7e8 ENTER SQLExecDirect
HSTMT 036948C0
UCHAR * 0x01E5E8BC [ -3] "select Rate from "dba".USDRate where RateDate = '2005.08.30'\ d\ a\ 0"
SDWORD -3

Bill ecc-7e8 EXIT SQLExecDirect with return code 0 (SQL_SUCCESS)
HSTMT 036948C0
UCHAR * 0x01E5E8BC [ -3] "select Rate from "dba".USDRate where RateDate = '2005.08.30'\ d\ a\ 0"
SDWORD -3

Bill ecc-7e8 ENTER SQLNumResultCols
HSTMT 036948C0
SWORD * 0x01E5E940

Bill ecc-7e8 EXIT SQLNumResultCols with return code 0 (SQL_SUCCESS)
HSTMT 036948C0
SWORD * 0x01E5E940 (1)


Трассер Sybase:

I. 30/08 11:19:37. ** REQUEST conn: 27 STMT_PREPARE "select Rate from "dba".USDRate where RateDate = '2005.08.30'
I. 30/08 11:19:37. "
I. 30/08 11:19:37. ** DONE conn: 27 STMT_PREPARE Stmt=65581
I. 30/08 11:19:37. ** REQUEST conn: 27 STMT_DESCRIBE_OUTPUT Stmt=-1
I. 30/08 11:19:37. ** DONE conn: 27 STMT_DESCRIBE_OUTPUT
I. 30/08 11:19:37. ** REQUEST conn: 27 STMT_DESCRIBE_INPUT Stmt=-1
I. 30/08 11:19:37. ** DONE conn: 27 STMT_DESCRIBE_INPUT
I. 30/08 11:19:37. ** REQUEST conn: 27 STMT_EXECUTE Stmt=-1
I. 30/08 11:19:37. ** WARNING conn: 27 code: 111 "Невозможно выполнить оператор"


Я думаю, что это ошибки BDE(5.01), но использовать в проекте "сторонние" программы очень нежелательно.

описание ошибки Sybase

SQLCODE 111
Constant SQLE_CANNOT_EXECUTE_STMT
SQLSTATE 01W08
Sybase error code 590
ODBC 2 State OK
ODBC 3 State OK

Probable cause
You specified a statement for the PREPARE..WITH EXECUTE statement that cannot be executed. If you specified an output SQLDA, it may contain a DESCRIBE of the prepared statement.

Как быть?
...
Рейтинг: 0 / 0
30.08.2005, 17:34
    #33241830
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибки через ODBC
какой тип поля Rate в таблице "dba".USDRate?

искатель22Я думаю, что это ошибки BDE(5.01), но использовать в проекте "сторонние" программы очень нежелательно.
Ну не хочешь, не используй. Вызывай ODBC напрямую.
Не хочешь напрямую - существует множество библиотек упрощающих работу с ODBC, есть даже такие которые изображают из себя BDE :)

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


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