Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65

select + update

05.12.2022, 12:12. Показов 470. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день уважаемые.

Прошу совета.

sql server 2014

У меня есть таблица с сущностями по которым я создаю текстовый документ
В этой таблице есть поле с флагом обработано / не обработано, формирования и выгрузки файла

Открываю DataReader со всем необработанными записями и прохожу по ним последовательно выгружая файл по каждой записи в итерации Read() потом командой UPDATE пытаюсь обновить значение в этой записи, ожидаемо блокировка.

По какому сценарию это решается? я не хочу все результаты грузить в память.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2022, 12:12
Ответы с готовыми решениями:

Основной функционал: Insert, Select All, Select by Id, Update, Delete
Помогите с решением задачи, не понятно как это реализовать. Создать основной функционал: Insert (Добавление) Select All (Выбрать...

UPDATE + SELECT
Привет всем!!! Имеем БД на SQL Compact 3.5 Кто знает поддерживается ли в этой базе запросы типа: UPDATE Медикаменты SET Ostatok =...

Не работают команды Insert, Select, Update, Delete
oFgl71x1PX4 Тут все четко и понятно все компилируется ни каких ошибок, запускается, но как только я произвожу действия с базой нажимаю на...

6
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
05.12.2022, 12:21
alhaos,
T-SQL
1
2
3
UPDATE MyTable
SET MyField = 1 -- Типа обработано
WHERE -- А вот тут пишете условия по которым нужно обновить ваше поле с флагами
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
05.12.2022, 12:59  [ТС]
Andrey-MSK, понимаю сумбурно объяснил, код мой не на шарпе прошу прощения, но думаю тут не составит труда понять...

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
add-type -Path .\System.Data.SQLite.dll
$ErrorActionPreference = 'stop'
$conn = [System.Data.SQLite.SQLiteConnection]::new()
 
$conn.ConnectionString = "Data source=data.db; version=3"
$conn.Open()
$commSelect = $conn.CreateCommand()
$commUpdate =  $conn.CreateCommand()
$commSelect.CommandText = "select * from test"
$commUpdate.CommandText = "Update test set field = val where val = @val"
$prm = [System.Data.SQLite.SQLiteParameter]::new("@val", [System.Data.DbType]::Int32)
$commUpdate.Parameters.Add($prm)
 
$dataReader = $commSelect.ExecuteReader()
 
while ($dataReader.Read()) {
    $prm.Value = $dataReader[0]
    $commUpdate.ExecuteNonQuery()
}
$conn.Close()
я так понимаю проблема что я пытаюсь читать и изменять одну и ту же запись, но мне так и нужно.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
05.12.2022, 13:36
Лучший ответ Сообщение было отмечено alhaos как решение

Решение

Цитата Сообщение от alhaos Посмотреть сообщение
я так понимаю проблема что я пытаюсь читать и изменять одну и ту же запись
Читать и изменять одну и ту же запись можно в рамках одной транзакции.

Предположительно, у вас следующий сценарий:
1. Читающий command/reader открывает и удерживает неявную транзакцию.
2. Обновляющий command - открывает другую транзакцию, а потому натыкается на блокировку.

Возможное решение - открыть транзакцию явным образом и назначить её обоим экземплярам Command.
1
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
05.12.2022, 13:56  [ТС]
kotelok, Кажется это именно то что было нужно, благодарю.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
05.12.2022, 14:04
alhaos, У вас же MS SQL Server - напишите хранимку...
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,664
Записей в блоге: 65
05.12.2022, 14:10  [ТС]
Andrey-MSK, Благодарю, учту такую возможность, тут я весьма ограничен в правах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2022, 14:10
Помогаю со студенческими работами здесь

Select, delete, update, insert. как писать?
Всем привет. Как дописать delete, update, insert. Поиск по форуму не дал результатов, а черз гугл не понимаю на чужих примерах. Если...

Не работает SELECT однако INSERT, UPDATE, DELETE работают
Здравствуйте! при написании программы столкнулся с такой проблемой: при попытке использования запроса SELECT проект просто не видит данные,...

Select, Insert, Update и DeleteCommand в SqlDataAdapter, как сделать их определение более удобным?
Здраствуйте. Начал работать с базой данных через SqlDataAdapter. И как то кажется совсем не удобно указывать для каждой таблицы, или...

Функция-интерпретатор в БД, для sql "select\insert\update\delete"
Нужно написать функцию-интерпретатор в БД, для sql "select\insert\update\delete". Как бы движок на входе принимающий...

Не получается сделать Update (Update requires a valid InsertCommand)
Не получается сделать Update выдаёт ошибку, что делаю не так? В таблице только одно поле, оно строковое. public void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru