Текущий архив: 2006.10.08;
Скачать: CL | DM;
ВнизПоиск по подстроке Найти похожие ветки
← →
ttt_111 (2006-08-02 14:50) [0]Есть ли процедура позволяющая найти запись по подстроке :
например есть запись - ООО "Колобок", ее нужно найти по подстроке - Колобок.
← →
Sergey13 © (2006-08-02 14:56) [1]Есть, и не одна.
← →
alseos © (2006-08-02 15:00) [2]Не понял, в чем должна быть написана процедура в FoxPro или в Delphi?
В любом случае, проще всего:
Select * from [имя_таблицы] where [имя_столбца] like "%Колобок%"
Это, если я правильно понял вопрос.
← →
ttt_111 (2006-08-02 15:14) [3]Процедура в Delphi
← →
alseos © (2006-08-02 15:20) [4]Я сам занимался подобной задачей некоторое время тому назад. Могу выложить открытые свои тексты (или их фрагменты), если интересно.
> Select * from [имя_таблицы] where [имя_столбца] like "%Колобок%"
выберет из таблицы (*.dbf) все записи, где встречается "Колобок".
← →
alseos © (2006-08-02 15:40) [5]Получается примерно следующее:
procedure TForm1.Button1Click(Sender: TObject);
Var Q:TQuery;
begin
Q:=TQuery.Create(nil);
Q.SQL.Text:="Select * from "c:\Sprav.Dbf" where nameoorg like ""%Колобок%""";
Q.Open;
// Здесь можно обращаться к Q как к обычной таблице
// стуктура которой, такая же, как и Spav.Dbf
Q.Free
end;
все ли понятно?
← →
Sergey13 © (2006-08-02 15:41) [6]> [3] ttt_111 (02.08.06 15:14)
Pos - не подойдет?
← →
ttt_111 (2006-08-02 15:43) [7]Спасибо, все понятно.
← →
Desdechado © (2006-08-02 15:46) [8]Найти - это позиционироваться или выбрать?
Выбор уже показали, позиционирование через Locate или перебором датасета со сравнением по условию.
← →
alseos © (2006-08-02 15:53) [9]
> Sergey13 © (02.08.06 15:41) [6]
> > [3] ttt_111 (02.08.06 15:14)
>
> Pos - не подойдет?
Если использовать Pos, придется "вручную" обойти всю таблицу, что несколько "накладно" не так ли?
Если бы требовалось найти подстроку в строке - тогда конечно, а так написано:
> например есть запись - ООО "Колобок", ее нужно найти по
> подстроке - Колобок.
потому я и стал рассказывать, как искать записи (строки) в таблице.
← →
Sergey13 © (2006-08-02 16:14) [10]> [9] alseos © (02.08.06 15:53)
Так автору нужна была "процедура в Делфи". А "в Делфи" кроме как перебором всех строк ничего не найдешь.
← →
alseos © (2006-08-02 16:21) [11]
> Desdechado © (02.08.06 15:46) [8]
> Найти - это позиционироваться или выбрать?
> Выбор уже показали, позиционирование через Locate или перебором
> датасета со сравнением по условию.
Я подразумеваю, что в таблице-справочнике контрагентов (организаций) обычно бывает какой-то уникальный код или шифр (чаще цифровой). Этот код можно определить с помощью того фрагмента, который я привел. Код можно передать и в Locate.
Кроме всего прочего так получается быстрее, чем как-либо еще, особенно, когда в справочнике 15-30 тысяч записей (сам пробовал). Да и может такое статься, что этих "колобков" больше, чем один. Тогда пользователю можно легко предложить бы Я подразумеваю, что в таблице-справочнике контрагентов (организаций) обычно бывает какой-то уникальный код или шифр (чаще цифровой). Этот код можно определить с помощью того фрагмента, который я привел. Код можно передать и в Locate.
Кроме всего прочего так получается быстрее, чем как-либо еще, особенно, когда в справочнике 15-30 тысяч записей (сам пробовал). Да и может такое статься, что этих "колобков" больше, чем один. Тогда пользователю можно легко предложить выбрать одного из них, не так ли?
← →
Desdechado © (2006-08-02 16:24) [12]alseos © (02.08.06 16:21) [11]
Ничего не имею против, кроме как против дубляжа :)
Это ведь не противоречит моему посту.
← →
alseos © (2006-08-02 16:39) [13]
> Sergey13 © (02.08.06 16:14) [10]
> > [9] alseos © (02.08.06 15:53)
>
> Так автору нужна была "процедура в Делфи". А "в Делфи" кроме
> как перебором всех строк ничего не найдешь.
Не стану спорить. Я просто предложил свое решение поставленной задачи, которое работает на практке. Только и всего. Если кто-то может предложить решение проще и (или) быстрее, то мне это будет интересно.
Кроме того, компонент TQuery такой же компонент Delphi как TButton или TEdit, - следовательно все, что он может - может Delphi.
← →
alseos © (2006-08-02 16:49) [14]Desdechado ©
Извини, я не понял, против какого дубляжа? (возможно я где-то затупил). И собственно, что и какому посту не противоречит?
Страницы: 1 вся ветка
Текущий архив: 2006.10.08;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.044 c