![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. У меня такой вопрос. Программа использует компоненты ADO для работы с базой Access. Хочу добавить возможность программы работать с базой MySQL. Для доступа к базе хочу использовать компоненты DAC. Чтобы это реализовать, мне придется писать точно такой-же код, только с компонентами DAC или можно как-то иначе. Ну например как то так
Код:
ADO := TADOQuery.Create;
MySQL := TMySQLQuery.Create;
obj :TObject;
Если испльзуется Access то obj := ADO
иначе obj := MySQL;Как добраться до свойств и методов MySQL и ADO через obj и использовать в коде только этот obj в любом из 2-х случаев? Как правильно поступить? Последний раз редактировалось M.A.D.M.A.N., 15.03.2013 в 16:09. |
|
#2
|
||||
|
||||
|
Сразу предупреждаю - с 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
|
|||
|
|||
|
Спасибо за ответ. Работает. Возможно смогу как-то приспособить.
|
|
#4
|
|||
|
|||
|
Вроде что-то получилось. Но не совсем нравится. Никак не получается вызвать метод ExecSQL, использую Open. У кого есть время и опыт, посмотрите, плиз.
|