![]() |
|
|
![]()
|
|
| Mr.Picwick |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.3.2004 Репутация: нет Всего: нет |
Доброго времени суток всем.
Пишу на Delphi7,Ado,база - Access. Тут у меня вот какая задача возникла. Пишу программу которая рассчитывает зарплату. Прога не особо какая сложная и тем не менее. В моей программе есть таблицы: 1 Фирмы(как часто бывает место работы одно, а юр. лиц - до черта) 2 Отделы/Цеха 3 Должности(Разнорабочий, водитель и т.д.) 4 Сотрудники (Информация о сотрудниках) 5 Табели 6 Платежи Табели - содержат ID,дату,название табеля Платежи - сколько, кто, когда получил - эта таблица связана с таблицей табели(один ко многим) и с таблицей сотрудники - т.е. открываешь табель, а с ним связана определенная группа сотрудников для которых посчитана З/П. Так вот в чем собственно вопрос: когда я создаю очередную платежную ведомость т.е. я открываю новый документ, вношу туда людей исходя из своих соображений, т.е. по цехам, по должностям, или всех сразу(не важно) - я их должен по идее вносить в какой-нибудь временный документ, а потом пятьдесят раз все проверив, занести изменения в БД. Я сделал эту фигню с помощью кэширования данных(BatchUpdate). Есть ли еще какие -нибудь приемы чтобы это реализовать? То есть сначала юзер все ввел, потом нажал батон, все сохранилось. Когда я делал это - я выбирал между Table или Query. Остановился на Table. Т.К. если делать с Query,то получается - к чему запрос должен обращаться ? к физической БД?ведь в ней еще ничего нет. Я хотел бы сделать это наподобие 1С, создаешь новый документ, в него заносишь инфу, сохраняешь - ВСЕ. Проблема в том, что с Query легче оперировать с данными, сортировать, отбирать и т.д. Может быть как-то временную таблицу создавать , заносить в нее инфу, отбирать с помощью Query а потом сохранять ее в БД? Еще вопрос очень интересует - можно ли запросы строить не к физическим БД, а к наборам данных, ведь таблица в БД - это одно дело, а в Delphi на нее еще навешиваешь LookUp и Calculated Fields. Если кто пишет профессионально(т.е. для фирм, компаний, заводов,газет,пароходов) посоветуйте, помогите, киньте ссылочку. Заранее всем ответившим благодарен! |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Пишу профессионально. Правда пока только для параходов не писал, но надо же что-то оставить на вкусьненькое.
Сразу говорю - лучше использовать запросы. Т.е. TQuery. Так как частненько бывает, что приходиться переводить многие программы на клиент-серверную платформу. Это особенно актуально для крупных организаций. Так вот, в клиент-сервренной программе без использования запросов не обойтись, поскольку при использовании TTable, будут гоняться туда сюда по локальной сети все записи существующие в той таблице, с которой Вы работаете. А при использовании запросов, наоборот, только выбранный диапазон данных. В Вашем случае с
Лучший выход - использовать компоненты TRxMemoryData, TRxQuery и TMemoryTable что находяться на вкладке RX DBAware из библиотеки RxLib. Они создают в патями виртуальный аналог набора данных БД. Поддерживающий все методы работы с набором данных БД (Post, Insert, Locate и т.д.) Разобраться с ними совсем не сложно. -------------------- |
|||
|
||||
| Nicholas |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 436 Регистрация: 30.9.2004 Репутация: нет Всего: 0 |
Я на 1С профессионально пишу, по моему оптимальный вариант для зарплаты. Хотя дорого конечно, но одну, две компоненты можно купить и все ок. p.s. Pegas, заметь, я никого не оскорблял и никому ничего не навязывал, а просто заметил, что
|
||||
|
|||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Да, заметил.... очень культурный ответ. Продолжайте в том же духе. Я за вас рад. Глядишь и плюсик поставлю в репутации. Только больше пожалуйста не делайте таких замечаний, так как это опять же нарушает правила форума и называется непристойным словом флуд. -------------------- |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |