Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2013, 15:36
EPaul EPaul вне форума
Прохожий
 
Регистрация: 16.01.2011
Адрес: Набережные Челны
Сообщения: 12
Репутация: 159
По умолчанию Как определить объект

Здравствуйте. У меня такой вопрос. Программа использует компоненты ADO для работы с базой Access. Хочу добавить возможность программы работать с базой MySQL. Для доступа к базе хочу использовать компоненты DAC. Чтобы это реализовать, мне придется писать точно такой-же код, только с компонентами DAC или можно как-то иначе. Ну например как то так
Код:
      ADO := TADOQuery.Create;
   MySQL := TMySQLQuery.Create;
        obj :TObject; 
Если испльзуется Access то obj := ADO
иначе     obj := MySQL;
MAD: Пользуемся тегами!
Как добраться до свойств и методов MySQL и ADO через obj и использовать в коде только этот obj в любом из 2-х случаев?
Как правильно поступить?

Последний раз редактировалось M.A.D.M.A.N., 15.03.2013 в 16:09.
Ответить с цитированием
  #2  
Старый 16.03.2013, 02:39
Аватар для BBBCat
BBBCat BBBCat вне форума
Новичок
 
Регистрация: 10.03.2013
Сообщения: 73
Репутация: 10
По умолчанию

Сразу предупреждаю - с TDataSet в программах такого не делал, но с наследниками TFiler работает нормально. Нижеприведённый код тоже работает.
Код:
type
  TDataSetClass = class of TDataSet;
  
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
    DSC: TDataSetClass;
    DS: TDataSet;
  public
    { Public declarations }
  end; // TForm1 = class(TForm)

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  DSC := TSQLQuery;
end; // procedure TForm1.Button1Click(Sender: TObject)

procedure TForm1.Button2Click(Sender: TObject);
begin
  DSC := TADOQuery;
end; // procedure TForm1.Button2Click(Sender: TObject)

procedure TForm1.Button3Click(Sender: TObject);
begin
  DS := DSC.Create(Form1);
  ShowMessage(DS.ClassName);
end; // procedure TForm1.Button3Click(Sender: TObject)
Ответить с цитированием
  #3  
Старый 16.03.2013, 09:23
EPaul EPaul вне форума
Прохожий
 
Регистрация: 16.01.2011
Адрес: Набережные Челны
Сообщения: 12
Репутация: 159
По умолчанию

Спасибо за ответ. Работает. Возможно смогу как-то приспособить.
Ответить с цитированием
  #4  
Старый 16.03.2013, 15:06
EPaul EPaul вне форума
Прохожий
 
Регистрация: 16.01.2011
Адрес: Набережные Челны
Сообщения: 12
Репутация: 159
По умолчанию

Вроде что-то получилось. Но не совсем нравится. Никак не получается вызвать метод ExecSQL, использую Open. У кого есть время и опыт, посмотрите, плиз.
Вложения
Тип файла: rar MultiDB.rar (732.1 Кбайт, 8 просмотров)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:59.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter