Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Связь делфи и аксеса


Автор: SnowSin 30.3.2010, 16:58
Здравствуйте, не большая проблема возникла при связке делфи и аксеса, в аксесе у меня таблица и мне нада что бы поле из нее в DBListBox залезло, связь установил вроде нормально(проверил через DBGrid все вывелось), подскажите в чем может быть ошибка

Автор: Данкинг 30.3.2010, 20:35
Цитата(SnowSin @  30.3.2010,  17:58 Найти цитируемый пост)
в чем может быть ошибка 

В чём угодно. Информации маловато.

Автор: former 30.3.2010, 22:34
Наверно это будет звучать банально, но.... Код в студию! smile 

Автор: chip_and_dayl 31.3.2010, 00:07
Нет кода, нет проблемы :)

Автор: fidres 31.3.2010, 03:46
SnowSin, существует такое понятие, как компоненты...
в дэльфе компоненты для связи программы с базами данных access - расположены на вкладке ADO (если ты, конечно, не законченый извращенец и не связываешь прогу с базой через BDE  smile ).
сам процесс подключения базы - не составляет труда у ЛЮБОГО хоть мало-мальски соображающего!
НО! подрубить базу к своей проге - это лишь 10% от всей мороки, с которой придётся столкнуться!  smile 
вся заморочка в том, что данными из базы - нужно управлять! притом управлять разумно!
а для этого компонентов ADO - не достаточно! это лишь визуализация (по большому счёту)...
для того, чтобы крутить-вертеть данными - необходимо крутить и вертеть ими в контексте самого access'а!
создавая в своей проге объект Access.Aplication - многие не догадываются, что на самом деле они подключают к своей проге обособленное сочленение методов и процедур, присущих этому объекту, но никак не то, чем может управлять сама дэльфи!
это нужно понимать изначально!
как и то, что методы этого объекта - лежат в объектной моделе самого эксеса!
то есть, управлять данными внутри базы данных - может только движёк самого эксеса!
все команды, лежащие между строкой создания объекта Access.Aplication и его отключения/уничтожения - должны будут обрабатываться эксесом!!!
многие маются задачей - где взять полный список функций/методов того или иного движка (по сути, описалово методов и функций эксеса той или иной версии).
отвечаю: методы и функции того или иного движка эксеса можно узнать очень просто - достаточно запустить эксес, создать новую базу, перейти в "модули" и создать ЛЮБОЙ модуль (даже не обязательно что-то там писать!), после того, как откроется окно VB - нажимаете F2 и все методы и функции перед вашими глазами!
в следствии этого вы получаете возможность вставлять какие бы то ни было методы/функции в свою прогу на дэльфи (с++ или VBA, или ещё чёрт знает на чём, лишь бы была возможность подрубить mdb)!
а дальше - всё зависит лишь от умения мыслить и читать справку от мелкомяхких!
 smile 

Автор: fidres 31.3.2010, 04:14
ах, да!
чуть не забыл!
касаемо твоего вопроса: грид - позволяет отобразить ПОЛНЫЙ НАБОР ДАННЫХ ИЗ БАЗЫ (т.к. этот набор передаётся в грид ПОЛНОСТЬЮ, без разделения на поля и прочее. можешь посмотреть исходник модуля DBGrid, чтоб удостовериться чего откуда и куда оно получает/передаёт/отображает)!
чтобы вывести отдельную составляющую в какой-либо отдельный компонент (не важно, поддерживает этот компонент работу с полями базы или нет) - ты должен вычленить данные из интересующего тебя поля и поместить их в нужный компонет програмно!
(некоторые компоненты позволяют делать это методом настройки на определённую часть/поле таблицы, содержащейся в базе. но если таблиц много, а вывести нужно какую-то определённую часть из нескольких таблиц - придётся покарпеть над парсингом - выделении нужной инфы из всех таблиц или из какой-то части)
а для этого нужно чётко представлять себе структуру данных!
есть файл MDB. в нём содержаться таблицы. в каждой такой таблице есть поля, в которых записаны данные.
чтобы добраться до данных - нужно:
  • подключиться к файлу
  • найти и открыть таблицу
  • прочитать нужное поле
  • передать значение этого поля обратно в свою программу
  • в своей программе отобразить прочитанное из базы значение
алгоритм несложный, но реализация - подчас затруднительна, если не понимаешь всей логики происходящего.
 smile 

з.ы. кстати сказать, MDB - могут содержать помимо таблиц с данными: страницы, через которые можно управлять данными через web-интерфейс, готовые к употреблению sql-запросы (что может намного упростить те или иные телодвижения, для работы с базой данных програмно!), а так же отчёты, макросы и модули!
всем этим тоже можно управлять из дэльфы!!!
smile 

Автор: fidres 7.4.2010, 08:01
очень полезна будет книга Андрея Гарнаева "VBA в подлиннике. Наиболее полное руководство".
особенно глава 16 про ADO. перечисляются компоненты, их методы, свойства и даже приведены некоторые примеры (правда, в контексте VBA - вижуал бэйсик эпликейшн).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)