Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

подсчёт кол-во в складской программе [D7, Paradox]


Страницы:   1 2 3 4 5 6 7

@k@DElpher ©   (2005-04-22 20:00:00) 

Здравствуйте,
пишу программу по учёту склада(ну и остального:))
есть две таблицы Парадокса:
покупки, продажи
структуры почти одинаковые:
ID(ключ),IDDoc-номер,как документа, имя документа(накладная №3),
GOODID- номер товара из таблицы товаров,Amount -Кол-во и так далее...
Как вы заметили здесь даны не документы, а товары со свойствами на принадлежность к одному документу(IDDoc).
Так вот мне надо так подсчитывать суммы, чтоб оно относилось к одному документу, и выводить это юзеру, как таблицу накладных с суммами, и например остатки по этим таблицам...
в общем там разберусь- главное, что использовать? Куда думать:)? У кого подглядеть?
или, если, кто знает - где взять примеры, и где почитать касательно именно этой темы(разработки бухгалтерских и складских программ на Delphi...
( писать буду на Delphi 2005:) )
    Заранее благодарен:)...


Fay   (2005-05-03 16:19:00) [41]

2 ANB ©   (03.05.05 15:56) [84]
> без компа с NT Server
Это не совсем правда 8)
> триггера приезжают не строки, а наборы данных
В ora тоже (тоже так можно)

О диагностике - я имел ввиду ситуцию, когда при компилляции (или выполнении) выдаётся сообщение об ошибке, совершенно не соотв. действительности.

Про исключения - это да. Есть такая беда.

>> Пакетов нет
Дождёмся MSSQL 2005.

В MSSQL хинты намного удобнее, и можешь быть уверен - сервер сделает именно то, что ты напишешь.

Ладно. Кончаем холивор. Я работаю и с MSSQL 2000, и с Oracle 9.2, и под каждым не хватает чего-либо.


ANB   (2005-05-03 15:56:00) [42]


> Но работать с сервером, у которого такая дебильная диагностика
> ошибок - спасибо, только если Родина скажет "надо".
- это про MS SQL ? Вот уж где дебильная диагностика . . .
Обработки исключений фактически нет, понятия валидности нет.
Пакетов нет.
А зачем Oracle top, если есть rownum ? К тому же rownum умеет больше.
MS SQL круче следующими вещами :
- векторные запросы (into в несколько полей, в Oracle так тоже можно, но гарантированно нарвешься на ошибку выполнения)
- from в update и delete
- операции с набором значений как у тебя в 2 (даже не знал :((()
иногда это удобно, а то в Oracle для подобных вещей надо хранимку заводить, хотя можно обойтись и безымяным блоком.
- отсутствие mutating в триггерах, но ради этого в триггера приезжают не строки, а наборы данных и частенько это криво обрабатывают, даже в примерах из книжек.
Большой глобальный минус - без компа с NT Server ты его не поднимешь. От чего я с него окончательно и слез.


Fay   (2005-05-03 13:55:00) [43]

ANB ©   (03.05.05 9:43) [79]
Я полагал, что Вы разбираетесь в том, что сравниваете.
(1) - выборка и изменение значения одновременно;
(2) - это конкатенация значений поля из всех записей.
>> в Oracle так :
Не так. Это только для одной строки. Да и ценность v := '' не совсем очевидна.

С rownum в Oracle действительно легче работать - в MSSQL его просто нет, как нет top в Oracle. Rowid подойдёт только при serializable.
Курсоры for ... in (...) loop удобнее, спору нет.
Но работать с сервером, у которого такая дебильная диагностика ошибок - спасибо, только если Родина скажет "надо".


ANB   (2005-05-03 13:34:00) [44]

На 286 Win32 не встанет. Он 16 разрядный. Минимум 386, но надо напихать 8 Мб RAM и будет жутко тормозить. Для такихь компов надо под DOS писать. Delphi умрет (и подойдет только 1.0)


@k@DElpher   (2005-05-03 12:59:00) [45]

примерно:) Но Windows встанет...:)


ANB   (2005-05-03 09:48:00) [46]


> странинном компе(вроде бы даже не на двойке),
на 286 ???????


ANB   (2005-05-03 09:43:00) [47]


> Fay ©   (29.04.05 20:01) [75]

1) declare @Num int
update Table1 set
Num = Num + 1,
@Num = Num + 1
where ID = 1 - это для чего (ТЗ, если можно)?
2) declare
@v varchar(4000)
select
@v = ''
select
@v = @v + Field1
from Table1

в Oracle так :
declare
v varchar2(4000);
begin
v := '';
select v || min(Field1) into v from Table1 where ID = 1;
end;

Да, Oracle клинит на векторных запросах, нельзя юзать from в update. Но это легко разруливается через rownum, rowid и курсоры. Тем более, что работать с ними намного проще, чем в MS SQL.


@k@DElpher   (2005-04-30 11:21:00) [48]

и совсем забыл! Снаступающей Пасхой!


@k@DElpher   (2005-04-30 11:15:00) [49]

Да и ещё:
не будет у меня там налогов, мощной кассы, и всяких прочих документов- только приход, реализация, остатки ТМЦ...


@k@DElpher   (2005-04-30 11:13:00) [50]

1) Автор ни куда не свалил:) Просто, когда сюда ходил- ничего не было:)...
2)В общем я понял, что не понял, поняли ли вы, что мне нужно.
3)Мне нужен простой учёт склада, который надо будет запускать на странинном компе(вроде бы даже не на двойке), и сетки там не будет и к этому компьютеру я буду подходить довольно редко=> как я понял из выше изложенного- в моём случае ни о каких КЛИЕНТ-СЕРВЕР, думать не надо:)
4)Есть в мире, что почитать(проверенного)  о написании складских программ(простых, и не простых:)  и о СУБД для этого? Можно в электронном, можно в бумажном виде? Посоветуйте что-нибудь.
А эту программку всё-таки напишу в парадоксе(хотя бы для собственного развития)...


Fay   (2005-04-29 20:01:00) [51]

Имелось ввиду
declare @Num int
update Table1 set
Num = Num + 1,
@Num = Num + 1
where ID = 1


8)


Fay   (2005-04-29 20:00:00) [52]

ANB ©   (29.04.05 16:08) [57]
Попробуй сделать на Oracle это

declare @v int
update Table1 set
 Num = Num + 1,
 @Num = Num + 1
where ID = 1


или это :
declare
 @v varchar(4000)

select
 @v = ''

select
 @v = @v + Field1
from Table1


Ещё можешь попытаться всунуть в ХП запрос со вложенностью подзапросов > 4. На досуге.


Polevi   (2005-04-29 17:01:00) [53]

>ANB ©   (29.04.05 16:46) [71]
работал с ораклом - ну и советуй по нему
только не надо тут холи вор если не знаешь того против чего агитируешь

>msguns ©   (29.04.05 16:38) [70]
насколько я понимаю suspend помещает запись в список тех которые будут возвращены процедурой
в моем примере это делает insert @t


Romkin   (2005-04-29 17:01:00) [54]

msguns ©   (29.04.05 15:15) [38] Хм...
Не хами
>Romkin ©   (29.04.05 14:25) [37]
>Назови мне хотя бы пару преимуществ BDE + dbf|db перед, например, Firebird Embedded? Никак не могу найти...

>Ясный ясень, что не найдешь. Особенно если искать и не собираешься. Преимуществ мало, но они есть. И главное из них - это то, что уже написано море работающих прог с использованием презираемых тобою локалок.

Это преимущество?! На клиент-сервере тоже написано море работающих прог, и что? Какие преимущества все-таки? Я ведь тоже писал и на фоксе, и db пользовал. Не вижу я их, а у сервера - их море...
Связываться с ними просто не хочу. На клиент-сервере БД пишется раза в два быстрее, при желании. По крайней мере, у меня так. И это не считая монтирования в прогу презервативов для контроля и восстановления целостности...

>Мне для того, чтобы "подкрутить" любую из них, надо от 5 мин до 5 дней. Ты что, предложишь мне все их переписать под FB ?

Я этопредлагаю? Работает - не трогай. А вот новое лучше уж писать на клиент-сервере, оно быстрее и надежнее.

>Зачем этот твой пост ? Чтобы показать, что ты основной, а мсганз - чайник ? Тем более, что мсганз чепухи-то не городил. Высказал свои взгляды, абсолютно, кстати, не безапелляционные (в отличие от твоих).

В чем отличие:
"Для однопользователького учета (а таких пользователей великое множество, ЧП например) юзать сервера-изврат чистейшей воды. Локалки-самое то. Дело не в дб, а в руках и голове."
от
"Отвратно! Столько лишних телодвижений - все сам, проверки, целостность..."
???
По-моему, стиль я сохранил :)) И не понимаю я, чем лучше для одного пользователя связка BDE+dbf чем FB embedded?! И почему второе - изврат?!

>А по-существу-то ? Про склад ?
А по существу - все уже сказали. Мое мнение - неверно выбранный инструментарий плюс ошибочная структура БД. Что тут сказать? Учите матчасть, как производится движение товара, как проектировать БД и тд... Это уже сказали.

И не хами


ANB   (2005-04-29 16:46:00) [55]


> ms sql 2000 с сотней одновременных подключений
- я работал на небольшой базе, в таблицах не больше 500 миллионов записей, а подключений не больше 3000 одновременно, но сделана она была на Oracle 8. Правда репликация была не автоматическая, а писана ручками, но связывала 10 филиалов (с 2-3 серверами в каждом) от Сибири до СПб по разнородным каналам, включая DialUp.


msguns   (2005-04-29 16:38:00) [56]

>Polevi ©   (29.04.05 16:29) [68]
>не хами

И в мыслях не было. Шутка, не более. С подкольным подтекстом. Если обидел, извиняюсь. Без проблем.
Никто не сомневается, что ты знаток скалы, но не одна она в мире БД.
Однако по сабжу-то что-то ничего от тебя не прозвучало.

На счет "работает". У меня работает несколько десятков многопользовательских систем на 3-30 пользователей. И не 3 года, а по 5, по 6, и даже по 10. Писано на парадоксе. Тем не менее я не пытаюсь всех убедить, что парадокс рулит, а все остальное - отстой.

По поводу suspend. Все глаза проглядел - не увидел аналога. Если не в лом и не обиделся на меня еще, то прокомментируй, пожалуйста, ибо я в скале почти новичок.


ANB   (2005-04-29 16:34:00) [57]


> крупная распределенная система на ms sql 2000
- тут снимаю шляпу. Обмен между серваками на MS SQL пока круче сделан. Хотя я еще 10G не видел. И бэкап MSSQL в десятки раз быстрее снимает и ставит, чем Oracle дампы. Правда, при восстановлении бэкапа можно умудриться и базу навернуть, но в Oracle вообще сначала надо схему пересоздать.


Polevi   (2005-04-29 16:29:00) [58]

>msguns ©   (29.04.05 16:25) [65]
не хами


Polevi   (2005-04-29 16:28:00) [59]

и зря вы со мной спорите
у меня работает крупная распределенная система на ms sql 2000 с сотней одновременных подключений и милионами записей
а ваши академические наезды - собака лает караван идет

на oracle я такого не писал - и молчу в тряпочку про то чего не знаю
а у вас просто словесный понос какойто


ANB   (2005-04-29 16:26:00) [60]


> да, программрование это вообще отстой,
- не, за это мне деньги платят. Но так же намного проще :

for CurVar in (select * from Tbl) loop
. . .
А здесь можно юзать CurVar.Field1 и прочее
end loop;

Никаких проблем с открытием/закрытием и прочим. Хотя можно и как обычно, но такие курсоры обычно передают или возвращают.


Страницы:   1 2 3 4 5 6 7

Наверх

Титульная страница Поиск, карта сайта Написать письмо