Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.05.17;
Скачать: CL | DM;

Вниз

Фильтрация в базе   Найти похожие ветки 

 
anton shestakov   (2009-01-26 16:55) [0]

подскажите как произвести фильтрацию в бд не по первым буквам, а по последним, тоесть если мне надо найти фамилию по последним буквам! или даже по любым буквам! или при помощи фильтрации такое не возможно?
Table1.FilterOptions:=[foCaseInsensitive];
Table1.Filter:="name = "+""""+edit1.text+"*"+"""";
Table1.Filtered:=true;


 
MsGuns ©   (2009-01-26 18:44) [1]

like


 
anton shestakov   (2009-01-26 19:44) [2]

и куда like вписать?


 
Anatoly Podgoretsky ©   (2009-01-26 19:45) [3]

> anton shestakov  (26.01.2009 16:55:00)  [0]

Нафига тогда не используешь SQL


 
anton shestakov   (2009-01-26 19:48) [4]

Table1.FilterOptions:=[foCaseInsensitive];
Table1.Filter:="name like "+""""+edit1.text+"*"+"""";
Table1.Filtered:=true;
так не работает


 
sniknik ©   (2009-01-26 22:45) [5]

> так не работает
не все поддерживают, а вообще то работает... ну это также как сказать на машину, что она не работает хотя она ездит и ремонта не требует, а нужен самолет чтобы лететь. это чтобы понятнее было.


 
Германн ©   (2009-01-27 01:57) [6]


> ну это также как сказать на машину, что она не работает
> хотя она ездит и ремонта не требует

Это про Парадокс?
:)


 
sniknik ©   (2009-01-27 08:08) [7]

> Это про Парадокс?
> :)
нет это вообще про движок а не формат файла, ведь это он фильтрацию делает (если она конечно вот в таком виде, а не самостоятельно реализована).


 
Виталий Панасенко   (2009-01-27 14:12) [8]

Используй OnFilterRecord


 
anton shestakov   (2009-01-27 16:05) [9]

После компиляции проекта и ввода в edite любой буквы, хоть первой, программа вылетает и пишется Priject 1.exe raised exception class EDBEngine Error with message "Operation not application"


 
Виталий Панасенко   (2009-01-27 16:44) [10]


> anton shestakov   (27.01.09 16:05) [9]


> Виталий Панасенко   (27.01.09 14:12) [8]
>
> Используй OnFilterRecord


 
anton shestakov   (2009-01-28 16:19) [11]

а что в OnFilterRecord тогда писать?


 
Anatoly Podgoretsky ©   (2009-01-28 16:41) [12]

> anton shestakov  (28.01.2009 16:19:11)  [11]

В OnFilterRecord можно, что угодно писать, например

accept := Random > 0.3;

Это очень можное орудие.


 
anton shestakov   (2009-01-28 17:04) [13]

а по моему случаю? (конечно извините может за детский вопрос, но я не разу этим не занимался) - произвести фильтрацию в бд не по первым буквам, а по последним, тоесть если мне надо найти фамилию по последним буквам! или даже по любым буквам!


 
anton shestakov   (2009-01-28 21:26) [14]

использовал как и советовали OnFilterRecord - написал вот так Accept :=(Pos(Edit1.Text, DataSet["Name"]) > 0);
И вот теперь подскажите, что добавить в эту строчку, чтобы сделать фильтрацию нечувствительной к регистру!
Заранее спасибо!


 
ЮЮ ©   (2009-01-29 03:32) [15]

Привести Edit1.Text и DataSet["Name"])  в выражении к одному регистру, например, использую UnsiUpperCase


 
Виталий Панасенко   (2009-01-29 08:49) [16]


> anton shestakov   (28.01.09 21:26) [14]
>
> использовал как и советовали OnFilterRecord - написал вот
> так Accept :=(Pos(Edit1.Text, DataSet["Name"]) > 0);
> И вот теперь подскажите, что добавить в эту строчку, чтобы
> сделать фильтрацию нечувствительной к регистру!
> Заранее спасибо!

Лучше так не делать. Я об DataSet["Name"]. При "пустом" (null) значении поля Name получишь исключение.. Лучше сделай так: DataSet.FieldByName("Name").AsString


 
anton shestakov   (2009-01-29 15:57) [17]


> Привести Edit1.Text и DataSet["Name"])  в выражении к одному
> регистру, например, использую UnsiUpperCase


А поподробнее?


 
Медвежонок Пятачок ©   (2009-01-29 16:46) [18]

ShowMessage(AnsiUpperCase("НебОскреБы, небоСКребы, А я мАлЕнький тАКой...."))


 
anton shestakov   (2009-01-30 21:35) [19]

такое ощущение, что никто ничего не знает! спросил, так никто ничего толком и не ответил точно, посмотри там, используй это!


 
Johnmen ©   (2009-01-30 21:54) [20]

У всех (ну кроме тебя) ощущение, что песочница в другом месте.
Впрочем, есть ещё вариант про моск...


 
Германн ©   (2009-01-31 01:07) [21]


> anton shestakov   (30.01.09 21:35) [19]
>
> такое ощущение, что никто ничего не знает! спросил, так
> никто ничего толком и не ответил точно, посмотри там, используй
> это!

Одно из воспоминаний моего детства:
Мне лет 5-6. Самое начало 60-х. Я играю во дворе. Рядом на скамейке сидит женщина с маленьким ребенком на руках. Она берет ложкой из тарелки гречневую кашу, кладёт себе в рот и жуёт. Потом через некоторое время выдавливает в рот своему ребенку пережеванную кашу из своего рта! Я так и не понял зачем она это делает, хотя несколько раз спрашивал об этом у своей мамы.

Так то ж был грудной ребенок! И времена были иные! Специализированного детского питания тогда не было.
Может ты сам начнешь пережевывать, то что тебе дают?


 
bla   (2009-03-17 00:13) [22]

Я из объяснений ничего не понял, OnFilterRecord тоже не помогло.


 
Sergey13 ©   (2009-03-17 08:22) [23]

> [22] bla   (17.03.09 00:13)

Сочувствую. Но ради этого признания не стоило поднимать ветку двухмесячной давности.


 
D@nger   (2009-03-17 09:24) [24]

Я тоже начинающий и  как то тоже столкнулся с такой же проблемой... Anatoly Podgoretsky уже посоветовал использовать событие OnFilterRecord я так и делал в своей программе... проверяй нужное условие фильтра в этой процедуре и если оно удовлетворяет запросу то accept:=true else accept:=false. Для проверки условия пользуйся процедурами и функциями для работы со строками... я использовал функцию pos которая выдает позицию подстроки в строке ... и если подстрока является окончанием (тут уж сам думай как это проверить) то accept:=true ... ну и все... только в процедуре поставь условие когда делать такую проверку потому что эта процедура будет выполнятся каждый раз при фильтровании...


 
Anatoly Podgoretsky ©   (2009-03-17 10:13) [25]

> D@nger  (17.03.2009 9:24:24)  [24]

accept := Random > 0.8;


 
имя   (2009-04-04 00:08) [26]

Удалено модератором


 
имя   (2009-04-04 00:09) [27]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2009.05.17;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.012 c
11-1200515589
Vinum
2008-01-16 23:33
2009.05.17
как скопировать текст в буфер


15-1237194918
Cobalt
2009-03-16 12:15
2009.05.17
Работа со строками через asm - переносимость между версиями?


2-1238664318
D@nger
2009-04-02 13:25
2009.05.17
принадлежит ли дата периоду?


15-1236796634
Petr V. Abramov
2009-03-11 21:37
2009.05.17
нифигасебе...


2-1238931635
andreil
2009-04-05 15:40
2009.05.17
Вызов виртуальных методов посредством ассемблера