Конференция "Базы" » Ehlib filter [MSSQL, Delphi2009]
 
  • adigozelov © (15.12.10 15:10) [0]
    Zdrasduviyti moy vapros prastoy ya xacu zdelit filter v Ehlib.
    Vapros takoy kak filtiravat AdoDataset1+Dbgrideh1 umina ni palucayitsa.
  • Ega23 © (15.12.10 15:20) [1]
    В DBGridEh была фича, что имена полей сравнивались case sensetive.
    Надо было
    if UpperCase(FieldName) = 'TTT' then ...



    Хотя это к отрисовке относилось, что там с фильтрацией - не в курсе.
  • adigozelov © (15.12.10 15:29) [2]
    Ya xaroso ni panimal mojici napisat po padrobni
  • sniknik © (15.12.10 15:32) [3]
    > AdoDataset1
    ?
    он прекрасно сам умеет фильтровать полученные данные.
    а для собственно получения фильтры не нужны, нужны запросы с "ограничителями", они и более функциональны и в основном быстрее работают (например если ограничивать по индексированному полю).
  • adigozelov © (15.12.10 15:37) [4]
    Mojiti napisat padrobna.Patamusta ya deluyu i umina ni palucayitsa.
    Niznayu pacumu!
    Tam v help Ehlib napisina shto dalijna bit DataSetDriverEh1 i MemTableEh1.
    No ya deluyu eta no ni palucayitsa.
  • Ega23 © (15.12.10 15:42) [5]

    > No ya deluyu eta no ni palucayitsa.


    Показывай, что не получается.
  • adigozelov © (15.12.10 15:56) [6]
    DataSetDriverEh1.ProviderDataSet:=ADODataSet1;

    MemTableEh1.DataDriver:=DataSetDriverEh1;

    DataSource1.DataSet:=MemTableEh1;

    DBGridEh1.DataSource:=DataSource1;

    DBGridEh1.STFilter.Visible:=true;
    DBGridEh1.STFilter.Local:=true;

    ADODataSet1.Open;
    MemTableEh1.Open;

    ADODataSet1.Filtered:=true;
    MemTableEh1.Filtered:=true;

    ya deliyu tak eta dalijna bit no ni bivayit shtota ni xvatayit
  • Ega23 © (15.12.10 15:59) [7]

    > ya deliyu tak eta dalijna bit no ni bivayit shtota ni xvatayit


    Неправильно делаешь.
    Возьми один DBGridEh, один DataSource, один ADODataSet
    DataSource1.DataSet := ADODataSet1;
    DBGridEh1.DataSource := DataSource1;


    убери MemTableEh вообще, Убери DataSetDriverEh1

    Попробуй на такой простой связке.
  • adigozelov © (15.12.10 16:02) [8]
    Toje ni palucayitsa ya pervit raz tak delil no ni palucalsa.a sprafka ehlib qavarit sto nada DataSetDriverEh1 patamusta ehlib ni mojit samastoyatelno delit filter.
    A ti spasiba Ega23 patamusta xocish pamaqat mina
  • Ega23 © (15.12.10 16:30) [9]

    > Toje ni palucayitsa ya pervit raz tak delil no ni palucalsa


    Ещё раз:
    1. заведи новый проект.
    2. положи на форму ADOConnection, настрой соединение, выстави ADOConnection.Connected := True (чтобы убедиться, что есть соединение).
    2. Положи на форму ADODataSet, задай ему какой-нибудь простой запрос, например,
    Select 1

    задай Connection, выстави Active := True
    3. положи на форму DataSource, в качестве DataSet пропиши ему ADODataSet
    4. Положи на форму DBGridEh, укажи ему DataSource.
    Убедись, что ты видишь в DBGridEh одну запись со значением 1.

    Сделай для начала это.
  • PEAKTOP © (15.12.10 17:06) [10]
    > Ega23 ©   (15.12.10 16:30) [9]

    Человек же тебе явно сказал, что с фильтрами в DBGridEh мучается.
    А они, начиная с версии библиотеки 5.0, работают исключительно с тем TDataSet, которые поддерживает интерфейс IMemTableEh.

    В комплекте поставки библиотеки идут адаптеры для популярных библиотек (IBX, ADO, FIBPlus), а сам TDBGridEh фильтрует исключительно TMemTableEh, ибо оно в памяти. Можно конечно свой DataSet написать, который будет поддерживать IMemTableEh, но это БДСМ еще тот.

    Если же увязать DBGridEh напрямую с набором данных, как ты говоришь, то фильтра, группировка по колонке, выбор "галочек" в фильтре "a-la M$Excel" - обломится. Такова, увы, политика партии. Подозреваю, что она корнями из-за вертикальной совместимости со старыми версиями.
  • Ega23 © (15.12.10 17:11) [11]

    > А они, начиная с версии библиотеки 5.0


    А, тогда прошу прощения. Я EhLib только версии 3.6 использовал (да и то 3 года назад).
  • adigozelov © (15.12.10 17:34) [12]
    Problema zdez umina ehlib 5.02.i zdeluyu kak zkazal bise.
    Pajalista pamaqiti mina yesli mojna mayamusta eta mina nujna.
    shto mina zdelit com problema?
  • Ega23 © (15.12.10 17:45) [13]

    >  umina ehlib 5.02


    Извини, но лично я в данном вопросе помочь не могу.
    Как сказал

    > PEAKTOP ©   (15.12.10 17:06) [10]

    >  начиная с версии библиотеки 5.0, работают исключительно
    > с тем TDataSet, которые поддерживает интерфейс IMemTableEh.
  • sniknik © (15.12.10 17:46) [14]
    > а сам TDBGridEh фильтрует исключительно TMemTableEh, ибо оно в памяти.
    ADODataSet тоже в памяти... и что не умеет?

    > MemTableEh
    это что то типа клиентского датасета? ну судя по провайдеру данных...
    тогда имеет смысл до собственно фильтрации, еще в дизайн тайм проверить связку, данные там есть? (в гриде должно отразится)
    > ADODataSet1.Open;

    > ADODataSet1.Filtered:=true;
    > MemTableEh1.Filtered:=true;
    вот это явно лишнее, одно не используется, а второе еще и вредное (с ехгридом конфликтов не будет? пользуется тем же самым...)
  • Kennedy (23.06.13 23:17) [15]
    в Ehlib фильтре есть такая проблема: фильтрует только по оному столбцу, а потом сообщает что аргументы имеют какой та ни такой ни сякой тип... в чем проблема?
  • sniknik © (24.06.13 09:40) [16]
    > в чем проблема?
    типа такого сякого нет. ваш К.О.
 
Конференция "Базы" » Ehlib filter [MSSQL, Delphi2009]
Есть новые Нет новых   [134430   +2][b:0][p:0.001]