@tet-vivi вот так:
/*Dat:eyJzIjoidGV4dCIsInYiOjEsImYiOltdLCJ1dyI6IjAiLCJ1dCI6IjAiLCJ1dG8iOiIwIiwidW0iOiIwIiwiZCI6W3siaWQiOiJTYXZlVGV4dCIsInR5cGUiOiJ2YXIiLCJkYXRhIjoiU0FWRURfVEVYVCJ9XSwicCI6eyJpc19pbWFnZSI6ZmFsc2UsImNzcyI6IiA+Q1NTPiAjdGltZXItMTEwOTg2NSIsInZlcnNpb24iOiIxLjAiLCJjc3MxIjoiID5DU1M+ICN0aW1lci0xMTA5ODY1IiwiY3NzMiI6IiA+Q1NTPiBzcGFuIiwiY3NzMyI6IiIsImN1cnJlbnQiOiJjc3MiLCJtYXRjaCI6Ij5NQVRDSD48c3BhbiBpZD1cInRpbWVyLTExMDk4NjVcIj4wZCAxaCAxNm0gMjZzIDwiLCJ4cGF0aCI6IiA+WFBBVEg+IGlkKFwidGltZXItMTEwOTg2NVwiKSIsImF0IjoiMzU0LCAyODUiLCJ3ZSI6dHJ1ZSwiZmEiOnRydWV9fQ==*/ /*Browser*/ _SELECTOR = " \u003eCSS\u003e #timer-1109865"; wait_element(_SELECTOR)! get_element_selector(_SELECTOR, false).text()! VAR_SAVED_TEXT = _result() section_end()! section_start("", 238272681)! /*Dat:eyJzIjoiaWYiLCJ2IjoxLCJyb2xlIjoibWFzdGVyIiwic2xhdmUiOjgwMTI3MDg5MywibWFzdGVyIjoyMzgyNzI2ODEsImlmX3ZhciI6Il9jeWNsZV9wYXJhbXMoKS5pZl9lbHNlIiwiZiI6W10sInV3IjoiMCIsInV0IjoiMCIsInV0byI6IjAiLCJ1bSI6IjAiLCJkIjpbeyJpZCI6IklmRXhwcmVzc2lvbiIsInR5cGUiOiJjb25zdHIiLCJkYXRhIjoiW1tTQVZFRF9URVhUXV0gIT0gMCIsImNsYXNzIjoiZXhwcmVzc2lvbiJ9LHsiaWQiOiJJZkVsc2UiLCJ0eXBlIjoiY2hlY2siLCJkYXRhIjp0cnVlfV19*/ _cycle_params().if_else = VAR_SAVED_TEXT != 0; _if(_cycle_params().if_else,function(){ section_insert() })! section_end()! section_start("\u007b\u0022n\u0022:\u0022Else\u0022\u007d", 801270893)! /*Dat:eyJzIjoiaWYiLCJ2IjoxLCJyb2xlIjoic2xhdmUiLCJzbGF2ZSI6ODAxMjcwODkzLCJtYXN0ZXIiOjIzODI3MjY4MSwiaWZfdmFyIjoiX2N5Y2xlX3BhcmFtcygpLmlmX2Vsc2UiLCJmIjpbXSwidXciOiIwIiwidXQiOiIwIiwidXRvIjoiMCIsInVtIjoiMCIsImQiOlt7ImlkIjoiSWZFeHByZXNzaW9uIiwidHlwZSI6ImNvbnN0ciIsImRhdGEiOiJbW1NBVkVEX1RFWFRdXSA9IDAiLCJjbGFzcyI6ImV4cHJlc3Npb24ifSx7ImlkIjoiSWZFbHNlIiwidHlwZSI6ImNoZWNrIiwiZGF0YSI6dHJ1ZX1dfQ==*/ _if(!_cycle_params().if_else,function(){ section_insert() })! delete _cycle_params().if_else; section_end()! ```Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?
-
Есть несколько потоков, которые работают с одной и той же строкой из базы данных. Каждый из них по успешному завершению должен увеличить цифровое значение внутри этой строки, в одной из колонок.
-
Использовать старое значение, полученное при выгрузке этой строке из базы впервые, перед работой.
Не получится, так как оно уже могло быть обновлено другими потоками -
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам. -
Думал через глобальную перменную, но не выйдет, строк в которых изменяемое значение может быть много, известны становятся во время работы, так же могут появляться новые во время работы, хранить в глоабльном объекте не лучше чем 2ой метод.
-
Создавать глоабльную переменную с именем строки(уник ключом), не выйдет тоже, по понятным причинам.
Может есть метод увеличения значения в колонке строки какой то еще?
-
-
@derx2012 said in Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?:
Есть несколько потоков, которые работают с одной и той же строкой из базы данных. Каждый из них по успешному завершению должен увеличить цифровое значение внутри этой строки, в одной из колонок.
-
Использовать старое значение, полученное при выгрузке этой строке из базы впервые, перед работой.
Не получится, так как оно уже могло быть обновлено другими потоками -
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам. -
Думал через глобальную перменную, но не выйдет, строк в которых изменяемое значение может быть много, известны становятся во время работы, так же могут появляться новые во время работы, хранить в глоабльном объекте не лучше чем 2ой метод.
-
Создавать глоабльную переменную с именем строки(уник ключом), не выйдет тоже, по понятным причинам.
Может есть метод увеличения значения в колонке строки какой то еще?
Попробуйте блокировать строку в базе при использовании. Добавьте дополнительную bool колонку и фильтр, чтобы брать только свободные строки. При получении строки блокируйте её и освобождайте после окончания работы.
-
-
@derx2012 said in Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?:
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам.Это должно работать корректно, возможно вы забыли про приведение типов, тк получая из БД число от все равно приходит как строка и может получиться такой результат например "1" + 1 = "11"