Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Собрать транзакцию / 21 сообщений из 21, страница 1 из 1
25.06.2018, 18:38
    #39665515
aleksVAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Добрый день.
Помогите решить вопрос.
Пишу программу на Delphi Berlin + MySql

Имеется StringGrid (корзина) в котором содержится информация
id - ID товара
kol - Количество списываемого товара с БД каталога товаров (Catalog)


ТАблица Catalog содержит информацию о товаре
id -id товара
name - имя товара
kol - количество товара


Необходимо пробежаться по таблице StringGrid и вычесть из таблицы Catalog количество товара указанное в StringGrid
БД MySql таблица InnoDB

Нужно сделать все за одну транзакцию.
У меня много пользователей которые могут проводить одни и те же действия, хотелось бы избежать нарушения целостности информации и аномалии

Заранее спасибо!
...
Рейтинг: 0 / 0
25.06.2018, 18:40
    #39665518
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
где-то я этот стон уже читал...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.06.2018, 19:02
    #39665529
aleksVAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Мимопроходящий, Дайте ссылку если уже такой стон был
...
Рейтинг: 0 / 0
25.06.2018, 19:05
    #39665532
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Мимопроходящийгде-то я этот стон уже читал...

Тогда у него был MyISAM, а теперь уже InnoDB. Большой шаг вперёд.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.06.2018, 19:12
    #39665534
aleksVAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Dimitry Sibiryakov,
Если у него все делается за одну транзакцию то все равно.
Вы болтать будете или по делу что то напишите
...
Рейтинг: 0 / 0
25.06.2018, 19:16
    #39665537
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
aleksVASДайте ссылку если уже такой стон былПожалуйста http://www.sql.ru/forum/1296711/tranzakciya-po-provedenu-tovara-iz-korziny
...
Рейтинг: 0 / 0
25.06.2018, 19:44
    #39665553
aleksVAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
_Vasilisk_,
Где тут проход по StringGrid и итоговое формирование одной транзакции?
...
Рейтинг: 0 / 0
25.06.2018, 19:50
    #39665556
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
aleksVAS_Vasilisk_,
Где тут проход по StringGrid и итоговое формирование одной транзакции?
это или курсовик, или тебе надо читать литературу
...
Рейтинг: 0 / 0
25.06.2018, 19:55
    #39665557
aleksVAS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
defecator,
что нет готовых решений?
...
Рейтинг: 0 / 0
25.06.2018, 19:56
    #39665558
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
aleksVASdefecator,
что нет готовых решений?
Готовое решение стоит $4ОО
...
Рейтинг: 0 / 0
25.06.2018, 20:05
    #39665561
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
defecatoraleksVASdefecator,
что нет готовых решений?
Готовое решение стоит $4ОО
не слушай его, у него за любую работу такса одинаковая. Иди сюда , там народ не жадный
...
Рейтинг: 0 / 0
25.06.2018, 20:18
    #39665568
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
ЧСХ, юзер зарегистрирован уже 10 лет, но в создании постов не отметился.
Видимо, считает, что чтение форума - ключ к самоизучению программирования.
...
Рейтинг: 0 / 0
25.06.2018, 21:09
    #39665590
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Любезный,

это очень даже и хорошо. особенно если есть результаты. за 10 лет то )
...
Рейтинг: 0 / 0
25.06.2018, 21:11
    #39665592
defecator
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
makhaonЛюбезный,

это очень даже и хорошо. особенно если есть результаты. за 10 лет то )
сначала надо научиться вычитать StringGrid из таблицы в транзакции
...
Рейтинг: 0 / 0
25.06.2018, 21:25
    #39665593
Любезный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
makhaon, если результатом являются подобные вопросы, это говорит, что человек не учится вообще.
...
Рейтинг: 0 / 0
25.06.2018, 22:25
    #39665620
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
aleksVASГде тут проход по StringGrid и итоговое формирование одной транзакции?Извините, барин, оплошал.
...
Рейтинг: 0 / 0
26.06.2018, 11:32
    #39665859
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
25.06.2018 21:11, defecator пишет:
> сначала надо научиться вычитать StringGrid из таблицы в транзакции

дайте две! :D
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.06.2018, 15:22
    #39666076
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
вычитать стринггрид - это рэп наверно
...
Рейтинг: 0 / 0
26.06.2018, 18:45
    #39666188
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
aleksVAS,

если бы делал подобную вашей задачу, думал бы в таком направлении:

1) раз говорим о целостности транзакции, то воспользуемся START TRANSACTION ..... COMMIT / ROLLBACK

2) потом, мало же просто изменить количества единиц товара, надо где то это зафиксировать в качестве лога изменений. Причем можно все изменения, проведенные в рамках транзакции, обьединить через внешний ключ со строчкой в таблице транзакций (у которой ID / Номер транзакции / дата / пользователь).

3) А теперь к чему все это вел: номер транзакции . Для его генерации советую воспользоваться табличкой, в которой в ячейке записан номер последней транзакции. Сессия того пользователя, которая хочет провести транзакцию, начинает с BEGIN TRANSACTION. Потом она должна заблокировать эту ячейку таблицы, в которой ведется номер транзакций или ждать, пока другая сессия через COMMIT или ROLLBACK её не освободит . И после этого записать туда номер+1. В этом и идея: блокировка (возможно, с ожиданием) --> всякие действия --> фиксация или откат .
...
Рейтинг: 0 / 0
26.06.2018, 20:33
    #39666210
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
Кроик Семён,

2, 3 - зачем эти ужасы??? в рамках транзакции все изменения видит только эта транзакция. И блокирование тут тоже непонятно зачем. Сервер сам что надо блокирует, а если уже заблокировано, приложение получит отлуп.
...
Рейтинг: 0 / 0
26.06.2018, 21:34
    #39666220
чччД__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Собрать транзакцию
ЛюбезныйЧСХ, юзер зарегистрирован уже 10 лет, но в создании постов не отметился...
"Консерва".
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Собрать транзакцию / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]