Конференция "Начинающим" » Findfirst() в Делфи10 [MSSQL]
 
  • Levan (28.09.10 22:25) [0]
    Привет мастерам
    Перевожу некоторие разработки из делфи7 в делфи10
    Почему-то не работает
    adoquery.filtered:=false;
    adoquery.filter:='Name='+''''+'лев*'+''''
    adoquery.findfirst();
    ne rabotaet asterisk *
    (не находит записы, которые начинаются на 'лев')
    что не так в делфи10 ?
  • Anatoly Podgoretsky © (28.09.10 23:07) [1]
    > Levan  (28.09.2010 22:25:00)  [0]

    А процент?
  • Медвежонок Пятачок © (28.09.10 23:19) [2]
    а какая связь между файндфёрст и свойством филтер?
    к тому же тогда когда филтеред стоит в фалсе?
  • Palladin © (29.09.10 07:48) [3]

    > Медвежонок Пятачок ©   (28.09.10 23:19) [2]

    function FindFirst: Boolean;

    Description

    This function returns False, indicating that the active record was not successfully changed. Descendant classes override FindFirst to make the first record active, honoring any filters that are in effect. In descendant classes, FindFirst returns True if the active record is successfully changed.
  • Медвежонок Пятачок © (29.09.10 09:07) [4]
    так филтеред-то все равно в фалсе.
    я понимаю, если бы в отфильтрованном не искало.
    но оно же не ищет во всем датасете.
    отсюда и вопрос какая связь между каким-то выражением фильтра и файндферстом
  • Levan (29.09.10 09:15) [5]
    >Anatoly Podgoretsky ©   (28.09.10 23:07) [1]
    >> Levan  (28.09.2010 22:25:00)  [0]

    >А процент
    Процент тоже не работает

    >Медвежонок Пятачок ©   (28.09.10 23:19) [2]
    >а какая связь между файндфёрст и свойством филтер?
    >к тому же тогда когда филтеред стоит в фалсе?

    Когда установлено свойство филтр и филтеред=труе, в гриде остаются толко удовлетворяющие условию фильтрации записи

    Когда установлено свойство филтр и филтеред=фалсе, в гриде выдни все  записи и финдфирст,финднехт и т.п. исползуются для перемещения по записям, удовлетворяющим  условию фильтрации записи

    во всяком случае, так было в делфи7
    а в делфи 10 это не работает
    в этом и суть моего вопроса

    вообще-то проблема решена (Сегодня утром подсказали колеги по работе):
    вместо
    adoquery.filter:='Name='+''''+'лев*'+''''   (синтаксис делфи в делфи7)
    надо писать
    adoquery.filter:='Name  like ='+''''+'лев%'+''''   (синтаксис SQL server в Делфи10)
    (как подсказал Anatoly Podgoretsky )
    всем Спасибо
  • Anatoly Podgoretsky © (29.09.10 11:38) [6]
    > Levan  (29.09.2010 09:15:05)  [5]

    Тогда попробуй установить Filtered := True;
  • DiamondShark © (29.09.10 13:39) [7]

    > во всяком случае, так было в делфи7а в делфи 10 это не работает

    В делфи7 был баг. Потом его исправили.
  • Виталий Панасенко (29.09.10 15:57) [8]
    вообще-то стандарт надо читать.. * - это от лукавого.. а вот % - это СТАНДАРТ! и Д тут не при чем!
  • Anatoly Podgoretsky © (29.09.10 16:06) [9]
    > Виталий Панасенко  (29.09.2010 15:57:08)  [8]

    Для фильтров наоборот, % от лукавого, в последнее время.
  • Виталий Панасенко (29.09.10 16:23) [10]
    да я не о фильтрАх.. а о сиквеле
  • Виталий Панасенко (29.09.10 16:24) [11]
    но прогнал, согласен.. тут базар о фильтрАх
 
Конференция "Начинающим" » Findfirst() в Делфи10 [MSSQL]
Есть новые Нет новых   [134433   +21][b:0][p:0.001]