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

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

Свой TQuery [D6, MSSQL]


Страницы:   1 2

avsam ©   (2005-09-26 19:24:00) 

Пишу свой компонент TMyQuery. Мне нужно, чтоб он в зависимости от настроек, внутри создавал или TAdoQuery или TZQuery и имел все свойства обычного TQuery.
От какого предка лучше писать такой компонент.
На что нужно обратить внимание при работе в связке с TDataSource?


sniknik   (2005-09-27 16:28:00) [21]

кстати, даже стандарты бывают разные, один <> другому.

----------------------------------
не пытайтесь обьять необьятное.


sniknik   (2005-09-27 16:26:00) [22]

> Каким способом можно это решить?
ADO + нужный OLEDB/ODBC провайдер. все.
без использования особенностей языка конкретного сервера а только стандарта даже запросы будут в основном совпадать. а не будут то
> P.S. Разница в диалектах рещается путем преобразования SQL-команд "на лету".


Sergey13   (2005-09-27 16:23:00) [23]

2[5] avsam   (27.09.05 14:32)
>P.S. Разница в диалектах рещается путем преобразования SQL-команд "на лету".
Павлины говоришь? (с) т.Сухов
Ну-ну.
Как ты преобразуешь оракловый CONNECT BY например? Или Select From Select?


avsam   (2005-09-27 16:18:00) [24]


> имхо бредовая затея


Отчего?
Задача такая: есть софт, который работает с Ораклом. Необходимо для него добавить поддержку MSSQL, MySQL и еще некоторых баз данных.
Каким способом можно это решить?
Для клиентов, которые уже работают с системой все должно без изменений.


sniknik   (2005-09-27 16:09:00) [25]

имхо бредовая затея.

> То есть, работал в связке с TDataSource  и т.д.
ну это можно, пример полноценного датасета (работает с DataSource) для текстового файла. сдесь.
(x):\Program Files\Borland\Delphi(x)\Demos\Db\TextData


avsam   (2005-09-27 15:49:00) [26]

Приведу пример.

type
 TMyQuery = class(TDataSet)
.......................
constructor TMyQuery.Create(AOwner: TComponent);
begin
 inherited;
 case RegistryOraSetup do
    0: fOraQuery := TOraQuery.Create(Self);
    1: fAdoQuery := TAdoQuery.Create(Self);
    2: .........................
 end;
end;

Дальше хочется, чтоб TMyQuery возвращал полностью набор данных, взятых с одного из подкомпонентов.
То есть, работал в связке с TDataSource  и т.д.


avsam   (2005-09-27 14:32:00) [27]

Я хочу TMyQuery, которая может соединяться с разными базами данных.
TZQuery я использую для MySQL.
TOraQuery - для оракла.
TAdoQuery - для MSSQL.
Возможно добавится еще что-то.
Каким образом можно обернуть все эти компоненты в одну TMyQuery?

P.S. Разница в диалектах рещается путем преобразования SQL-команд "на лету".


sniknik   (2005-09-27 13:32:00) [28]

ZeosLib для MSSQL делает "финт ушами" подключается через OLEDB провайдера MSSQL (хотя как как сышал это копоненты "прямого" доступа), т.е. также как ADO.
в итоге для него будет TZQuery будет = TAdoQuery (один из режимов), и получается делать ничего не надо... бери ADO(DataSet лучше) и успокойся на этом.
(зачем обьеденять если это одно и тоже?)

подробности как оно работает см. на сайте www.zeoslib.net когда он "встанет", пока "лежит" -
HOMEPAGE HACKED AND TEMPORARILY DOWN ------ The main ZeosLib product is a set of native datasets and database components for MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle, DB/2 for Borland compilers such as Delphi, C++ Builder and Kyli

   * Development Status: 5 - Production/Stable
   * Intended Audience: Developers, System Administrators
   * License: GNU General Public License (GPL), GNU Library or Lesser General Public License (LGPL)
   * Operating System: All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNIX-like OSes), Linux
   * Programming Language: C++, Delphi/Kylix
   * Topic: Database Engines/Servers, Front-Ends
   * Translations: English
   * User Interface: Win32 (MS Windows), X Window System (X11)

http://sourceforge.net/projects/zeoslib/


ANB   (2005-09-27 12:48:00) [29]


> avsam   (27.09.05 12:46) [2]
- а зачем ? Наличие TQuery в проекте потребует BDE. При каких условиях собираешься переключать ? Плюс разные движки => разные диалекты SQL.


avsam   (2005-09-27 12:46:00) [30]

Query от ZeosLib. В принципе это не играет роли.
Задача состоит в том, чтоб создать полноценный TMyQuery, но доступ к базам данных внутри него будут осуществлять другие TQuery, созданные внутри в рантайме.


sniknik   (2005-09-26 20:18:00) [31]

что такое TZQuery?


Страницы:   1 2

Наверх

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