powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка наличия записи
25 сообщений из 29, страница 1 из 2
Проверка наличия записи
    #38342743
guest786
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Пишу сейчас программу типа склада. Хотелось бы уточнить некоторые нюансы, а именно:
Пользователь выбирает нужную запись из таблицы Товаров, в textboxе пишет нужное количество и нажимает на кнопку и запись добавляется во временную таблицу (формирование заказов). Вопрос состоит в следующем. После добавления записи может такое быть что пользователь захочет добавить эту запись еще раз (т.е увеличить количество нужного товара и добавить его к ранее добавленному). Как мне проверить наличие этой записи и если такова имеется как мне прибавить количество к ранее добавленному количеству и записать обратно в БД. Заранее спасибо за ответ
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38342759
igr_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest786Здравствуйте. Пишу сейчас программу типа склада. Хотелось бы уточнить некоторые нюансы, а именно:
Пользователь выбирает нужную запись из таблицы Товаров, в textboxе пишет нужное количество и нажимает на кнопку и запись добавляется во временную таблицу (формирование заказов). Вопрос состоит в следующем. После добавления записи может такое быть что пользователь захочет добавить эту запись еще раз (т.е увеличить количество нужного товара и добавить его к ранее добавленному). Как мне проверить наличие этой записи и если такова имеется как мне прибавить количество к ранее добавленному количеству и записать обратно в БД. Заранее спасибо за ответСделайте хранимку для insert. Если запись существует, выполняйте update, иначе insert.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38343620
Фотография mmnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest786, все зависит от архитектуры, например если у вас есть класс заказ и он содержит коллекцию заказанных товаров, то при добавлении товара можно пройти по коллекции и определить был ли товар добавлен раннее, если был то обновить количество, если не был, то добавить товар в коллекцию, и уже когда полностью заказ сформирован только тогда добавлять его в БД, другие варианты решения более трудозатратны. И вообще использование БД на этапе ввода данных крайне неудобный вариант, работайте с классами описывающими сущности.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38344309
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mmnickИ вообще использование БД на этапе ввода данных крайне неудобный вариант, работайте с классами описывающими сущности.
И чем тут классы помогут?


igr_okСделайте хранимку для insert. Если запись существует, выполняйте update, иначе insert.
+1. Стандартное решение.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38344419
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2, без хранимки никак?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38344708
Фотография mmnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2mmnickИ вообще использование БД на этапе ввода данных крайне неудобный вариант, работайте с классами описывающими сущности.
И чем тут классы помогут?


igr_okСделайте хранимку для insert. Если запись существует, выполняйте update, иначе insert.
+1. Стандартное решение.


автор как мне прибавить количество к ранее добавленному количеству и записать обратно в БД.
Внимательно читайте вопрос, пользователь открывает заказ на редактирование , причем тут БД и хранимки, или "нехранимки", после редактирования заказа пользователь обратно записывает его в БД
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346081
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
МСУCat2, без хранимки никак?
Можно и без хранимки.
Открываем транзакцию на клиенте.
Блокируем таблицу.
Проверяем наличие записи.
Если есть, делаем апдейт, если нет - инсерет.
Снимаем блокровку
Завершаем транзакцию.

Все хорошо, но только есть риск, что клиент обрубиться и не сможет завершить транзакцию.
Конечно, сейчас не 90-ые, когда зависшая на крлиенте транзакция блокировала таблицы навсегда. Сейчас "через некое разумное время" блокировка снимается. "Разумное время" засекречено производителями .
Однако в некоторых случаях и 30 секунд - неприемлемое время.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346082
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mmnickВнимательно читайте вопрос, пользователь открывает заказ на редактирование , причем тут БД и хранимки, или "нехранимки", после редактирования заказа пользователь обратно записывает его в БД
И действительно, причем тут БД ?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346091
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2есть риск, что клиент обрубиться и не сможет завершить транзакцию.
То есть про секцию try-finally мы никогда не слышали?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346135
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
МСУCat2есть риск, что клиент обрубиться и не сможет завершить транзакцию.
То есть про секцию try-finally мы никогда не слышали?
Слышал краем уха. Только если клиент грохнется, например, по отрубу питания во время выполнения блока try, то до finally дело не дойдет
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346236
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Все хорошо, но только есть риск, что клиент обрубиться и не сможет завершить транзакцию.
казалось бы причём здесь трёхзвенка.....
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346253
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2МСУпропущено...

То есть про секцию try-finally мы никогда не слышали?
Слышал краем уха. Только если клиент грохнется, например, по отрубу питания во время выполнения блока try, то до finally дело не дойдет
1. Ты "сервер приложений" клиентом называешь? Прости, но если сервер приложений так просто "отрубается от питания", то мне остается только плакать. Срочно читать про балансировщик нагрузки и кластеризацию.
2. Если же ты про двухзвенку, то я даже разговаривать на эту тему не хочу. Таким решениям место на свалке. Клиент ничего не должен знать про БД, никаких транзакций с клиента.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346258
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
тут можно и обойти центральное хранилище, портфель заказов держать локально ( локальное хранилище)
а при "Заказать" производить перелив в центральное, в любом случае после этой манипуляции, что то сделать с заказом
уже нельзя - он отдан на формирование, - только новый заказ ( опять же имхо)
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346265
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиМСУ, тут можно и обойти центральное хранилище, портфель заказов держать локально ( локальное хранилище)
Зачем? Это отдельная специфичная задача с embedded database с последующей синхронизацией с сервером приложений .

Где-то в степиа при "Заказать" производить перелив в центральное, в любом случае после этой манипуляции, что то сделать с заказом
Не надо так делать. Переливать только в апп сервер, а там он сам разберется, куда и кому нужно отлить.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346274
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
Ё моё ну какой ты дотошный, ну пусть будет так:
Смысл моего высказывания, держать портфель заказов локально, а по кнопке заказать отправлять его на формирование.
зы Санитары и мой лечащий врач с этим согласны...
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346295
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степидержать портфель заказов локально
Ну пусть портфель заказов сразу на лету в онлайне считается (как на экзисте в корзину набираешь запчасти). Я ж говорю, какая принципиальная разница?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346310
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
да как бы есть разница веб и десктоп, если рассматривать формирование заказа как атомарную операцию, не стоит хранить промежуточные данные на главном хранилище, они вообще там не нужны as заказы не получившие статус законченные,( если не формировать корзину желаний)
локально формировать заказ( корзину) и все, никаких обращений к серверу за сменой количества или отказа от деталей аки отказа от начатого заказа, опять же, при определенных условиях, мы можем работать в офлайне, а на сервере иметь таблицу фактических заказов, по которой идет формирование на выдачу..
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346314
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest786нажимает на кнопку и запись добавляется во временную таблицу
почему во временную?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346334
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи, вообщем, два различных способа: онлайн и оффлайн. Но принципиально ничего не меняется.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346338
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Где-то в степида как бы есть разница веб и десктоп[/quot]
Принципиально никакой разницы. В качестве embedded database на клиенте веб приложения можно рассматривать кукисы. Чем тебе не локальная БД?

Где-то в степипромежуточные данные на главном хранилище, они вообще там не нужны as заказы не получившие статус законченные,( если не формировать корзину желаний)
Ну про не нужны я бы не был столь категоричным. Любые данные нужны.
1. Статистика отказов
2. Пользователь может продолжить добивать заказы с другого компьютера
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346359
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
МСУ1. Ты "сервер приложений" клиентом называешь? Прости, но если сервер приложений так просто "отрубается от питания", то мне остается только плакать. Срочно читать про балансировщик нагрузки и кластеризацию.
2. Если же ты про двухзвенку, то я даже разговаривать на эту тему не хочу. Таким решениям место на свалке. Клиент ничего не должен знать про БД, никаких транзакций с клиента.

Разумеется я работаю только с двузвенками. Трехзвенкам место на свалке истории, когда слабость клиентов компенсировалась промежуточным звеном.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346362
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mmnickВнимательно читайте вопрос, пользователь открывает заказ на редактирование причем тут БД и хранимки
Заказ в вакууме хранится?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346364
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Изопропилguest786нажимает на кнопку и запись добавляется во временную таблицу
почему во временную?
+1
В постоянную. Тогда проще задействовать всю мощь базы.
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38346493
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2МСУ1. Ты "сервер приложений" клиентом называешь? Прости, но если сервер приложений так просто "отрубается от питания", то мне остается только плакать. Срочно читать про балансировщик нагрузки и кластеризацию.
2. Если же ты про двухзвенку, то я даже разговаривать на эту тему не хочу. Таким решениям место на свалке. Клиент ничего не должен знать про БД, никаких транзакций с клиента.

Разумеется я работаю только с двузвенками. Трехзвенкам место на свалке истории, когда слабость клиентов компенсировалась промежуточным звеном.
Немного не понял про слабость клиентов. Ты о чем?
...
Рейтинг: 0 / 0
Проверка наличия записи
    #38347104
guest786
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем спасибо за ответы. проблема заключается в том что я использую Access 2003. А там хранимок насколько мне известно нет( есть ли обход данной проблемы? Заранее спасибо
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проверка наличия записи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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