11.11.2009, 18:06 | #22 |
Banned
|
Вы лучше совету SRF следуйте. Все уже сделано до нас.
|
|
11.11.2009, 19:10 | #23 |
Участник
|
Принципиальный вопрос, от которого зависит в том числе и скорость работы. Как и когда определять поля участвующие в поиске?
Варанта ответа на этот вопрос два: 1) заранее жёстко прописать списки полей в коде + скорость - маштабируемость 2) пользуясь системными классами, данамически в момент исполнения получать списки полей (рефлексия) + маштабируемость ? скорость работы под вопросом Оба варианта реализуемы в Аксапте. Выбирать вам, но второй способ требует меньшего кодирования. Попробуйте протестируйте скорость, а может и понравится? Всё-таки при допустимых показателях производительности (пусть и не самых лучших), я бы остановился на маштабируемости.Может есть у кого данные о производительности процедуры поика полей входящих в индекс? Стоит ли вообще заморачиваться со скоростью? P.S.: Ещё выбирать можно между жёстким select в коде и динамическим построением запроса. Преимущества и недостатки те же. Опять же не уверен в значимости затрат на построение Query, точнее здесь почти уверен в их незначительности. |
|
11.11.2009, 20:04 | #24 |
Ищущий знания...
|
Цитата:
сужу по функции автоматического создания методов find и exist на таблице... могу предположить что и для большого кол-ва таблиц производительность будет вменяемая.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.11.2009, 16:09 | #25 |
Участник
|
Задачу решил решать создание универсального find метода, который в зависимости от ИД таблицы, будет вызывать файнд, нужным образом (аналогично методу constract). Это убирает необходимость создавать методы, на таблицах.
Всем спасибо.
__________________
PS. Сложно приехать в Москву, но ещё сложнее уехать отсюда. Последний раз редактировалось 3oppo; 12.11.2009 в 16:13. |
|
13.11.2009, 16:10 | #26 |
Участник
|
Как вариант, можно сделать query по common.TableId и добавить Range'и по ключевым полям, которые можно узнать с помощью - SysDictTable::getUniqueIndexFields(common.TableId)
А значения для Range'ей передавать в том же List'е как параметр функции. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |