Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2014, 11:05   #11
Rockot
Форумчанин
 
Аватар для Rockot
 
Регистрация: 01.06.2012
Сообщений: 139
По умолчанию

Взгляните пожалуйста на то, что я натворил.
Изображения
Тип файла: jpg 1.jpg (18.7 Кб, 131 просмотров)
Вложения
Тип файла: rar Warehouse.rar (336.6 Кб, 12 просмотров)
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
Rockot вне форума Ответить с цитированием
Старый 08.02.2014, 11:11   #12
Rockot
Форумчанин
 
Аватар для Rockot
 
Регистрация: 01.06.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Почему весь? Только те строки которые соответствуют условию в предложении where подзпароса.
Мне просто довольно трудно понять вас, т.к. это первая БД, которую я пишу, по крайней мере на делфи, взгляните на то что я написал, может я совсем всё неправильно сделал...
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
Rockot вне форума Ответить с цитированием
Старый 08.02.2014, 11:36   #13
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Мне просто довольно трудно понять вас, т.к. это первая БД, которую я пишу, по крайней мере на делфи, взгляните на то что я написал, может я совсем всё неправильно сделал...
Очень хорошо понимаю Вас. Все мы когда-то тоже были новичками...
Теперь подробно по сабжу.
Если я правильно понял, то в данный момент выводятся значения складских остатков, которые вводятся вручную.
Можно конечно при выполнении операции прихода и списания обновлять значения поля amount в таблице goods в программе, но ИМХО здесь смысла в этом немногим больше, чем в ручном вводе. В данном случае это создаёт необходимость дополнительных операций в клиентской программе, которые её только лишний раз усложнят, потому что без них вполне возможно обойтись.
Создайте в БД представление (в терминах Access "Запрос") с подзапросами, как я Вам советовал в своих предыдущих постах и всё, включая необходимые расчёты, ядро СУБД выполнит за Вас.
Ядро СУБД для работы с .mdb - Jet 4. Оно встроено в Windows. Поэтому для просмотра представления, к нему вполне можно обращаться из сторонней программы как к таблице. Таким образом, данное решение избавит Вас от не только от необходимости ручного ввода, но и значительно упростит Вам жизнь при разработке программы.
Streletz вне форума Ответить с цитированием
Старый 08.02.2014, 11:48   #14
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Прошу прощения, что вклиниваюсь.
Авторская база, прежде всего не нормализована. А это породит в будущем столько проблем, что мало не будет.
Нужно исправить структуру таблиц прихода и расхода с тем расчетом, чтобы записывать не наименование товаров, а их идентификаторы из таблицы товары.
Т.е. переделать поля Name (текст) на IDGood (целое число).

И только потому уже обсуждать как получать сальдо по товарам.
Само-собой, как и сказал Streletz, поле количество в товарах совсем не нужно, т.к. значение товара в остатке всегда можно посчитать по приходу и расходу. Который, надо заметить, считается в SQL запросе достаточно просто, без каких-либо дополнительных представлений.

Последний раз редактировалось Прик; 08.02.2014 в 11:53.
Прик вне форума Ответить с цитированием
Старый 08.02.2014, 11:55   #15
Rockot
Форумчанин
 
Аватар для Rockot
 
Регистрация: 01.06.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Прошу прощения, что вклиниваюсь.
Авторская база, прежде всего не нормализована. А это породит в будущем столько проблем, что мало не будет.
Нужно исправить структуру таблиц прихода и расхода с тем расчетом, чтобы записывать не наименование товаров, а их идентификаторы из таблицы товары.
Т.е. переделать поля Name (текст) на IDGood (целое число).

И только потому уже обсуждать как получать сальдо по товарам.
Само-собой, как и сказал Streletz, поле количество в товарах совсем не нужно, т.к. значение товара в остатке всегда можно посчитать по приходу и расходу. Который, надо заметить, считается в SQL запросе достаточно просто, без каких-либо дополнительных представлений.
Мне бы пример... Как это сделать...
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
Rockot вне форума Ответить с цитированием
Старый 08.02.2014, 12:07   #16
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Прик,
Цитата:
считается в SQL запросе достаточно просто, без каких-либо дополнительных представлений.
Согласен, но в клиентской программе к представлению обращаться значительно проще чем работать в ней с запросом. Простите, но не стоит забывать, что ТС новичок в таких делах и в данном случае, ИМХО чем проще и понятнее клиентская программа, тем лучше.
Rockot,
Цитата:
Мне бы пример... Как это сделать...
Простите, но пример чего конкретно? Пожалуйста говорите яснее.
Если имеется в виду SQL запрос с подсчётом суммы, то его пример я Вам уже приводил.
Примеров создания представления (запроса) в Access море и в сети и в литературе.
Пример нормализации таблиц БД? Пожалуйста.
Streletz вне форума Ответить с цитированием
Старый 08.02.2014, 12:10   #17
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Вроде бы ясно сказал. Повторю:
В среде Аксесса, в конструкторе добавляем в таблицу expenditure поле под наименованием IDGood - тип: числовой (имя для примера, разумеется).
То же самое в таблице coming.
Конструкторы закрываются и открываются эти таблицы.
Для тестирования в новое поле записываются (все там же, в среде Аксесса)
идентификаторы товаров (значения поля ID) таблицы Goods.
После этого поле Name в обеих таблицах можно удалить.
Так же можно удалить и поле amount из таблицы Good.
Прик вне форума Ответить с цитированием
Старый 08.02.2014, 12:15   #18
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Цитата:
но в клиентской программе к представлению обращаться значительно проще чем работать в ней с запросом. Простите, но не стоит забывать, что ТС новичок в таких делах и в данном случае, ИМХО чем проще и понятнее клиентская программа, тем лучше.
Да, конечно. Тоже считаю, что чем проще по началу в клиенте, тем быстрее освоится.
Но, думаю, что если, ТС новичок, то ему в Аксессе и запрос сделать будет по не просто.
Прик вне форума Ответить с цитированием
Старый 08.02.2014, 12:24   #19
Rockot
Форумчанин
 
Аватар для Rockot
 
Регистрация: 01.06.2012
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Прик Посмотреть сообщение
Вроде бы ясно сказал. Повторю:
В среде Аксесса, в конструкторе добавляем в таблицу expenditure поле под наименованием IDGood - тип: числовой (имя для примера, разумеется).
То же самое в таблице coming.
Конструкторы закрываются и открываются эти таблицы.
Для тестирования в новое поле записываются (все там же, в среде Аксесса)
идентификаторы товаров (значения поля ID) таблицы Goods.
После этого поле Name в обеих таблицах можно удалить.
Так же можно удалить и поле amount из таблицы Good.
Сделал всё как вы сказали, но... что дальше?
Следствие: 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.
Rockot вне форума Ответить с цитированием
Старый 08.02.2014, 12:33   #20
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Цитата:
Сделал всё как вы сказали, но... что дальше?
В каком смысле?
У вас есть нормальная БД, а что с ней делать дальше - это вы расскажите.
Ввод товаров, ввод расхода, ввод прихода, отображение сальдо товаров на определенную дату. Остатки делаются ВСЕГДА на какую-то дату.
Не напрасно же, в таблицах приходов и расходов есть дата операции.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Соединение несколько таблиц в одну REztor SQL, базы данных 8 31.12.2013 23:18
Объединение столбцов с нескольих таблиц в одну Enchanter Microsoft Office Access 8 11.06.2013 11:19
Данные из двух таблиц в одну reihtmonbern БД в Delphi 1 15.01.2013 23:25
объединение одинаковых таблиц в одну Алабор Microsoft Office Access 2 21.03.2011 21:17
Сведение нескольких таблиц в одну Sega Microsoft Office Excel 3 05.08.2008 15:21