Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Переопредение стандартных компонентов [D6, MSSQL]


_sulent ©   (2004-02-25 07:16:00) 

Всем здрасти!
Встал такой вопрос, необходимо переопределить класс TQuery в TADOQuery. Как это можно сделать. Вопрос стал так сильно из-за того, что необходимо переписывать большое количество исходного кода. Фактически нужно переопределить класс и метод ParamByName. Ранее программа работала на BDE, а теперь ее необходимо перевести на SQL Server.
Что можете посоветовать бедолагам?


Sandman25+1   (2004-02-25 12:24:00) [1]

Значит нужно function ParamByName(const Value: string):   TMyParameter;
И соответственно написать TMyParameter наследником TParameter с нужными свойствами.


_sulent   (2004-02-25 12:15:00) [2]

да, все это хорошо и даже работает, через это все проходили, проблема встала в том, что в АДО он рисует приблизительно так:
ADOQuery.Parameters.ParamByName('code').value := code;
а на БДЕ это все пишется так: Query.ParamByName('code').asInteger := code;
допустим изменим мы это все, а как же быть с типами данных, ведь в АДО они прописаны как Variant, а в БДЕ как типы данных!


Reindeer Moss Eater   (2004-02-25 08:50:00) [3]

Find & Replace в *.pas и *.dfm


ЮЮ   (2004-02-25 08:22:00) [4]

Хотя, чтобы и Design-е со свои TQuery, очевидно надо будет его зарегистрировать в палитре компонентов.


ЮЮ   (2004-02-25 08:17:00) [5]

Прктически всё что надо сам и написал:

в Uses своих модулей вместо DBTables написать UToADO (cм.ниже, или создать свой юнит DBTables и положить "поближе" к проекту), а в нём всего-то:

unit UToADO;

interface

uses ADODB;

type
 TQuery = class (TADOQuery)
 public
   function ParamByName(const Value: string):  TParameter;
 end;

implementation

{ TQuery }

function TQuery.ParamByName(const Value: string):  TParameter;
begin
 Result := Parameters.ParamByName(Value);
end;

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо