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