| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Создание БД MS Access |
| Автор: Сарт 20.9.2006, 18:40 |
| Собственно, сабж. Если можно, простой примерчик, скажем для переменнны a и b, вводимых через Edit. +поиск по БД, подключение БД ну и т.д.=) Заранее спасибо=) |
| Автор: Rodman 20.9.2006, 19:31 | ||||
| Если у тебя уже есть база данных на Access... то тебе необходимо к ней подключиться... Проще всего использовать ADO компоненты на соответсвующей закладке... ADOConnection - добавляешь на форму и заполняешь свойство ConnectionString... т.к. у тебя база на Access, то выбирай драйвер Jet 4... После этого добавляешь на форму ADOQuery и в нем добавляешь в поле Connection свой ADOConnection... и на конец в поле SQL пишешь запрос
а в делфях пишешь
и будет тебе счастье... если нет - пиши, спрашивай... |
| Автор: Сарт 20.9.2006, 20:51 |
| К сожалению, у меня нету БД Аксесс=). у меня есть чисто форма=) И есть кнопка Сохранить в БД. И есть кнопка поиск по БД. И если я не сделаю так,чтобы они заработали не будет меня=). Так что, пожалуйста, ооочень подробно. Я бы хотел сделать так примерно: При нажатии на кнопку искать в папке файл, скажем, 1.mdb При отсутсвии--создавать его, (ну и заполнять данными едитов). При наличии--открывать на запись. Ну и поиск нужно реализовать по значению Едита А(стринговая переменная) и по значению Едита Б(тож стринговая, фио хранит). Также, нужно чтобы совпадение по значению Едита А было не строгим, то есть ,допустим, я ввожу 2 000 000, и оно находит все данные, начинающиеся на 2 000 000 (2 100 000, 2 999 999 например). Помогите плиз=). На всяк случай кидаю архив с проектом. |
| Автор: Rodman 20.9.2006, 20:54 |
| Какой файл??? Где??? Добавлено @ 20:56 Или ты программно хочешь создавать БД??? |
| Автор: Сарт 20.9.2006, 20:59 |
| Отредактил,все лежит=) |
| Автор: Сарт 22.9.2006, 20:10 |
| Постараюсь ответить попонятнее=) Мне нужно, чтобы можно было выбирать-строгое соответствие или нет. В случае строгого-думаю, все понятно. В случае не строгого--совпадала первая цифра. НО! при этом совпадал и порядок числа(то есть при вводе 2 000 000 выводилась информация о кредитах на суммы от 2 000 000 до 2 999 999, которые есть в базе...и никаких лишних кредитов на сумму, скажем в 200 000.) 1)Таблица, я так думаю, должна выглядетьпримерно так: ФИО Дата рождения Место работы Телефон домашний(в проекте-телефон фактический) Место проживания Сумма Кредита Думаю, делать 1 таблицу...смысл делать больше то? 2)Поиск по всей таблице (по старым и добавленным данным) 3)Не совсем. В проекте посмотришь- у меня 1 едит на поиск. Думаю, сделать поиск вначале по столбцу ФИО, а потом по Сумме кредита 4)Стринговые переменные только.В проекте только 2 переменные типа не стринг, но они для БД не нужны....я так надеюсь=). |
| Автор: Rodman 22.9.2006, 20:43 |
| А по какому полю искать строгое и не строгое соответствие??? По кредитам??? |
| Автор: Сарт 22.9.2006, 22:54 |
| Да, по сумме кредита. |
| Автор: Fighter 23.9.2006, 04:26 |
| SQL - рулит. В SQL есть такая фига как INSERT TABLE. Вот разберись с ней. |
| Автор: Сарт 23.9.2006, 10:40 |
| Проблема останется только одна-как запустить потом эту БД на компе=) короче, требования доп. такие-сделать бд. сделать поиск. Но при этом прога должна работать на сиандартном оффисном компе. То есть без SQL, Framework-а и т.д. Стоят на машинах тока оффисы. Поэтому наш выбор- Акксесс....Так как блокнот не потянет столько записей. |
| Автор: Rodman 23.9.2006, 12:16 | ||
| - что это, клавиши западают Вот я кое что добавил тебе... а вот про
Fighter если можно то пример покажи, у меня не получаеться (SQL знаю)... |
| Автор: Savek 23.9.2006, 14:50 | ||||
Это глюк для создания таблицы
для вставки строки в таблицу
|
| Автор: Rodman 23.9.2006, 16:13 |
| Я на SQL напишу любой запрос.. не нужно мне приводить примеры запросов... мне нужен исходник в делфяхк который поможет мне создать базу и в ней таблицы в Access... Savek, при надобности я и сам тебе расскажу SQL... |
| Автор: Fighter 24.9.2006, 00:50 | ||
Ну так если с сиквелом у тебя нет проблем то кидай AdoQuery на форму и пользуйся на здоровье. |
| Автор: Rodman 24.9.2006, 22:10 |
| Fighter, понимаешь с MySQL получится и создать базу и таблицы в ней... а вот с Access не в какую не проходят эти запросы... я так думаю что там структура какая-то не как везде... Вот просто и хочу увидеть пример на Delphi который сделал бы это... Если у кого-то получалось подобное, то выложи (но только если сам пробовал, а не в инете видел)... |
| Автор: Сарт 24.9.2006, 22:43 |
| Как я понял, тема животрепещуща=) Могу дать подсказку..что умные люди посоветовали....Мне правда не помогает=) Итак, совет: Совсем ",tp доп.требований к установленным программам" - естественно никак. Cамый простой вариант - БД MS Access (сама СУБД не нужна) и интерфейс к ней ну пусть на той же Delphi. Доступ через ADO. ну если совсем АПИ, то через ODBC. |
| Автор: Savek 25.9.2006, 12:47 | ||
Вот процедура создает базу Аксес
|
| Автор: SergeBS 25.9.2006, 12:56 | ||||||
Сарт,
Гони этих "умных" в шею. Если это учебная задача, то лепи DBF-ки - потянет, а если нет, то подумай: что с тобой сделают, когда в результате, например, нажатия на Reset, скачка в розетке или особо "продвинутого" юзера у тебя вся база Access грохнется. Особенно если через 3-4 месяца после начала эксплуатации. Сервера ставят не от жира, а чтобы данные не терялись. Поскольку дешевле будет один комп запереть в кладовке, чтобы никто не мог подойти, подоткнуть к нему стриммер, навесить SQL сервер и спать спокойно.
Через ADO я тебе к любому серваку достучусь. А если в укромном уголке "вдруг" MS SQL заведется, то доп. требование: MDAC 2.8 + DCOM98 для Win95/98 (или IE >=5.5, который его молча впихнет).
Пальцы об клаву до костей сотрешь |
| Автор: Сарт 25.9.2006, 19:54 |
| Задача НЕ учебная.. производственная=) Попросил директор настойчиво=) Была бы возможность с SQL я бы особо и не парился=) А как насчет записи??Подскажи плиз, вельми дзенкуе скажу пану |
| Автор: SergeBS 26.9.2006, 08:10 | ||
Сарт,
Ну так и объясни директору, что либо в кладовке/подсобке/... (короче под замком, а ключ только у него и у тебя) сервер будет стоять, либо он через 4-5 месяцев от инфаркта помрет, когда все данные о кредитах грохнутся без возможности восстановления. И нефиг тут париться. Из говна пуля только говенная выйдет. Насчет SQL: в комплекте Офиса есть MSDE - MS SQL server Developer Edition. Т.е. есть лицензия на Офис - можешь его поставить. Папка с инсталляшкой так и зовется - MSDE. От настоящего сервака отличается тем, что: 1. Одновременно - не более 5 транзакций, остальные - в очередь. Но все равно шустрее, умнее и надежнее, чем Access. 2. Док в комплекте - никаких. И тулз тоже. Однако берем дистрибутив нормального сервера, при установке на не-серверную ОС (если не мухлевать |
| Автор: Сарт 26.9.2006, 14:29 |
| Я работаю тока 2 недели=) Так что вряд ли твой вариант мной осуществим=). Так что план пока--сделать БД на 1 компе, резервно вручную его втихомолку копировать, потом, когда накроется---достать из рукава=).Ну получить премию, а заодно и объяснить чем сервер хорош=) В общем, базу , похоже, мне создатьь помогли... помогите плиз реализовать по ней еще и поиск=) |
| Автор: SergeBS 27.9.2006, 08:22 | ||||
Сарт,
Мог бы еще добавить, что это первая работа, по образованию - не программист и т.п... Для полноты картины. Что, впрочем, ясно. И сколько работаешь - неважно. Минимально разумный начальник легко поймет, что дешевле сразу застраховаться от беды, чем потом волосы рвать и виноватых искать. А если считается, что техника сверхнадежна и люди не ошибаются - лучше сразу ищи новое место работы. Поскольку тебя уже назначили крайним.
Ну-ну. Так БД и останется на 1 компе. Размечтался. От тебя втихомолку расползется и будешь только копированием заниматься. Пока вконец не запутаешься. Нет смысла такие задачи иметь в 1 экземпляре - не окупится даже разработка: дешевле тебя сразу на учет кредитования усадить, чем кого-то на нем держать, а тебе для него программу писать. Файл-сервер в конторе наверняка есть. Поэтому: 1. Ставишь втихомолку SQL-сервер. Бэкапишь - на файл-сервер. Каждый вечер - недельным циклом + помесячно - в долгое хранение. Если очень хочется секса стоя в гамаке на лыжах 2. СРАЗУ обеспечиваешь парольный вход - клиент БД уже не расползется по юзерам бесконтрольно и при небольшом старании (читай Уфимцева на SQL.RU) всегда будет известно, кто насвинячил. С датой, временем и т.п. Ну и вдогонку: читай http://forum.vingrad.ru/index.php?showtopic=98366 Пока не поздно. |
| Автор: RideX 27.9.2006, 09:01 | ||||||
Сарт, вот тебе основа, проверки и всё остальное, думаю, сам сможешь накрутить. База данных MS Access, обращение через запросы, думаю ты этого хотел? На пустую форму положи DBGrid, Edit и две кнопки. Всё остальное создаём в runtime и работаем как обычно.
Добавлено @ 09:13 Поиск по любому вхождению делай так:
если только по концу, то соответственно так:
Hint: например, через поле таблицы [ИНН] удобно привязать связанную подчинённую таблицу, а то бывает такой кошмар, что люди делают по две, чуть ли в точности не дублирующие друг-друга таблицы. Получается, естественно, огромная избыточность. Образец этого недавно здесь видел, если найду ссылку, добавлю сюда для ознакомления. P.S. Конечно, если будешь обращаться к данным из других форм, перенеси переменные fmMain в глобальные для всего приложения. |
| Автор: Сарт 27.9.2006, 15:20 |
| Сенкс, завтра испробуем на практике, отпишусь какие траблы возникнут=) Блин со второго раза ткоа воткнул в чем разница между поисками=) а разница то в--%. |
| Автор: Rodman 27.9.2006, 18:57 |
| Savek, а у тебя нет подобный примеров для других СУБД??? или откуда ты вытянул напиши... пожалуйста... |