![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свой TQuery [D6, MSSQL]
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?