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

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

Ehlib для EhlibIBX


Mery ©   (2007-09-20 07:43:00) 

Может, кто-то уже решил проблему, с которой я столкнулась. При использовании указанных компонентов не сортируются и не фильтруются данные в DBGridEh для IBX. Как поправить код EhlibIBX?


Вася Правильный   (2007-09-21 11:41:00) [1]


> Но теперь бы ещё автоматическую фильтрацию...

в IBX фильтрация не реализована, только через OnFilterRecord


zdm77   (2007-09-21 10:40:00) [2]

TIBTAble is not SQL based dataset
Вот если TTable откликнулась на SQL запрос.....вот это было-бы чудо :)


zdm77   (2007-09-21 10:39:00) [3]

а нафига в обще использовать Table? чем Qury-то не устраивает? та же Table но правда с ТАКИМИ запросами :)


Mery   (2007-09-21 09:33:00) [4]

И ещё. Сортировка Работает на IBDataSet. А с IBTable дает ошибку:TIBTAble is not SQL based dataset. Т.е использовать TIBTABLE нельзя?


Mery   (2007-09-21 09:15:00) [5]

Большое спасибо Slym.
теперь как-то через раз но срабатывает.
В результате код EhLIB (это версия 3.5)имеет вид:

unit EhLibIBX;
{$I EhLib.Inc}
interface

uses
 DbUtilsEh, IBQuery, IBCustomDataSet, Db, IBTable;

implementation

function IBDataSetDriverName(DataSet: TDataSet): String;
begin
 Result := 'INTRBASE';
end;

function DateValueToIBSQLStringProc(DataSet: TDataSet; Value: Variant): String;
begin
 Result := DateValueToDataBaseSQLString(IBDataSetDriverName(DataSet), Value)
end;

type

 TIBSQLDatasetFeaturesEh = class(TSQLDatasetFeaturesEh)
 public
   constructor Create; override;
 end;

 TIBSelectSQLDatasetFeaturesEh = class(TSQLDatasetFeaturesEh)
 public
   constructor Create; override;
 end;

//implementation

{ TIBSQLDatasetFeaturesEh }

constructor TIBSQLDatasetFeaturesEh.Create;
begin
 inherited Create;
 DateValueToSQLString := DateValueToIBSQLStringProc;
 SQLPropName := 'SQL';
end;

{ TIBSelectSQLDatasetFeaturesEh }

constructor TIBSelectSQLDatasetFeaturesEh.Create;
begin
 inherited Create;
 DateValueToSQLString := DateValueToIBSQLStringProc;
 SQLPropName := 'SelectSQL';
end;

initialization

 RegisterDatasetFeaturesEh(TIBSQLDatasetFeaturesEh, TIBQuery);
 RegisterDatasetFeaturesEh(TIBSelectSQLDatasetFeaturesEh, TIBDataSet);
 RegisterDatasetFeaturesEh(TIBSelectSQLDatasetFeaturesEh, TIBTable);
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TIBDataSet)).SortUsingFi eldName:=true;
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TIBQuery)).SortUsingFiel dName:=true;
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TIBTable)).SortUsingFiel dName:=true;
 end.

Но теперь бы ещё автоматическую фильтрацию...
Может, кто-то уже и это настроил... Или у кого то есть более совершенная версия EhlibIBX....


Slym   (2007-09-21 08:54:00) [6]

мой код пробовала?
по умолчанию TSQLDatasetFeaturesEh использует номер столбца для манипуляций, а в SQL нужно имя
строки

initialization
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TIBDataSet)).SortUsingFi eldName:=true;
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TIBQuery)).SortUsingFiel dName:=true;

включает распознавание потей по имени


Mery   (2007-09-21 07:13:00) [7]

>zzzz   (20.09.07 13:56) [7]
>Надо скопировать файл EhLibADO.Pas в папку с проектом и подключить его >к проекту.

А причём EhLibADO.Pas?
EhLibIBX.Pas я подключила. Но в нём самом ошибка: ни сортировка, ни фильтрация не идёт. В том и вопрос:как подкорректировать EhLibIBX? Может, кто-то это уже сделал.


zzzz   (2007-09-20 13:56:00) [8]

Надо скопировать файл EhLibADO.Pas в папку с проектом и подключить его к проекту.


Slym   (2007-09-20 13:45:00) [9]

чтото типа
TSQLDatasetFeaturesEh(GetDatasetFeaturesForDataSetClass(TADOQuery)).SortUsingFie ldName:=true;

TADOQuery - заменить на нужное


Slym   (2007-09-20 13:45:00) [10]

Slym ©   (20.09.07 13:45) [5]
EhlibIBX

и обязательно uses EhlibIBX;


clickmaker   (2007-09-20 11:41:00) [11]

смотри в сторону \EhLib\DataService\EhLibIBX.pas


Sergey13   (2007-09-20 11:37:00) [12]

> [0] Mery   (20.09.07 07:43)
> Как поправить код EhlibIBX?

Может достаточно поправить свой код использования компонентов? Справку по ним почитать?


Mery   (2007-09-20 11:30:00) [13]

Это понятно. Вопрос мой конкретнее.


MsGuns   (2007-09-20 08:14:00) [14]

Прежде всего не использовать компоненты бездумно


Наверх

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