Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь с БД 
:(
    Опции темы
Falex
Дата 25.8.2006, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.Пишу класс по работе с БД.У меня вопросик:как связать класс с БД (т.е. подконнектиться).
Код

unit BD;

interface
uses Contnrs;
type
  TMyBD=class(TObjectList)
  private
    fUserName:string;//поле Имя Пользователя
    fBDName:string;  //Имя БД
    fPwd:string;     //Пароль
  public
    constructor Create;  //создаем класс
    destructor Destroy;override; //уничтожаем класс
    procedure Connect; //процедура для связи класса с БД
end;
implementation

{ MyBD }

procedure TMyBD.Connect;
begin
  //думаю,что сначала должна быть аутентификация.
end;

constructor TMyBD.Create;
begin
  inherited Create(true);
end;

destructor TMyBD.Destroy;
begin
  inherited;
end;

end.

PM MAIL   Вверх
arigatai
Дата 25.8.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



хм... чувствую, что-то очень уж "жёсткий" класс получится!  smile 
Позвольте поинтересоваться, какова цель такого мероприятия? Как подобный класс будет использоваться?

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Ну, например так:
Код

...
private
Fcnn : TADOConnection;
...
constructor TMyBD.Create(AOwner : TComponent);
begin
Fcnn:=TADOConnection.Create(self);
inherited ;
end;

procedure TMyBD.Connect;
begin
//присвоить строку подключения и пр. параметры
try
Fcnn.Open;
except
//не удалось подключиться
end;
end;


PM MAIL   Вверх
Falex
Дата 26.8.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата
//присвоить строку подключения и пр. параметры

Можно здесь поподробнее smile
PM MAIL   Вверх
Falex
Дата 26.8.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот
Код

  //...
  fPwd:string;     //password
  tADO:TADOConnection;
  //...
  tADO.ConnectionString:='Data Source='+fBDName;
  tADO.Connected:=true;
  //...


Что еще преписать,чтобы связать с БД.
PM MAIL   Вверх
Savek
Дата 26.8.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Это зависит от типа базы, м-ма доступа и т.п.
Вот пример строки подключения к базе Access через Jet
Код


tADO.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\MyBase.mdb;Persist Security Info=False;Jet OLEDB:Database Password=MyPassword';



А для начала кинь на форму компонент TADOConnection, нажми на кнопку (...) на свойстве ConnectionString  и построй строку при помощи редактора, а потом посмотри как она выглядит
PM MAIL   Вверх
Falex
Дата 26.8.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1)У меня таких БД может быть сколь угодно:я их буду к проекту как бы подключать.
Буду юзать Paradox,а тип связи...скорее всего BDE.
2)Так я подключаюсь к конкретной БД.При этом пользователь вводит Имя и Пароль.А вдруг эти поле (имя и пароль) не совпадут
с параметрами для БД.Как мне проверить,что вводимые пользователем данные являются правильными.После этого уже можно и подключаться к конкретной БД.
PM MAIL   Вверх
Savek
Дата 26.8.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



с Парадоксом и БДЕ давно уже не работаю, по моему личному мнению эти термины давно устарели и кроме геморроя ждать от них нечего...
Если все-таки очень надо почитай где нибудь про динамическое создание Алиасов, исп-е компонента DataBase и т.д.  
PM MAIL   Вверх
Falex
Дата 26.8.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А чем посоветуешь пользоваться?
PM MAIL   Вверх
Savek
Дата 26.8.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

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



Все зависит от конкретной задачи (объем данных, кол-во пользователей, локальная/сетевая, ... продолжение следует)

Если учесть что ты планировал Парадокс/БДЕ, то "дешевле" всего освоить Аксес/Адо. 
1) при установленом в системе микрософт офисе у тебя уже есть база и механизм доступа к ней.
2) АДО стандартные компоненты в среде Делфи
3) программу легко распространять на других машинах

Но, наверное, сколько программистов столько и мнений.... 
PM MAIL   Вверх
Falex
Дата 26.8.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да мне для одного пользователя:все будет работать на одной машине!
Ну оформлю я ConnectionString.А дальше-то что?
PM MAIL   Вверх
DDX
Дата 27.8.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



литература нынче не в моде?  smile 
дальше кидаешь что тебе нужно - таблицы, запросы, хранимки, устанавливаешь их св-во connection:=твой adoconnection
дальше делаешь connection.Active:=True и работаешь
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
Falex
Дата 29.8.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хе.Все это замечательно,но я ж программно делаю.Это ж класс будет.А проблема с методом Connect,т.е. подключения БД к проекту.И таких объектов (в данном случае типа TMyBD) может быть несколько!
PM MAIL   Вверх
SergeBS
Дата 30.8.2006, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Falex, 
Вызов диалога подключения к ЛЮБОЙ БД в ADO - 1 строчка кода. Смотри демку в Делфи.
Проверка и откат - еще 5-6 строк. Зачем еще какой-то класс? Для лишней мороки?

И вообще - зачем этакая "единая формула всего"? Рекомендую попробовать вначале реальную простенькую задачу - куча вопросов отпадет, придумывать бантики уже не понадобится. 


Это сообщение отредактировал(а) SergeBS - 30.8.2006, 09:59
PM MAIL   Вверх
DDX
Дата 30.8.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Falex @  29.8.2006,  18:37 Найти цитируемый пост)
Все это замечательно,но я ж программно делаю

я тебя удивлю: в большинстве случае мы все делаем ЭТО (ну, всмысле, коннектимся ;) ) программно.
через adoconnection.connectionString:="" и adoconnection.Active:=True;

SergeBS прав, ты чем-то не тем занимаешься. Освой для начала ADO и вопросов не будет
--------------------
Учиться, учитьcя и ещё раз учиться  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0534 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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