![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программирование базы данных MS Access в Delphi 7 [D7, Access]
Alexlafa © (2011-05-07 17:34:00)Доброго времени суток! Пишу программу СУБД «Студент» программа хранит, вносит, редактирует данные о студентах. Столкнулся с проблемой: по истечению даты каждого года, данные с базы должны удаляться автоматически. Например, если дата на компьютере 05.07(июля).независимо какого года. Должны удаляться 4 курс студентов. В базе присутствует столбец «Курс». Если конечно можно так сделать?! Если да то подскажите как примерно или точно, буду признателен, за любую оказанную помощь, советы, строки кода, идеи вообщем буду очень признателен!
Anatoly Podgoretsky (2011-05-31 07:38:00) [1]> lw (30.05.2011 22:17:28) [28]
Если 4-й курс успешно завершён, начинаем пятый.
lw (2011-05-30 22:17:00) [2]По сути своей задача сформулирована ...не чётко.
Всегда имеется оператор, вводящий данные, например, экзаменационные оценки или вердикт "Переведён на следующий курс".
Изменить номер курса без подобной информации, тем более автоматически всем студентам оператору и программе не по чину :-), сперва декан подписывает приказ.
Зачем вообще удалять записи автоматически?
Поставьте фильтр и отображайте только нужные записи.
Реальное удаление производите только по команде системщика.
Автоматически можно скрыть какие-либо данные или пересчитать.
Может будет достаточно скрыть записи за прошлый 4-й курс?
Или обязательно нужно продемонстрировать автоматически срабатывающие функции?
В чём главная задача состоит?
Если 4-й курс успешно завершён, ставьте соответствующий признак.
На этот признак ставьте условие фильтра.
И нет нужды удалять записи.
sniknik (2011-05-25 21:26:00) [3]> это не теперь, это давным давно
ага,
насколько помню даже в 2000й винде был, и в 98й которая SE ... когда то "плотно" этим занимался (в 2000м году "сел" за изучение ADO, ну и..., и уже тогда было тяжко найти комп без компонент доступа к access, и в основном это были пиратские/хакерские дистрибутивы из которых они убрали "все лишнее")
в общем история развития - драйвера ODBC -> DAO -> Jet 3.0 -> Jet 4.0 -> Jet включен в состав MDAC (версия 5.0-5.5 что то типа) -> ACE.OLEDB.12 (датабейс енжайн) версия 2007 -> 2010
и на всем этапе он был, и есть доступен без офиса... даже когда ADO еще не было, или на версии 98-го "спешал" без COM модели, не было даже когда уже было. базы акцесс были доступны (с, похоже 3 версии дельфей были драйвера, dll, в BDE. в 5 дельфе уже было ADO).
> Между прочим MS SQL не тяжедый по сравнению с Акцесс
он даже побыстрее в некоторых случаях и в локальном варианте (сервер и клиент на одной машине), а уж разнесенный на 2 так вообще...
но его нужно ставить!!! в "силент" моде/включенным в сетап и т.д. что не всегда приемлемо... ну вот есть у нас, бывали такие ублюдочные требования. чтобы программа работала "сама по себе" т.е. чтобы скопировали, запустили и все. использовали access..., и продолжаем, часто уже по привычке, типа а почему нет, просто даем выбрать (и тут уже лень пользователя - "его нужно ставить!!!" а он отказывается нажимать пару "лишних" кнопок).
Anatoly Podgoretsky (2011-05-25 19:30:00) [4]> Dennis I. Komarov (25.05.2011 17:00:23) [23]
Между прочим MS SQL не тяжедый по сравнению с Акцесс
Palladin (2011-05-25 17:32:00) [5]
> теперь
это не теперь, это давным давно
сам аццесс это программа для работы с Jet, который и есть в MDAC
VirEx (2011-05-25 17:11:00) [6]ишь понабижали
> Anatoly Podgoretsky © (25.05.11 14:59) [14]
> кстати и Access не привязан к офису.
> sniknik © (25.05.11 15:05) [16]
> шо то вы себе навидумивали... для Access и библиотеки не нужно
> есть все что нужно), и к офису он не привязан.
http://www.rsdn.ru/forum/db/2201730.flat.aspx
теперь (с первых SP для XP) я так понимаю движок акцесс базы включен в дистрибутив операционки и установка акцесса, в состав которого входит MDAC (движок, драйвер ODBC, провайдер), уже не нужна для работы с access базой
?_?
Dennis I. Komarov (2011-05-25 17:00:00) [7]
> Anatoly Podgoretsky © (25.05.11 16:09) [22]
Если каждая супер-пупер-мега-программа будет таскать с собой таких монстров... :) Представляю юзерскую машину на которой MSSQLEE, FB, OraXE и т.д. и все цветет и пахнет одновременно. Тяжеловато на воробьев с пушкой ходить то...
Anatoly Podgoretsky (2011-05-25 16:09:00) [8]Не тут однозначно, 10 гб большой размер и там уже другие подходы к надежности и к прочему. Там уже стоимость СУБД на большая по отношению к другим расходам.
Dennis I. Komarov (2011-05-25 16:05:00) [9]
> Anatoly Podgoretsky © (25.05.11 15:55) [19]
Тут можно с разных сторон посмотреть...
Anatoly Podgoretsky (2011-05-25 15:56:00) [10]Кстати с MS SQL база так быстро не растет и сжимать ее не надо.
Anatoly Podgoretsky (2011-05-25 15:55:00) [11]
> Точно да, и это очень весомый аргумент в его пользу...
Весомый это когда используется бесплатный MS SQL - 10 гб достаточно большинству, а тем кому этого мало значит они рискуют бизнесом, иначе бы купили коммерческую версию.
sniknik (2011-05-25 15:09:00) [12]> возможно есть фишка для авторезервирования места под запись и тд
несомненно есть. достаточно почитать инет на предмет воплей о "лишнем размере" у баз аксесса и желании его убрать... а это всего лишь рабочая пред выделенная область, оптимизация на скорость.
у SQLite такой нет. и "грамотная настройка" компонента для sql запросов что мертвому припарки.
Dennis I. Komarov (2011-05-25 15:06:00) [13]
> кстати и Access не привязан к офису.
Точно да, и это очень весомый аргумент в его пользу...
sniknik (2011-05-25 15:05:00) [14]> тем что достаточно одной библиотеки, не привязано к офису
шо то вы себе навидумивали...
для Access и библиотеки не нужно, стандартными из дельфи обходится (т.е. не нужно скачивать/устанавливать/таскать с собой исходный код... есть дельфи > 4 версии = есть все что нужно), и к офису он не привязан.
VirEx (2011-05-25 15:00:00) [15]>sniknik © (25.05.11 13:51) [12]
предполагаю что скорость работы зависит от грамотной архитектуры базы и настройки компонента
полагаю можно настроить компонент так, чтобы после каждого добавления записи не было сброса на диск (flush), возможно есть фишка для авторезервирования места под запись и тд
Anatoly Podgoretsky (2011-05-25 14:59:00) [16]> VirEx (25.05.2011 14:52:13) [13]
Тогда лучше вообще без библиотек, кстати и Access не привязан к офису.
VirEx (2011-05-25 14:52:00) [17]>Dennis I. Komarov © (25.05.11 13:37) [11]
>
> > вместо акцеса лучше бы SQLite
>
> На чем основывается столь безаппеляционное утверждение?
тем что достаточно одной библиотеки, не привязано к офису
sniknik (2011-05-25 13:51:00) [18]> вместо акцеса лучше бы SQLite
чем? я вот когда его пробовал поймал "глюк" время инсерта 1 записи зависит(ло?) от размера таблицы. т.е. к примеру (конкретных цифр не помню) 1000 записей при таблице размером в 1 мб вставляется 1 сек, а вот если размер уже 50 мб то 30 сек.
у аксесс такой зависимости не обнаруживал, даже когда 1 таблица в базе, т.е. приблизительно = размеру базы, и размер ее гигобайт скорость вставки такая же как в начале на 1 мб.
Dennis I. Komarov (2011-05-25 13:37:00) [19]
> вместо акцеса лучше бы SQLite
На чем основывается столь безаппеляционное утверждение?
VirEx (2011-05-25 13:24:00) [20]>VirEx © (25.05.11 13:23) [9]
> >sniknik © (10.05.11 10:09) [8]
>
> вместо акцеса лучше бы SQLite
> правда размер файла базы будет зависеть от файловой системы
кстати, у вас случаем не фат32?