MAV Direct ODBC

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

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

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

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

Admin писал(а):Нужно делать ADD(SELF.Q,1)
что бы запись была первой в листе.
Но! Когда открываешь форму на добавление выбрана первой не эта пустая запись а первая текстом ... Что делать?

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

BRW3:Browse.Load                         PROCEDURE
 CODE
 PARENT.Load
 SELF.Q_Mgr.ClearQ()
 ADD(SELF.Q,1)
 IF ThisWindow.Request = InsertRecord
  SELF.Selected(1)
 END
в коммерческой версии сделал это на автомате внутри библы, если Browse в режиме DropList (настройка не только контрола но и в свойствах Browse выставлен DropList с constraint'ом) автоматом добавляется пустая запись
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

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

Сообщение Admin »

не так давно в коммерческой версии появилась возможность обрабатывать ошибки с помощью ХП на сервере, на вход инфо об SQL ошибке, возвращает то что хотелось бы показать пользователю, ну а при сохранении в лог будет сохранятться как прежде та инфо которая требуется для разработчика - для анализа и разруливания ошибочной ситуации, а выглядит это следующим образом:
реализуется вызов хранимой процедуры для обработки ошибки:
Повторил весь код который ты написал:
Создал процедуру GetErrorMessage
Передал ее адрес через SETERRORFUNCTION
Создал хранимую функцию A_ErrMessage

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

Сообщение Admin »

Пробую удалить связанную запись => программа вылетает без слов... после 2-х секундных раздумий.
По предыдущему письму с вылетом все стало понятно.
Не в ту базу добавил функцию. Но все равно не очень хорошо что при отсутствии функции в базе программа высыпается без слов...

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

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

Admin писал(а):
в коммерческой версии сделал это на автомате внутри библы, если Browse в режиме DropList (настройка не только контрола но и в свойствах Browse выставлен DropList с constraint'ом) автоматом добавляется пустая запись
Не работает. Все стоит как ты указал.
Пустая запись не добавляется.
Ты получил моё письмо с регистрационными ключами?
я там написал что в ближ. время дам ссылки на актуальное состояние.
Много чего изменил и в частности это. Не так быстро изменения попадают в дистрибутив.

Ещё очень интересный фикс, именно фикс, никогда не думал что кто то попробует следующее:
Browse в режиме Tree + в режиме DropCombo - самое интересное что работает, НО, как мы знаем есть атрибут DROP - на сколько строк расскрывать выпадающий список, так вот если список линейный не Tree, то если в нём меньше записей чем указано в DROP то раскрывается только на то количество записей которое имеется, что есть правильно, НО неправильно для TREE, допустим что DROP(10), Tree по умолчанию свёрнут, допустим что в этом состоянии в выпадающем списке имеется 4 свёрнутые ветки, видим 4 строчки в выпадающем списке - Ok, раскрываем любой, при этом выпадающий список не раскрывается на 10, а просто появляется строка верт. прокрутки, и получается визуально убого вместо 10 всего 4 видимые строчки. Я считаю это багом самой клаши, чего я пофиксил, теперь в таких случаях выпадающий список динамически меняет размер при раскрытии и скрыии уровней. Ещё - для удобства раскрывать/скрывать уровни можно с помощью пробела.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

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

Admin писал(а):
Пробую удалить связанную запись => программа вылетает без слов... после 2-х секундных раздумий.
По предыдущему письму с вылетом все стало понятно.
Не в ту базу добавил функцию. Но все равно не очень хорошо что при отсутствии функции в базе программа высыпается без слов...
тут на мой взгляд ситуация следующая, ты замапил функцию обработки ошибки на свою, но в вней САМ не обрабатываешь ошибку вызова данной ХП, вставь оброаботку ошибки и думаю проблема снимется
Admin писал(а): Кстати: также бибилотека MAV ничего не говорит если я пробую записать уже изменившуюся запись ...
Это решается добавлением какого нибудь кода в A_ErrMessage?
Или еще что нибудь нужно делать... типа другой функции добавлять и т.д.
тут не понял

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

Сообщение Admin »

тут не понял
Я в форму, редактирую запись...
На другом компе юзер зашел в ту же запись, изменил ее и записал.
Я тоже что то изменил и пытаюсь записать.
Сейчас MAV ничего не делает и не говорит. Он просто не дает нажать Ok. Вернее Ok нажимается на форма не закрывается т.к. данные у текущей редактируемой на сервере уже изменились...

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

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

Admin писал(а):
тут не понял
Я в форму, редактирую запись...
На другом компе юзер зашел в ту же запись, изменил ее и записал.
Я тоже что то изменил и пытаюсь записать.
Сейчас MAV ничего не делает и не говорит. Он просто не дает нажать Ok. Вернее Ok нажимается на форма не закрывается т.к. данные у текущей редактируемой на сервере уже изменились...

Как отслеживать такую ситуацию?
Хотелось бы по примеру с удалением связанных записей получить внятное сообщение об ошибке...
понятно, увидел, для Legasy генерится соответсвующее StandfardWarning, для ABC ничего не генерится, сейчас вставлю

я так понимаю у тебя проект под ABC?
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сообщение Admin »

Да именно ABC и только ABC :)
Legacy сто лет не трогал... уже и забыл как там все ...

P.S. После отпуска обновление MAV будет?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

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

Admin писал(а):Да именно ABC и только ABC :)
Legacy сто лет не трогал... уже и забыл как там все ...

P.S. После отпуска обновление MAV будет?
соответсвующее MESSAGE по всем правилам ABC вставил

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

MAV: баг - GPF при наведении мыши на тулбар

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

Попов Андрей Александрович писал(а):Скачал обновление mav_c63_9050_060216.rar - баг присутствует.

Обстановка : Win XP SP2, C63
Подробности:
- на твоем примере MAV_TV программа сыпется просто при наведении мыши на тулбар
- в моей проге этого не происходит, я вначале открываю окно (простой брауз),
потом закрываю окно, потом мышей на тулбар и только тогда получаю GPF.
исправлено!!!
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Блокировка записей, применительно к MSSQL серверу

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

В формах редактирования при попытке изменить запись(и)
они сначало блокируются в транзакции с помощью

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

UPDATE КакоеНибудьНеReadOnlyИнеBLOBПоле=самоНАсебя WHERE по полям первичного ключа
далее идёт проверка на изменение этих записей с других рабочих станций
в случае успешной проверки - UPDATE записей в БД

так вот для MSSQL можно более оптимально сделать блокировку, её можно объеденить с проверкой, т е подымать записи для проверки, которые учавствуют в транзакции с соответсвующим хинтом

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

WITH (UPDLOCK)
т е мы проверяем и блокируем записи одновременно.

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

Чтение записей, где присутствуют BLOB поля

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

В библиотеке реализовано механизм блочного чтения, что даёт хорошие выигрыши в скоростях доступа, размер блока устанавливается в MAVSelect.Init методе в первом параметре, если он опущен, то размер блока 100, так вот если в SELECTе имеют место быть BLOB поля, то с помощью блочных курсоров их не поднять, SQLGetData для блочных курсоров не поддерживается, т е если мы хотим читать записи с BLOB полями надо было не забывать выставлять размер блока в 1, но в Process шаблоне нету места куда бы это вставить.

так вот в библиотеке, а точнее в MAVSelect объекте реализован контроль на наличие BLOB полей в результирующем SELECT запросе, и если они там есть и размер блока > 1, автоматом размер блока выставляется в 1
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

MAV Direct качай с помощью eMule

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

пробую выкладывать в эту файловую сеть
сервак

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

 217.106.18.150:4661
ну а файл ищите по ключевм словам

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

 Clarion MAV Direct ODBC
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Lookup Button и Browse Lookup filter шаблоны

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

Для режима поиска записи по введённому значению - Selected record введна возможность выставления в шаблонах Order by, что бывает очень необходимо для получения ПЕРВОЙ записи в определённой последовательности удовлетворяющей условиям ввода.
Ответить