Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение, запись в MS Access (*.mdb), как это делается? 
:(
    Опции темы
Zero
  Дата 20.2.2005, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Народ, заранее извините за простой вопрос. Дело в том что мы ещё не проходили работу с БД через Делфи, а мой курсач офицально должен делатся чисто с помощью Access, без использования делфи. Но кто хочет можно делать как угодно. А в факу, куча всяких вещей написано, но толком не расписано, там скорее всего авторы думали что мы телепаты и сами догадаемся как работать с неуказаными вещами.

Вообщем вопрос, такой:
1. Как присвоить какой-нибудь элемент БД, какому нибудь идентификатору делфи.
При этом с помощью СУБД Access, созданы связанные таблицы, и элемент должен быть получен путём запроса, но всё делается чито через делфи.
2. И как записать содержимое идентификатора в access.
PM MAIL ICQ   Вверх
Александра
Дата 20.2.2005, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: нет
Всего: 12



не поняла вопроса... ((( что и куда присвоить???

вообше отлично для этого подходит ADO...
--------------------
PM   Вверх
Zero
Дата 20.2.2005, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата
что и куда присвоить???

Из БД, присвоить содержимое запроса, например в текстовую переменную. (у меня любой запрос состоит из одной ячейки таблици)
Цитата
вообше отлично для этого подходит ADO...

Возможно, но мне нужен пример... я же сказал что я ещё ни разу не работал с БД через делфи.
PM MAIL ICQ   Вверх
Александра
Дата 20.2.2005, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.2.2005
Где: Москва

Репутация: нет
Всего: 12



простой пример:

ишешь вкладку ADO, там берешь ADOConnection и ADOQuery, далее берешь DataSource c DataAccess и DBGrid с DataControls... все это смешиваешь на форме )) Далее...

ADOConnection1.ConnectionString - жми пимпочку [...] появится окошко Source of Connection, выбирай Use Connection String и жми Build. Появится окошко "Свойства связи с данными", выбирай движок баз Access, т.е. MS Jet, далее переходи на вторую вкладку и выбирай свою базу. Жми ОК.

AdoQuery1.Conncetion -> ADOConnection1

AdoQuery1.Sql = 'SELECT * FROM <какая-нить твоя табличка>'

DataSource1.DataSet -> AdoQuery1

DBGrid1.DataSource -> DataSource1

ADOConnection1.Connected = true

AdoQuery1.Active = true

все, блины готовы, наслаждайся. в DBGrid твоя "результаты запроса"


имхо, очень простое обьяснение.
--------------------
PM   Вверх
Vit
Дата 21.2.2005, 05:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207





--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Zero
Дата 22.2.2005, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Вообщем спасибо, пока разбирается!!! Но если чё потом ещё задам.
PM MAIL ICQ   Вверх
Zero
Дата 27.2.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Vit а как связатся с *.mdb-файлом, по указанному пути, а то в факу в примере стоит лишь какой-то стандартный файл с таблицей. И надо связать БД с компонентом table, т.е. ту БД которую сам создам через MS Access.
PM MAIL ICQ   Вверх
Vit
Дата 28.2.2005, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



В FAQ приер работы через BDE... Тебе же лучше использовать ADO - суть такая же, просто замени компонент Table на ADOTable или Query на ADOQuery. Там у них есть свойство ConnectionString - кликнешь на него откроется диалог, в нём тебе нужен провайдер Jet4 - выберешт его, дальше выберешь для него твой mdb файл. Скажешь Ok. Полученную строку подключения - внимательно посмотри, ты увидишь как туда вставить любое имя в run-time


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Zero
Дата 1.3.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Спасибо Vit, всё понял.
PM MAIL ICQ   Вверх
Zero
Дата 3.3.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Vit @ 28.2.2005, 01:06)
Полученную строку подключения - внимательно посмотри, ты увидишь как туда вставить любое имя в run-time

Привет Vit, помоги разобрать ещё проблему, вообщем я знаю ошибку, но никак не могу её устранить, т.е. ты сам про неё уже имел ввиду, но как я понял, то офицально должно быть так:
Код

procedure TForm1.FormShow(Sender: TObject);
begin
 ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+extractfilepath(paramstr(0))+'Ôîðóì.mdb;Persist Security Info=False'
end;

Тут какбы автоматически должен устанавливатся путь к моему *.mdb файлу, но почему-то всё равно выдаётся ошибка, если я вдруг скопирую свой рабочий каталог в другое место и запущу екзешник.
Заранее благодарен!!!
PM MAIL ICQ   Вверх
Vit
Дата 4.3.2005, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Скорее всего уже законнекчено... во первы зачем это делать на onshow, попробуй на onActivate, во вторых - поставь ADOConnection компонент, кверю подключи к нему, а Connection stgring у ADOConnection меняй на событие BeforeConnect


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Bes
Дата 4.3.2005, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Короче, не в коде пиши подключение, а в конструкторе компонента в процессе проектирования приложения.
PM MAIL   Вверх
DimW
Дата 4.3.2005, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Вот рабочий код:

Код

procedure TForm1.FormCreate(Sender: TObject);
const
ConnStr = 'Provider=%s;Data Provider=%s;Data Source=%s';
begin
if not fileexists( 'db\data.mdb' )then
       begin
       messagedlg('Источник данных "DB\Data.mdb"- не найден!',mterror,[mbok],0);
       exit;
       end;

form1.ADOConnection1.Connected:=false;
form1.ADOConnection1.Connected;
form1.ADOConnection1.ConnectionString := Format(ConnStr, ['MSDataShape.1',
'Microsoft.Jet.OLEDB.4.0','DB\data.mdb']);
end;

PM MAIL ICQ   Вверх
Zero
Дата 4.3.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



После установки adoconnection всё неработает, т.е. другие все окна где есть и запросы и таблицы тоже не отображают содержимое, начала появлятся приглашение ко вводу авторизации в БД, отменить его почемуто стало нельзя, вообщем всё стало неработать или не так как надо. smile
Может есть какой-нибудь другой способ, автоматичесого определения пути к БД, а то так не получается никак.
Цитата(Vit @ 4.3.2005, 07:21)
зачем это делать на onshow, попробуй на onActivate

На что не делал, всё равно не идёт
Цитата(DimW @ 4.3.2005, 09:00)
Вот рабочий код:

У кого-то может и рабочий, а у меня не работает. smile
PM MAIL ICQ   Вверх
Bes
Дата 4.3.2005, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Балин! Возьми компонент АДОКоннектион и помести его на форму. Потом щелкни по нему (компоненту) дважды появится диалог подключения к базе. Пока на нажатие тестконнекттион она тебе не скажет ОК дальше не суйся - значит подключения нет. Добейся подключения через АДОКоннекшн а дальше подключайся к нему и все будет работать. По поводу авторизацииЖ поставь св-во логипромт у АДОКоннектион в фэлс и все.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.