Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
Пользуюсь 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, и что с ним дальше делать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 12:11 |
|
||
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
Может я чего не понял в вопросе, но я в свое время когда писал прослойку над 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 } } и все. Драйвер думаю не пойдет на старую версию, т.к. системные таблицы изменились, хотя попробовать можно (если к системным таблицам обращения нет) - другой вопрос зачем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 16:46 |
|
||
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
Хитрый Вы - на C это все обрабатываете. Соответственно, можете написать, что если SQL_SUCCESS или SQL_SUCCESS_WITH_INFO или SQL_NO_DATA - то порядок. А я вынужден обрабатывать на Access и на VFP. Так там нельзя получить код, который возвращается SQLExecDirect, так как тамошние обработчики его обрабатывают и возвращают свой код возврата, интерпретируя SQL_NO_DATA как ошибку :( И что его делать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:17 |
|
||
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
В Access пользую .RecordsAffected DAO.Database или DAO.QueryDef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:50 |
|
||
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
Да. Есть такое - это если создать соединение и в нем делать conn.execute А если просто присоединенная odbc-таблица в табличной форме редактируется, запись юзер в таблице пытается удалить, приходит SQL_NO_DATA - как его обработать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2005, 16:59 |
|
||
|
Почему нет возврата успешности исполнения запроса по odbc ?
|
|||
|---|---|---|---|
|
#18+
strizhА если просто присоединенная odbc-таблица в табличной форме редактируется, запись юзер в таблице пытается удалить, приходит SQL_NO_DATA - как его обработать ?Не понял, што приходит. Если вопрос об ошибке, то в OnError этой формы можно попробовать словить номер. Или в AfterDeleteConfirm просмотреть семейство Errors (обычно сообщения ОДБС удаецца расковырять через это семейство). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 11:00 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33374257&tid=2006869]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 340ms |

| 0 / 0 |
