Опять глюки!

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Закрыто
Аватара пользователя
Admin
Администратор
Сообщения: 3961
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Опять глюки!

Сообщение Admin »

Андрей.
Я тебе может быть надоел но у меня проблемы не закончились...

Есть программа с моим классом xAccess.
Там два соединения. Одно используется для работы xAccess.
Второе тоже для него но по таймеру в треде раз в 15 секунд обновляет запись в файле пользователей ...

В чем проблема.
В программе есть связанные бровзы. Бежим по первому - второй обновляется ...
Так вот когда долго (200-300 записей) побегаешь по первому бровзу, вылетают разнообразные ошибки.
Ошибки реально очень разные и мало того! По логу видно что MAV иногда так переклинивает что он селекты неверные делает!

Мой вывод: Независимо от того в каком ты соединении выполняешь команду, используется один класс (или какие то свойства) для бинда переменных. Так вот в нем все равно как то данные курочатся...

Могу кучу примеров ошибок привести и т.д.
И кучу примеров написать.

Пробовал разные варианты. Выключал xAccess из программы и просто вешал пару тредов которые в цикле по таймеру обрабатывали по несколько записей... пара минут и прога выдает ошибки ... или сыпется.

Что делать, куда копать? Ну не должны пересекаться запросы, буфера и т.д. в разных тредах, а у меня такое ощущение что так и происходит.

Вот к примеру два одинаковых запроса, из одного и того же бровза.

Код: Выделить всё

13521864 Open cursor
13521864 Maximum read 5000 rows for cursor
Binding field 1 B."GoodsID"              = 40284
13521864 Parsing Cursor : SELECT A."CountryName",B."CertificationID",C."RealNumber",B."Declaration",B."GoodsCertificationID",C."DateTimeEnd" FROM _NK_GoodsCertification B LEFT OUTER JOIN _NK_Certification C ON C."CertificationID"=B."CertificationID" LEFT OUTER JOIN _NK_Country A ON A."CountryID"=B."CountryID" WHERE B."GoodsID"=? ORDER BY A."CountryName"
13521864 Close cursor
Всмотрись во второй и скажи как такое может быть...

Код: Выделить всё

13521864 Open cursor
13521864 Maximum read 5000 rows for cursor
Binding field 1 B."GoodsID"              = 12311
13521864 Parsing Cursor : SELECT A."CountryName",B."CertificationID",C."RealNumber",B."Declaration",B."GoodsCertificationID",C."DateTimeEnd" FROM _NK_GoodsCertification B LEFT OUTER JOIN _NK_Certification C ON C."CertificationID"=B."CertificationID" LEFT OUTER JOIN _NK_Country A ON A."CountryID"=B."CountryID" WHERE CertificationID=? ORDER BY A."CountryName"  Return Code : SQL_ERROR
ERROR: [Microsoft][ODBC SQL Server Driver][SQL Server]Ambiguous column name 'CertificationID'. [42000]
13521864 Close cursor
Жду какого нибудь ответа ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Опять глюки!

Сообщение Andrew™ »

Admin писал(а): Могу кучу примеров ошибок привести и т.д.
И кучу примеров написать.
с этого и надо начинать, бум смотреть куда и от куда ноги растут
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

где пример?
чтобы понять как лечить, надо понять что лечить

ошибка очень странная, приведённый код (трасса) на самом деле мало о чём говорит

никто на эту тему ещё не кричал, да и у меня не один проект тикает и такого рода ошибки, увы, не наблюдал, хотя имеют место быть фоновые (IDLE) процедуры, которые стучат в БД.

Две Browse в окне, бежишь по одной, рефрешится вторая, так это самая штатная операция, первая Browse вааще не рефрешится, а на .NewSelection которой происходит перезагрузка второй Browse.
Аватара пользователя
Admin
Администратор
Сообщения: 3961
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Вот вот! Все вроде стандартно...
Сегодня кину как домой приеду тебе твой пример.
Стартуется тред в нем новое соединение и дерганье записей ...
Стартуется еще один такой же.
Открывается окно бровза и бегаем по нему (бегаем активно, стрелку до упора вниз/вверх).
Через некоторое время зависон или ошибки.
Пример жесткий но это просто для того что бы показать что имеет место быть что то ...

Зависон мертвый и в таком интересном месте:

Код: Выделить всё

7160896 Open cursor
7160896 Maximum read 1 rows for cursor
Binding field 1 "InvHistRef"    = 47
и все. висим ...
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3961
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Как там успехи?
Можешь мне на мыло прислать следующий файл ... здесь, на работе проверю!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Сообщение Andrew™ »

Admin писал(а):Как там успехи?
Можешь мне на мыло прислать следующий файл ... здесь, на работе проверю!
отправляю, и кажись усё!!!
Закрыто