|
|
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Господа прошу у вас совета. У меня имеется запрос которые вытягиевает данные из табличек, которые привязаны через ODBC. Все было хорошо до вчерашнего дня, запрос работал год без всяких глюков. Вчера просто перестал работать, выдает "ODBC ошибка вызова". С таблицами все впорядке, связь есть. Пишу просто от отчаяния, все проверил, не знаю что делать, а начальство уже напрягает... Дайте хоть какой-нибудь совет,плз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 10:40 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Прикол. Хоть чего нибудь расскажи. Запрос приведи, что ли. Из телепатии: Структура исходных табличек поменялось Твои драйвобуквы или состав твоей локалки поменялся У тебя драйвер сломался Ты не ту программу открыл;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 10:44 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Запрост на добавление вот такой: INSERT INTO ПЛ_реклама ( отдел, дата, код_гр, литры ) SELECT DBADMIN_MANAGERS.DEPART, DBADMIN_SALESONCUSTOMER.ORDDATE, DBADMIN_GOODS.PGROUP, Sum([QTY]*[VOLUME]) AS литры FROM (DBADMIN_MANAGERS RIGHT JOIN (DBADMIN_CUSTOMERS RIGHT JOIN ((DBADMIN_SALESONCUSTOMER LEFT JOIN DBADMIN_GOODSONCUSTOMERS ON (DBADMIN_SALESONCUSTOMER.ORDID = DBADMIN_GOODSONCUSTOMERS.ORDID) AND (DBADMIN_SALESONCUSTOMER.ORDDATE = DBADMIN_GOODSONCUSTOMERS.ORDDATE)) LEFT JOIN DBADMIN_GOODS ON DBADMIN_GOODSONCUSTOMERS.GOODSID = DBADMIN_GOODS.ID) ON DBADMIN_CUSTOMERS.ID = DBADMIN_SALESONCUSTOMER.CUSTOMER) ON DBADMIN_MANAGERS.ID = DBADMIN_CUSTOMERS.MANAGER) LEFT JOIN ПЛ_реклама ON DBADMIN_GOODSONCUSTOMERS.ORDDATE = ПЛ_реклама.дата WHERE (((DBADMIN_SALESONCUSTOMER.ORDDATE)>=#11/1/2002# And (DBADMIN_SALESONCUSTOMER.ORDDATE)<DateSerial(Year(Now()),Month(Now()),Day(Now()))) AND ((DBADMIN_SALESONCUSTOMER.ISGOODS)=1) AND ((DBADMIN_SALESONCUSTOMER.STATUS)>0)) GROUP BY DBADMIN_MANAGERS.DEPART, DBADMIN_SALESONCUSTOMER.ORDDATE, DBADMIN_GOODS.PGROUP, ПЛ_реклама.дата HAVING (((DBADMIN_MANAGERS.DEPART)=1 Or (DBADMIN_MANAGERS.DEPART)=26 Or (DBADMIN_MANAGERS.DEPART)=32) AND ((DBADMIN_GOODS.PGROUP)=20 Or (DBADMIN_GOODS.PGROUP)=24 Or (DBADMIN_GOODS.PGROUP)=37 Or (DBADMIN_GOODS.PGROUP)=38 Or (DBADMIN_GOODS.PGROUP)=80 Or (DBADMIN_GOODS.PGROUP)=85) AND ((ПЛ_реклама.дата) Is Null)); Сейчас обнаружил что все данные он добавляет в таблицу как надо, но выдает в конце "Ошибка вызова..." и прерывает макрос.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 10:58 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Связанные Таблички открываются по клику? Просто селект отрабатывает без инсерта? Там лабуды нет в данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:06 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
таблички открываются, с данными все в порядке, селект не срабатывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:19 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Говорит тоже самое "ошибка вызова ODBC" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:27 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Я не говорю, что тут криминал, может, проблема в этом ON DBADMIN_GOODSONCUSTOMERS.ORDDATE = ПЛ_реклама.дата GROUP BY .., ПЛ_реклама.дата Where ..((ПЛ_реклама.дата) Is Null)); Странный синтаксис, может про ПЛ_реклама.дата недавно добавили и после этого сломалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:35 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Нет я ничего не изменял, просто пришел утром запустил запрос, он не работает а вечером до этого работалв том состоянии в котором он сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:44 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Вот такую ошибку выдает см рисунок. А с ссылками все в порядке, вообще во всем порядок...не пойму в чем проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 11:56 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Тут где-то говорилось, что если нажать на Ctrl-Breal во время ошибки, то Access тебе покажет в модуле, какая строчка вызывает ошибку. Может это как-нибудь поможет разобраться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:06 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
У него в SQL ошибка, а не в бейсике. Я выдохся. Напоследок: Лучше не писать a=1 or, Потому что в джете неизвестно, кто вперед выполнится- = или or. В транзакт эскуль можно, а в джете лучче не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:09 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
1. перенесите AND ((ПЛ_реклама.дата) Is Null)) из HAVING в WHERE (поставьте "условие" в комбо групповых операций в кострукторе) и выбросьте ПЛ_реклама.дата из Group by (если заюзали "условие" конструктора - произойдет автоматом) 2. конструкции (Field=v1 OR Field=v2 OR Field=v3...) замените на Field In(v1,v2,v3) (в конструкторе In(v1;v2;v3)) -станет читабельнее. 3. (Если весь SELECT не отрабатывает) Проверьте вложенные запросы на возврат ответов. (При стечении обстоятельств может вызываться ошибка в возврате: - например данные не так легли, хотя и есть, а структура вложенного запроса такова, что он выполняется на сервере (нет аксессовских функций)). 4. Не проходит по таймауту. (Но это обычно у "запросов к серверу". Тут не уверен.) Проверьте (св-во запроса "время ожидания ODBC"). 5. Можно попробовать его Execute из Васика, а потом просмотреть семейство еррорсов. Но врядли накопаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:47 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Этот запрос сделан в конструкторе сюда просто выложил скриптом, он работал, нормально работал в течении года и только вчера перестал. В описании ошибки накопал я вот что SQL0952N Processing was cancelled due to an interrupt. Explanation: The user may have pressed the interrupt key sequence. The statement processing is terminated. Some changes may have been applied to the database, but not committed, before termination occurred. Federated system users: this situation can also be detected by the data source. Типа пользователь клавишей прервал процесс....ничего подобного я не делал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:56 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
пользователь ОДБС не вы, а Access стаало быть кенселит запрос он: автор4. Не проходит по таймауту. (Но это обычно у "запросов к серверу". Тут не уверен.) Проверьте (св-во запроса "время ожидания ODBC"). Еще раз: 1 войди в конструктор 2 открой свойства 3(если будут св-ва поля - щелкнив верхней части окна конструктора - увидишь св-ва запроса) 4 увеличь параметр "время ожидания ODBC" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 13:07 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
Спасибо друг! помогло! Увеличил время ожидания и все заработало! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 13:44 |
|
||
|
ODBC
|
|||
|---|---|---|---|
|
#18+
автор1. перенесите AND ((ПЛ_реклама.дата) Is Null)) из HAVING в WHERE (поставьте "условие" в комбо групповых операций в кострукторе) и выбросьте ПЛ_реклама.дата из Group by (если заюзали "условие" конструктора - произойдет автоматом) - должно уменьшить время выборки, т.ч. тоже могло помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:49 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32544168&tid=1674167]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 569ms |

| 0 / 0 |
