Страница 2 из 3

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 02 июн 2023, 18:44
nruslan2
alexinc писал(а): 02 июн 2023, 17:20 Ну так может и смотреть в сторону автоматизации. Сделать автоматизацию, и потом вызывать ее дополнительно по признаку изменения записи. нет?
Все зависит от того, что и как требуется.
Если это в отчетах будет - и данные динамические, тут надо подумать!!! потому что обновление по кнопке или при изменении записи - не работает при таком варианте (данные не актуальные!)

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 02 июн 2023, 20:38
support
В пхп коде можно выбрать конкретную запись с помощью следующей конструкции:

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

$items_query = new items_query($entity_id,[
'fields_in_query'=>22,
'add_formula'=>true,
'where' => 'and id=' . $item_id,
]);
        
$item_query = db_query($items_query->get_sql());
$item = db_fetch_array($item_query );
22 - id поля с формулой (можно через запятую перечислить несколько)

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 02 июн 2023, 21:47
alexinc
Где ж вы раньше были!!!!

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 03 июн 2023, 08:07
nruslan2
support писал(а): 02 июн 2023, 20:38 В пхп коде можно выбрать конкретную запись с помощью следующей конструкции:

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

$items_query = new items_query($entity_id,[
'fields_in_query'=>22,
'add_formula'=>true,
'where' => 'and id=' . $item_id,
]);
        
$item_query = db_query($items_query->get_sql());
$item = db_fetch_array($item_query );
22 - id поля с формулой (можно через запятую перечислить несколько)
я правильно понял, что данная конструкция в итоге вытащит все данные из записи даже если поля динамические?

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 03 июн 2023, 10:39
support
Да

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 03 июн 2023, 10:49
nruslan2
support писал(а): 03 июн 2023, 10:39Да
Шикарно, правда надо не забывать: что при таком подходе мы все равно все механизмы пересчета запускаем!!! (ну эт так на всякий случай) - так что чтобы база не висла - все же приземлять надо, но в разумных пределах и в зависимости от задач)

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 03 июн 2023, 11:37
Antonyous99
Спасибо, Сергей, и всем тоже за помощь!
Вопрос решен.

Re: Приземлить динамические SQL запросы и формулы

Добавлено: 03 июн 2023, 11:40
nruslan2
Antonyous99 писал(а): 03 июн 2023, 11:37 Спасибо, Сергей, и всем тоже за помощь!
Вопрос решен.
в итоге какой вариант то выбрали?)

Re: Приземлить динамические SQL запросы и формулы (решено)

Добавлено: 03 июн 2023, 12:33
Antonyous99
Так, инструмент теперь есть, с ним - хоть куда.
Тем более, что несколько значений можно получить в массив за один запрос.

Re: Приземлить динамические SQL запросы и формулы (решено)

Добавлено: 03 июн 2023, 20:41
support
Еще данный класс можно применить вот так

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

$items_query = new items_query($entity_id,[
'fields_in_query'=>22,
'add_formula'=>true,
'report_id' => 13,
'add_filters'=>true,
'add_order'=>true,
]);

$item_query = db_query($items_query->get_sql());
while($item = db_fetch_array($item_query ))
{
...
}
То есть передаем ID отчета (13) и выбираем все записи по заданным фильтрам. Может пригодится при какой то выборке или экспорте.