Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.10.08;
Скачать: [xml.tar.bz2];

Вниз

Поиск по подстроке   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.049 c
2-1159108026
learner
2006-09-24 18:27
2006.10.08
Определение имен типов объектов.


9-1124163393
Jonikeidg
2005-08-16 07:36
2006.10.08
Исходники карточных игр.


15-1158582444
Konstantin555
2006-09-18 16:27
2006.10.08
C помощью какой программы можно скрыть повреждённые сектора?


15-1157075691
Доктор Шмурге
2006-09-01 05:54
2006.10.08
Куда попадет Сатана после смерти?


15-1158484497
PHPDeveloper
2006-09-17 13:14
2006.10.08
Вопрос по БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский