Как обновить значения атрибута по известным ID

Обсуждение технических вопросов работы с системами управления базами данных (СУБД), работе с языком SQL и скриптовыми языками.
Ответить
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Как обновить значения атрибута по известным ID

Сообщение Александр »

Вопрос такой:
Есть атрибут, есть его значения - другими словами есть все ID

Не покажете - (если есть) какой-нибудь SQL который перечитывает/обновляет значения атрибута по имеющимся ID

Применительно к выпадающему списку:
Список набрал допустим при старте программы
А потом перед использованием его на форме -просто хочу обновить/перепроверить значения (вдруг изменились)

По идее т.к. не нужно вылавливать ID из базы (они уже выбраны) то остается просто пробежаться по ним - что наверно по скорости будет в 10 раз быстрее чем набирать список заново....

Подскажите кто знает... :wink: как бы это оформить в SQL?

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

я думаю, тайны не открою, если скажу, что для обновления нужно использовать UPDATE ... SET.
но видимо этого не хватает?

а вот насчет списка...
если ИД известны, то можно попробовать вытащить значения колонки Value по известным id из value_string (например)...

но что то мне кажется, что повторное выполнение запроса - все таки лучше. оно не должно слишком медленно работать. и к тому же, а вдруг на самом деле набор значений изменился? стало больше или меньше?
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

вопрос именно в анализе атрибутов
....
Есть постоянный набор объектов сотрудников и соответственно список построенный на его основе (через EXECSQLSelect)

Он пересчитавается только - когда добавляется/или увольняется сотрудник
В процессе работы сотрудник может поменять атрибутивные статусы такие как
-должность
-отдел
-статус работы
-активность (подключен к базе или нет)

соответственно в каждый момент времени имеем фиксированную таблицу с ID объектов- на основании которых список в действиях нужно не перенабирать а обновлять - и это все-же быстрее (на мой взгляд) пробежаться по готовым ID и надергать атрибутов...для формирования новых строк списка построенных на основе текущих атрибутов известных объектов
а вот как это может выглядеть в синтаксисе SQL?

PS К сожалению пока не научился мыслить на SQL и ко всему подхожу с точки зрения ООП :wink:

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Аватара пользователя
Anderyt
Активный участник
Сообщения: 777
Зарегистрирован: 15 июл 2004, 13:15
Используемое ПО: Lotsia PDM PLUS
Откуда: Тюмень
Контактная информация:

Сообщение Anderyt »

я кстати почему то не уверен, что при изменении значения атрибута у объекта изменится значение в Value у строки с тем же id в value_string... возможно, глупо звучит, но система может просто исправить ссылку на значение атрибута в attrib_value, подставив value_id того значения, которое уже ЕСТЬ в БД...
кто его знает...
зачем держать несколько одинаковых значений одного атрибута?..
так что мне кажется, что перезапрос будет надежнее... ведь речь не идет о выполнении запроса в течение нескольких минут, верно?
лучше день потерять, потом за пять минут долететь!
Аватара пользователя
Александр
Активный участник
Сообщения: 1652
Зарегистрирован: 24 авг 2006, 08:06
Используемое ПО: Lotsia PDM PLUS
Откуда: 55.745578,37.665825

Сообщение Александр »

ладно не могу объяснить по человечески, речь идет оборьбе за .5~2 сек, т.к. запрос на обновление списка пользователей у меня универсальный - динамически формируемый и по этому первый раз выполняется -2 сек. И в кеше надолго не задерживается т.е. все время иметь 2 сек на запрос не очень приятно.
Да и если впихнуть туда анализ атрибутов будут все 4 сек.

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

Т.е. Разделить операцию на две

Первая - универсальный,многоразовый, сложный, медленный но при этом не часто используемый запрос (1 раз в день) по отбору ID объектов (допустим по типу)

Вторая - одноразовый быстрый часто используемый запрос (100 раз в день) производящий анализ объектов отобранных в первой процедуре и хранящихся в виде ID в значениях строкового атрибута.

Вот такая вот мысль....

Софт - RicCRM<<LotsiaPDM(4.40)<<MsSQL(5/8)
Уровень администрирования - Альтернативный

Ответить