|
|
Регистрация | << Правила форума >> | 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. У кого есть время и опыт, посмотрите, плиз.
|