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


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


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


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

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

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

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

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

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

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


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