Страница 8 из 12
Добавлено: 24 Октябрь 2005, 11:13
Andrew™
Andrew Myalin писал(а):
всё, разобралси, просто до сего момента никто о данной проблеме не заявлял, всем хватало секунд, сейчас оттестирую и дам ссылку на обновление
линк на обновление ушёл мылом
Обновление
Добавлено: 24 Октябрь 2005, 11:59
Andrew™
Библиотека позволяет одновременно работать в разных соединениях, в форме редактирования в свойствах SaveButton шаблона введено было специальное свойство для переключения на определённое соединение - Connect Name. Теперь такое же свойство появилось и для BrowseBox шаблона.
Раньше при необходимости всё это приходилось делать руками.
Добавлено: 01 Ноябрь 2005, 11:28
Arseniy
При сборке выдается сообщение: Source file app_mav.clw not found. Что делать?
Добавлено: 01 Ноябрь 2005, 11:33
Andrew™
Arseniy писал(а):При сборке выдается сообщение: Source file app_mav.clw not found. Что делать?
я так понимаю что это ШВС и в глобальных настройках приложения во всех DROP LISt'ах выбрать вместо рускоязычных соответсвующие англоязычные названия
Добавлено: 01 Ноябрь 2005, 11:54
Гость
Andrew Myalin писал(а):Arseniy писал(а):При сборке выдается сообщение: Source file app_mav.clw not found. Что делать?
я так понимаю что это ШВС и в глобальных настройках приложения во всех DROP LISt'ах выбрать вместо рускоязычных соответсвующие англоязычные названия
а вот еще: ошибка No Matching Prototype avaliable
IF DbManager.Connect('SQL Server',GlobalConnectionString)
Добавлено: 01 Ноябрь 2005, 12:02
Andrew™
Anonymous писал(а):Andrew Myalin писал(а):Arseniy писал(а):При сборке выдается сообщение: Source file app_mav.clw not found. Что делать?
я так понимаю что это ШВС и в глобальных настройках приложения во всех DROP LISt'ах выбрать вместо рускоязычных соответсвующие англоязычные названия
а вот еще: ошибка No Matching Prototype avaliable
IF DbManager.Connect('SQL Server',GlobalConnectionString)
ну это твоя ошибка, GlobalConnectionString должна быть CSTRING
BrowseBox
Добавлено: 08 Ноябрь 2005, 9:13
Andrew™
Тут прочитал в Clalist'е про неправильное позиционирование в штатном BrowseBox после выхода из формы редактирования с удачным завершением ввода.
До сих пор не могу понять тех кто в SQL ещё юзает данный BrowseBox, что происходит при выходе из формы, наглядно можно посмотреть с помощью драйверной трассировки, идёт попытка перезагрузки Browse начиная с текущей записи, при наличии в ключе больше одного поля, поглядите какой ужасный WHERE при этом генериться, то что такие запросы тормозять на клиенте не так ещё страшно, переживут, а вот то что в многопользовательском режиме сервак на такого рода запросов уходит просто в аут (100% загрузка) это ужасно, на других рабочих станциях при этом простые запросы к БД начинают тормозить.
а надо было по хорошему после выхода из формы просто проинициализировать соответсвукющую запись в Browse Queue и ВСЁ, т к вся инфо о записи уже поднята в форме редактирования, что в принципе и сделано в MAV, и на удаление, тоже без повторных перезагрузок, только удаление из Browse Queue, скажете, а вновь введённая запись не удовлетворяет условиям текущего фильтра Browse, ну и фиг с ним, ну появится этот документ в списке, он при желании при принудительном Refresh'е исчезнет, но если юзверь что то не то вбил в документ и хочет его подправить, получается даже удобно что он не исчезает сразу из списка. Время показало, что это правильное решеие, конечные юзвери довольны
и бессмысленные перезагрузки Browse при потере/получении фокуса окна тоже считаю бессмысленными.
Добавлено: 08 Ноябрь 2005, 10:00
Admin
Вопрос!
Как делать сложные запросы типа:
Код: Выделить всё
SELECT d.*,a.name,b,name FROM data d,users a, users b WHERE a.id = d.uid1 AND b.id = d.uid2
Можешь дать наводку на свои примеры или описать подробно как это сделать в MAVBrowse. Как описать связи в словаре. Куда (в какой эмбед) вставлять код и т.д.
Также есть ли пример с вычисляемыми полями?
Добавлено: 08 Ноябрь 2005, 10:10
Andrew™
Admin писал(а):Вопрос!
Как делать сложные запросы типа:
Код: Выделить всё
SELECT d.*,a.name,b,name FROM data d,users a, users b WHERE a.id = d.uid1 AND b.id = d.uid2
Можешь дать наводку на свои примеры или описать подробно как это сделать в MAVBrowse. Как описать связи в словаре. Куда (в какой эмбед) вставлять код и т.д.
Также есть ли пример с вычисляемыми полями?
ну ребята Вы блин даёте, ЗВЁЗДОЧКИ не в коем случае не юзайте,
для этих целей есть соответсвующий метод у MAvSelect класса
Код: Выделить всё
tmp MAVSelect
CODE
tmp.Init(,0) ! читаетм всё
tmp.BindFields(data) ! забиндит все поля описанные в словаре в SELECT
tmp.BindField(users.Name)
tmp.BindField(AliasUsers.Name)
tmp.Relation(data.id,AliasUsers.uid1)
tmp.Relation(users.id,AliasUsers.uid2)
if tmp.Run()
MAVSHOWERROR
RETURN
end
LOOP
CASE tmp.Fetch()
OF 0
! Ok
OF 35
BREAK
ELSE
MAVSHOWERROR
BREAK
END
END
в словаре как и положено по всем правилам и описывай правила
чтобы штатно вставлять как %Secondary в File Schematic для Browse
Добавлено: 08 Ноябрь 2005, 14:09
Admin
Звездочки для примера написаны. Я их нигде еще не применял.
И еще обрати внимание что USERS это один и тот же файл.
+ Мне нужно не ручной код. Мне по такому принципу нужно в бровзе отобразить данные!
+ Повторю еще один вопрос: Также есть ли пример с вычисляемыми полями?
Добавлено: 08 Ноябрь 2005, 15:15
Andrew™
Admin писал(а):Звездочки для примера написаны. Я их нигде еще не применял.
И еще обрати внимание что USERS это один и тот же файл.
+ Мне нужно не ручной код. Мне по такому принципу нужно в бровзе отобразить данные!
для того и написал, что для повторного использования одного и того же файла придётся сделать для него ALIAS и юзать его
Admin писал(а):
+ Повторю еще один вопрос: Также есть ли пример с вычисляемыми полями?
в примерах вроде нет, но какие проблемы
в .FillQueue PROCEDURE()
ЛокальнаяПеременнаяИзСтолбца = SELF.Rec.Field1 + SELF.Rec.Field2
или что то ещё
это делается до вызова PARENT'а
Добавлено: 08 Ноябрь 2005, 16:00
Admin
для того и написал, что для повторного использования одного и того же файла придётся сделать для него ALIAS и юзать его
Но это же криво!!! Очень криво.
Т.е. получается если я хочу выборку делать из 10-ти алиасов одного файла, то из за того что все привязано к словарю мне придется десять алиасов делать?
Где же гибкость тогда? Или получается вся гибкость только при ручном написании запроса? Да-а-а-с ...
Я может и не прав но хочу в шаблоне без ручного кодирования делать выборки такого вида:
Код: Выделить всё
SELECT d.*,a.name,b,name FROM data d,users a, users b WHERE a.id = d.uid1 AND b.id = d.uid2
И это сам понимаешь довольно таки простой запрос. При более сложном все руками!?
Да. Что то меня SQL (в связке с Кларионом) начинает раздражать :-\
P.S. Не воспринимай как наезд ...

Добавлено: 09 Ноябрь 2005, 1:52
StillZero
Также есть ли пример с вычисляемыми полями?
имелось ввиду sum()
например счет и сумма по счету
Добавлено: 09 Ноябрь 2005, 7:47
Арсений
Всем привет. Хранимка возвращает единственное значение типа decimal , допустим (7,2). Нужно это значение положить в переменную кланиона. Делаю следующее:
Loc_Select.Init(1,1)
Loc_Select.BindField(loc_rezult)
IF loc_Select.Run('execute dbo.CalculateExpectedEventCoef '&LineEvent:EventId&', '&EventCoefView:EventCoefTypeId&', '&UpdateReceipt:SelectedPSValue&', 1')
MAVShowError
END
IF loc_Select.Fetch()
MAVShowError
UpdateReceipt:SelectedExpectedCoef = 0
ELSE
UpdateReceipt:SelectedExpectedCoef = loc_Rezult
END
получаю ошибку 'invalid cursor state'. Что делаю не так?
Добавлено: 09 Ноябрь 2005, 8:31
Andrew™
Арсений писал(а):Всем привет. Хранимка возвращает единственное значение типа decimal , допустим (7,2). Нужно это значение положить в переменную кланиона. Делаю следующее:
Loc_Select.Init(1,1)
Loc_Select.BindField(loc_rezult)
IF loc_Select.Run('execute dbo.CalculateExpectedEventCoef '&LineEvent:EventId&', '&EventCoefView:EventCoefTypeId&', '&UpdateReceipt:SelectedPSValue&', 1')
MAVShowError
END
IF loc_Select.Fetch()
MAVShowError
UpdateReceipt:SelectedExpectedCoef = 0
ELSE
UpdateReceipt:SelectedExpectedCoef = loc_Rezult
END
получаю ошибку 'invalid cursor state'. Что делаю не так?
не батенька
Loc_Select.BindField(loc_rezult,SQL_PARAM_OUTPUT)
IF loc_Select.Run('{{? = call dbo.CalculateExpectedEventCoef( '&LineEvent:EventId&', '&EventCoefView:EventCoefTypeId&', '&UpdateReceipt:SelectedPSValue&', 1)}')
а по хорошему все параметры лучше пробиндить