Как работать с бд и есть ли для этого отдельные библиотеки?

SQL во всех проявлениях - от ANSI-92 до TSQL.

Модераторы: Yurich, Absurd

Resager
Сообщения: 9
Зарегистрирован: 13 янв 2009, 20:58

13 апр 2009, 20:52

У меня возникла потребность в базе данных, ибо в них всё организовано чётко, по полочкам, как я люблю, и на сколько я знаю. если установить пароль, то взломать его можно только опдбором....

Вот что я хотел сказать, помогите пожалуйста найти библиотеку, в которой есть функции создания изменения и добавления (и т д) данных в БД,

НО я никогда раньше не работал с БД, не знаю как они устроены, (а также что такое в них регистры). ПОмогите пожалуйста!!!
К тому же: можно ли создать, к примеру 3 поля, Цвет, Вопрос, Флаг, и только по этим данным организовать БД (ну естественно на вопрос отводится 256 Б? или как?).

Вобщем прошу помощи, пока что наткнулся на кучу литературы, которые понятны будут лишь после некого ВВЕдения...

+ а что такое - "таблицы DBF с индексами NTX" ничё не понятно, что подразумевается под таблицами (програмно - записи? а как параметры их разве можно передавать?)
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

13 апр 2009, 21:47

Для начала расскажите, на чем пишете?
Может быть Вам для Ваших задач хватит MS Access из MS Office?
Аватара пользователя
mc-black
Сообщения: 245
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

14 апр 2009, 11:54

Вам для начала надо немного узнать о базах данных, прочитать и попробовать что-нибудь делать в какой-нибудь простой СУБД: MS Access или FoxPro (старые DOS-версии). Важно разобраться в понятиях:
база данных
таблица
запись
поле
реляционные базы данных и язык запросов SQL

Дальше, когда столкнетесь с программированием баз данных, то уже сами выберете конкретную, подходящую Вам СУБД и лучше познакомитесь с технологиями доступа к базам данных. Забегая вперед назову некоторые общих из технологий доступа:
ODBC, DAO, ADO, ADO.NET - выбор будет зависеть от разных причин.
На заказ: VBA, Excel mc-black@yandex.ru
9e9names
Сообщения: 4
Зарегистрирован: 11 апр 2009, 23:47

14 апр 2009, 12:23

Добавлю свои 5 копеек: на мой взгляд MS Access слегка извращает в глазах новичков представление о СУБД, связывая интерфейс фактически клиентского приложения над БД и движок самой БД. Я бы порекомендовал найти джентельменский набор веб-разработчика Денвер (он же Denwer), благо он бесплатный; комплект легко устанавливается (и легко удаляется :D ), автоматически устанавливает MySQL и phpMyAdmin - при помощи которых легко можно "пощупать" вставку, удаление и изменение данных или создание, удаление и изменение самих таблиц.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

14 апр 2009, 14:47

Или так... Но в любом случае, Resager, Вы в этой теме просите объяснить Вам то, о чем написаны сотни тысяч книг. Поэтому давате вместо: "У меня возникла потребность в базе данных", - Вы расскажете подробно что Вы хотите получить в итоге.
Resager
Сообщения: 9
Зарегистрирован: 13 янв 2009, 20:58

14 апр 2009, 16:23

Naeel Maqsudov
язык, на котором пишу - AHK, но как я полагаю, если организовать работу с БД через команду для работы с функциями, хранящиеся в библиотеках (dll), то от языка практически ничего не зависит (едиественная сложность, передавать параметры *-го типа.
Встроенных команд для работы с БД в языке на данный момент не обнаружил.
Однако в недалёком будущем буду реализовывать ту же самую задачю на С++ (эм... Виажулке 2008 :) )

mc-black,
спасибо за список терминов, обязательно поищю в википедии...

9e9names,
вы правы, мы изучали MS Access в 10-м классе, из того. что нам задавали (ну и примеры работы с MS Access в сети) я справлялся на ура... но ИМХО - это как в поинте рисовать Оргграфы... о БД никакого понятия не дало, однако мы не полностью же изучали эту СУБД.
Другие попробую...

Naeel Maqsudov,
задача у меня такая, сделал программу, для создания теста (Элементы: Вопрос, путь к изображению, варианты (их Н штук), ответ на вариант, ещё несколько флагов, несколько числовых данных, и ещё одна строка).
Мне нужно Создавать файл с этими элементами, изменять, добавлять (может и удалять тоже).
И самое главное, шифрование, с использованием пароля. А для этого, считаю удобным использовать внешнюю функцию, с уже созданной организацией БД.
На счёт тысячи книг, а не датите хотя бы пару названий полезных таких книг про БД (ну более менее современные), на ваш вкус.
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

14 апр 2009, 16:59

По поводу книг: давайте сначала определимся с используемым движком, а уж потом будем говорить о книгах по конкретной СУБД.

Итак. Если вы можете работать с COM, то рассмотрите такой вариант:
База MSJet (т.е. Access) и готовые компоненты в виде ADO.
преимущества:
- вся база - один файл
- переносимость (в Windows всегда присутствует ядро MSJet (msjetXX.dll))
- удобное проектирование структуры БД с помошью Access
- с Access Вы уже немного знакомы, что тоже "плюс"
- MSJect предусматривает криптование базы, хотя и некриптованная она не не так уж читабельна на низком уровне :)
Даже если Ваши инструменты разработки не поддерживают COM, то можно воспользоваться ODBC. Access драйверы для ODBC естественно не проблема.
Resager
Сообщения: 9
Зарегистрирован: 13 янв 2009, 20:58

14 апр 2009, 17:02

COM-порт? О_о
А где можно прочитать. как использовать эту субд (через DLL)? - этот вопрос, думаю, стоит рассматривать, после того, как с первым....
Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

14 апр 2009, 17:30

Хотел сразу разъяснить аббревиатуры, но меня срочно позвали, поэтому отправил как есть :)

COM - Component Object Model. Про COM здесь прямо на developing.ru есть материалы com/
Если перейти на C++, то это точно будет несложно, а про "AHK" я ничего не могу сказать.

Вообще сама база физически может быть
- MSJet (Access) - 1 файл *.mdb
- DBASE или FoxPro - несколько dbf-файлов (по одному на таблицу) + несколько индексных файлов (файлы индексов у DBASE или FoxPro несовместимы)
- Paradox - несколько db-файлов (по одному на таблицу) + различные индексные файлы
- другие

Для работы с большинством форматов существуют технологии
- ADO
- DOA
- RDO
- ODBC
- некоторые другие
* Первые три основаны на технологии COM. Если кратко, то суть в том, что в некой DLL реализованы классы, которые обеспечивают работу с полями, таблицами, индексами, наборами записей (recodrset-ами).
* ODBC - это такой глобальный стандарт, который позволяет обратиться к некой DLL и вызывать специальные функции для подключения к БД, выполнения выборки данных, выполнения изменения данных. Сама ODBC использует некоторое количество драйверов для работы с разными типами БД.

ADO+MSJet на мой взгляд для вашей задачи лучше подходит.

Дополнительно по любой из аббревиатур сделайте поиск хоть в википедии, почитайте. Не хотелось бы все это тут цитировать и переписывать.
Аватара пользователя
mc-black
Сообщения: 245
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

15 апр 2009, 14:38

Если AHK - это сокращение от названия скриптового движка AutoHotkey, то работать придется на API (при помощи ODBC к примеру). Вызвать API-функцию там может функция DllCall(). А вообще программировать на Этом обработку баз данных будет несладко. Но, как говорится в умелых руках все заработает. Книг по ODBC я не знаю, есть ветка в MSDN Microsoft Open Database Connectivity (ODBC) и есть уроки iczellion'а по применению ODBC на MASM32 - мне этого было достаточно. Если покопать, уверен, найдется литература также на русском языке.
На заказ: VBA, Excel mc-black@yandex.ru
Ответить