|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Здравствуйте. В данный момент пишу программу склад. В данной программе будут печататься накладные. Мне нужно чтобы при нажатии на кнопку "сформировать накладную", выводилась накладная под порядковым номером. Т.е сначала накладная номер 1, потом 2 и т.д. При этом данный номер чтоб заносился в БД. Как мне это реализовать и как сделать так чтобы при закрытии программы данный счетчик не сбивался, а наоборот сохранялся и выдавал нужный порядковый номер накладной. Заранее спасибо за ответ. P.S. Пишу на C#.net VS2010, использую БД Access 2003. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 11:16 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Я бы через БД делал: номер накладной = номер ключевого поля - генерируется автоматически счетчиком при создании записи ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 11:30 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786, ... перед выводом формы сделайте запрос к базе Код: sql 1.
.. а потом ему +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:05 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
carrotikguest786, ... перед выводом формы сделайте запрос к базе Код: sql 1.
.. а потом ему +1 Лишь бы потом не возникло путаницы. Например, удалят из базы накладные, и max() предложит номер накладной, которая уже когда-то была. Потом мы захотим эту накладную вбить в 1с или в другую систему, а та скажет - извините, но такая накладная уже есть в системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:11 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallaris Лишь бы потом не возникло путаницы. Например, удалят из базы накладные, и max() предложит номер накладной, которая уже когда-то была. Потом мы захотим эту накладную вбить в 1с или в другую систему, а та скажет - извините, но такая накладная уже есть в системе. ... это у нас уже проходили, и пришли к тому, что номер должен быть уникальным для предприятия :)... но у ТС пока что хотят "раз-два-три" ... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:22 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallaris, Спасибо за ответ. Я создаю отдельную таблицу с счетчиком. у меня счетчик начинается с 22. как его сбросить? Подскажите пожалуйста. carrotikguest786, ... перед выводом формы сделайте запрос к базе Код: sql 1.
.. а потом ему +1 А как к нему прибавить +1. я подключаюсь к базе вот таким образом Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Пишу запрос Код: plsql 1.
как теперь привязать результат к textboxу? Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:42 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786, вместо ExecuteNonQuery - пиши ExecuteScalar. Потом пиши textBox1.Text = response.ToString() ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 12:52 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallarisguest786, вместо ExecuteNonQuery - пиши ExecuteScalar. Потом пиши textBox1.Text = response.ToString() Спасибо большое за ответ. у меня response тип int . Студия ругается и выдает ошибку: " Не удается неявно преобразовать тип "object" в "int". Существует явное преобразование (возможно, пропущено приведение типов)" Как ее исправить подскажите пожалуйста.Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:03 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Забыл добавить ругается именно на эту строчку Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:04 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Можно как то так. 1. Создание и инициализация таблицы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
2. Получение следующего номера, удаление промежуточных накладных ничего не испортит. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:07 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786Забыл добавить ругается именно на эту строчку Код: c# 1.
Ну приведи к типу: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:15 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallarisguest786Забыл добавить ругается именно на эту строчку Код: c# 1.
Ну приведи к типу: Код: c# 1. 2. 3. 4. 5. 6.
Пишет "Заданное приведение является недопустимым." ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:33 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
ЕвгенийВМожно как то так. 1. Создание и инициализация таблицы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
2. Получение следующего номера, удаление промежуточных накладных ничего не испортит. Код: sql 1. 2. 3. 4.
Спасибо за ответ. Он значение изменяет в базе. а как его привязать к textboxу не подскажете? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:35 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786Пишет "Заданное приведение является недопустимым." Ну епрст Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 13:47 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallarisguest786Пишет "Заданное приведение является недопустимым." Ну епрст Код: c# 1.
ппц. дятя петя, вы дурак? 2 ТС - чего автоинкрементальное поле не используете? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 14:08 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Всем Огромное Спасибо за помощь. Все заработало ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 14:11 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
winsky!ппц. дятя петя, вы дурак? Нет, а ты? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 14:12 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Pallariswinsky!ппц. дятя петя, вы дурак? Нет, а ты? конечно! я твой код уже на говнокод.ру запостил. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 14:19 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
winsky!, да ты крут! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 14:20 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786Всем Огромное Спасибо за помощь. Все заработало неправильно методически ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 22:17 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Во-первых, последовательность номеров накладных в складских задачах - это бред. Во-вторых, последовательность актуальна для счет-фактур и только. В-третьих, последовательность решается классическим инкрементом, а не макс + 1. В-четвертых, никаких удалений и быть не может, иначе будут дырки в диапазоне. Только сторнирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2013, 00:04 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
guest786, Номер накладной надо сохранять при записи накладной и не присваивать его при создании. Я могу создать накл., и долго ее заполнять, а другой юзверь также создаст и заполнит быстрее, ему и номер раньше выдать надо, поэтому только при сохранении присваивать номер надо. Как то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2013, 01:58 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
carrotikPallaris Лишь бы потом не возникло путаницы. Например, удалят из базы накладные, и max() предложит номер накладной, которая уже когда-то была. Потом мы захотим эту накладную вбить в 1с или в другую систему, а та скажет - извините, но такая накладная уже есть в системе. ... это у нас уже проходили, и пришли к тому, что номер должен быть уникальным для предприятия :)... но у ТС пока что хотят "раз-два-три" ... +1. и не нужно придумывать и заниматься ерундой ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2013, 10:05 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
wamacoguest786, Номер накладной надо сохранять при записи накладной и не присваивать его при создании. Я могу создать накл., и долго ее заполнять, а другой юзверь также создаст и заполнит быстрее, ему и номер раньше выдать надо, поэтому только при сохранении присваивать номер надо. Как то так. Согласна, что это разумнее. Не подскажете как это сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2014, 03:01 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Nerolywamacoguest786, Номер накладной надо сохранять при записи накладной и не присваивать его при создании. Я могу создать накл., и долго ее заполнять, а другой юзверь также создаст и заполнит быстрее, ему и номер раньше выдать надо, поэтому только при сохранении присваивать номер надо. Как то так. Согласна, что это разумнее. Не подскажете как это сделать? Делаете отдельную таблицу. В ней два поля. Идентификатор документа ( строка), нумератор (число). Создаете одну запись с нач.номером. далее при записи документа присв.номер и увеличиваете нумератор на 1. Все в одной транзакции. Все. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2014, 00:17 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
wamacoСоздаете одну запись с нач.номером. далее при записи документа присв.номер и увеличиваете нумератор на 1. Все в одной транзакции. Все. Отпустили 100 накладных за 10 дней. Теперь вспомнили, что нужно удалить 1-ую накладную, отпущенную в первый день. Твои действия? Не понимаю, чем тебе поможет отдельная табличка и чем она лучше хранения порядкового номера непосредственно в рабочей таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2014, 10:01 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУwamacoСоздаете одну запись с нач.номером. далее при записи документа присв.номер и увеличиваете нумератор на 1. Все в одной транзакции. Все. Отпустили 100 накладных за 10 дней. Теперь вспомнили, что нужно удалить 1-ую накладную, отпущенную в первый день. Твои действия? Не понимаю, чем тебе поможет отдельная табличка и чем она лучше хранения порядкового номера непосредственно в рабочей таблице. Задним числом удалить накладную не верное решение. Снять участие в учете это можно. Поэтому номер останется за существующей накладной, пусть и не участвующей в учете. Второе, отдельная таблица будет хранить все нумераторы документов, это удобно. Плюс есть возможность устанавливать нумерацию с любого номера. Плюс легко скидывать нумерацию за периоды и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 02:58 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
wamacoЗадним числом удалить накладную не верное решение. Снять участие в учете это можно. Поэтому номер останется за существующей накладной, пусть и не участвующей в учете. Правильно, этот процесс называется сторно, как я ранее и говорил. wamacoВторое, отдельная таблица будет хранить все нумераторы документов, это удобно. Плюс есть возможность устанавливать нумерацию с любого номера. Плюс легко скидывать нумерацию за периоды и т.д. Sequence? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 09:07 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
[quot МСУ]wamacoSequence? Sequence... Sequence... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 11:17 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Одной строкой (начиная с SQL Server 2005), предпочтительно делать в отдельной транзакции: Код: sql 1.
Sequence -- это табличка с одним полем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 12:11 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
Нахлобуч, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 13:29 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУНахлобуч, Код: c# 1.
"Не взлетит" (с) Sequence NumbersThe sequence object generates numbers according to its definition, but the sequence object does not control how the numbers are used. Sequence numbers inserted into a table can have gaps when a transaction is rolled back, when a sequence object is shared by multiple tables, or when sequence numbers are allocated without using them in tables. When created with the CACHE option, an unexpected shutdown, such as a power failure, can lose the sequence numbers in the cache ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:39 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
sphinx_mvМСУНахлобуч, Код: c# 1.
"Не взлетит" (с) Sequence NumbersThe sequence object generates numbers according to its definition, but the sequence object does not control how the numbers are used. Sequence numbers inserted into a table can have gaps when a transaction is rolled back, when a sequence object is shared by multiple tables, or when sequence numbers are allocated without using them in tables. When created with the CACHE option, an unexpected shutdown, such as a power failure, can lose the sequence numbers in the cache Взлетит. Выделил красным. По поводу кэша изучаем матчасть. МатчастьЕсли компонент Компонент Database Engine непредвиденно завершает работу (например, из-за сбоя электропитания), то последовательность перезапускается с номера, считываемого из системных таблиц (39). Все порядковые номера, выделенные в память (но не запрошенные пользователем или приложением), теряются. При такой обработке возможны пропуски в номерах, однако гарантируется, что одно значение ни в коем случае не будет дважды назначено одному объекту последовательности, если для нее не задан параметр CYCLE или не выполнен перезапуск вручную. Кэш хранится в памяти путем отслеживания текущего значения (последнего назначенного) и количества значений, оставшихся в кэше. Таким образом, объем памяти, используемый для кэша, всегда равен размеру двух экземпляров типа данных объекта последовательности. Если установить аргумент кэша в значение NO CACHE, то текущее значение последовательности будет записываться в системные таблицы при каждом использовании последовательности. Это может снизить производительность за счет увеличения числа обращений к диску, но снижает вероятность нежелательных пропусков номеров. Пропуски по-прежнему возможны, если номера запрашиваются с помощью функции NEXT VALUE FOR или процедуры sp_sequence_get_range, однако это означает, что пропущенные номера не используются либо используются в незафиксированных транзакциях. Если в объекте последовательности используется параметр CACHE, то при перезапуске объекта последовательности или изменении свойств INCREMENT, CYCLE, MINVALUE, MAXVALUE или размера кэша кэш записывается в системные таблицы до выполнения изменения. Затем кэш перезагружается, начиная с текущего значения (т. е. числа не пропускаются). Изменение размера кэша вступает в силу немедленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:46 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
МСУsphinx_mvпропущено... "Не взлетит" (с) пропущено... Взлетит. Выделил красным.А роллбэк почему пропустил? МСУПо поводу кэша изучаем матчасть. Если стоит задача "получить номер документа без пропусков нумерациии", то на "автосчетчиках" любого вида она не решается. Так что "не взлетит"... :) А вот если завести табличку что-то типа "журнал регистрации документов" и брать номер документа уже из него, то может получиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 16:59 |
|
Как хранить счетчик с номерами накладных
|
|||
---|---|---|---|
#18+
sphinx_mvМСУпропущено... Взлетит. Выделил красным.А роллбэк почему пропустил? МСУПо поводу кэша изучаем матчасть. Если стоит задача "получить номер документа без пропусков нумерациии", то на "автосчетчиках" любого вида она не решается. Так что "не взлетит"... :) А вот если завести табличку что-то типа "журнал регистрации документов" и брать номер документа уже из него, то может получиться... Так я тоже могу руками крутануть номер в табличке и у тогда будут дырки. Точно так же и с сиквенсом. Нехрен его крутить тем, кому не нужно. Не вижу принципиальной разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2014, 18:00 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1403373]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 465ms |
0 / 0 |