powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему нет возврата успешности исполнения запроса по odbc ?
6 сообщений из 6, страница 1 из 1
Почему нет возврата успешности исполнения запроса по odbc ?
    #33368576
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуюсь PSQL 7.4.6, ODBC 7.03.02, Win 98 SP2, т.е. самыми стабильными в своих семействах.
Запросы на удаление одной записи в некоторых таблицах
(типа delete from table where key='значение')
удаляют запись, но по ODBC в качестве строки ответа ничего не приходит (т.е. драйвер возвращает "ODBC GetDiagnostics failed", а должно прийти "OK")
То же самое происходит на операторах update, когда условие в них не отбирает ни одной записи, соответственно никакого обновления и не происходит. Но это то можно понять, а в удалении почему нет OK ?

Попутно вопрос. Можно ли на такой конфигурации софта обновить драйвер ODBC до последней версии (8.02) ? Я скачал его, получил архив msm, и что с ним дальше делать ?
...
Рейтинг: 0 / 0
Почему нет возврата успешности исполнения запроса по odbc ?
    #33369517
Hordi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я чего не понял в вопросе, но я в свое время когда писал прослойку над ODBC, то делал так:

...
SQLRETURN r = SQLExecDirect(stmr,(SQLCHAR*)"SELECT * FROM xtable",SQL_NTS);
if( SQL_SUCCESS==r || SQL_SUCCESS_WITH_INFO || SQL_NO_DATA==r ){ //все ОК

SQLSMALLINT cols = 0;
r = SQLNumResultCols(stmt,&cols);
if(cols){ //было что-то типа SELECT
}
}

и все.

Драйвер думаю не пойдет на старую версию, т.к. системные таблицы изменились, хотя попробовать можно (если к системным таблицам обращения нет) - другой вопрос зачем!
...
Рейтинг: 0 / 0
Почему нет возврата успешности исполнения запроса по odbc ?
    #33370821
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хитрый Вы - на C это все обрабатываете. Соответственно, можете написать, что если
SQL_SUCCESS или SQL_SUCCESS_WITH_INFO или SQL_NO_DATA - то порядок.
А я вынужден обрабатывать на Access и на VFP. Так там нельзя получить код, который возвращается SQLExecDirect, так как тамошние обработчики его обрабатывают и возвращают свой код возврата, интерпретируя SQL_NO_DATA как ошибку :( И что его делать ?
...
Рейтинг: 0 / 0
Почему нет возврата успешности исполнения запроса по odbc ?
    #33370937
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Access пользую .RecordsAffected DAO.Database или DAO.QueryDef
...
Рейтинг: 0 / 0
Почему нет возврата успешности исполнения запроса по odbc ?
    #33374257
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Есть такое - это если создать соединение и в нем делать
conn.execute
А если просто присоединенная odbc-таблица в табличной форме редактируется, запись юзер в таблице пытается удалить, приходит SQL_NO_DATA - как его обработать ?
...
Рейтинг: 0 / 0
Почему нет возврата успешности исполнения запроса по odbc ?
    #33376110
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizhА если просто присоединенная odbc-таблица в табличной форме редактируется, запись юзер в таблице пытается удалить, приходит SQL_NO_DATA - как его обработать ?Не понял, што приходит.
Если вопрос об ошибке, то в OnError этой формы можно попробовать словить номер. Или в AfterDeleteConfirm просмотреть семейство Errors (обычно сообщения ОДБС удаецца расковырять через это семейство).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function fErr_discription() As String
On Error Resume Next '(вызывается в чужих обработчиках, не должен вызывать ошибок)
Dim err_d As String
' DAO Error Handler
      Dim MyError As Error
      'MsgBox Errors.Count
      For Each MyError In DBEngine.Errors
        With MyError
          err_d = err_d & .Number & " " & .Description & ";"
        End With
      Next MyError
      fErr_discription = err_d
End Function
вообще-то уместнее в Аксессе распрошать
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Почему нет возврата успешности исполнения запроса по odbc ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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