Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизПоиск в memo-поле Найти похожие ветки
← →
Lola (2002-10-01 15:21) [0]Нужно сделать поиск в memo-поле (текст) по вхождению. База локальная. Может у кого-нибудь есть идеи?
← →
Lola (2002-10-02 15:06) [1]Наверное все проигнорировали, потому что некорректно вопрос поставлен. Поиск нужен в memo-поле по всей базе.
Спасибо.
← →
Леха_ (2002-10-02 15:07) [2]Перебором записей
← →
Lola (2002-10-02 15:11) [3]Не хотелось бы перебором, в том-то и дело.
← →
MsGuns (2002-10-02 15:13) [4]Самый эффективный способ - вместо Memo использовать Detail таблицы. Скорость по сравнению с перебором (другого способа для Paradox-подобных БД не знаю) выше на 2-4 порядка
← →
sniknik (2002-10-02 15:25) [5]в Access для мемо полей срабатывает Sql команда Like. проверь. Если конечно подключение нормальное а не через ODBC, BDE.
← →
gek (2002-10-02 15:28) [6]> sniknik © (02.10.02 15:25)
Честно говоря я никогда не слышал, что бы Like работала с memo полями, именно из-за специфики SQL. Ну если я конечно отстал - поправь.
← →
sniknik (2002-10-02 15:34) [7]не в специфике дело скорее она там запросы корректирует под свои представления. точнее не скажу но уже встречался с таким через jet работает, ODBC нет. Хочеш точностей проверяй, мне неохота.
← →
Lola (2002-10-02 15:41) [8]Самое смешное, что подключение именно через BDE. Делала через ADO, но тогда Post одной записи идет минуту, не меньше. За кофе успеваешь сходить. Уменя пять полей Memo, видимо поэтому. Через BDE почти не тормозит.
← →
Lola (2002-10-02 15:44) [9]
> MsGuns © (02.10.02 15:13)
Уточните пожалуйста Ваш способ с Detail таблицы. Я что-то не допонимаю.
← →
sniknik (2002-10-03 13:26) [10]Lola пытался послать вам письмо, вернуло сплошные timed out
without establishing a connection положу сдесь может увидиш.
Lola © (02.10.02 15:41)
Самое смешное, что подключение именно через BDE. Делала через ADO, но тогда Post одной записи идет минуту, не меньше. За кофе успеваешь сходить. Уменя пять полей Memo, видимо поэтому. Через BDE почти не тормозит.
странно я чаще сталкивался с обратным когда через BDE хуже работает. не можеш описать ситуацию? чтобы я мог повторить данный эффект. что как какие компоненты размер полей и что делаеш после чего зависает. попробую разобратся.
← →
MsGuns (2002-10-03 14:41) [11]Lola © (02.10.02 15:44)
> MsGuns © (02.10.02 15:13)
>Уточните пожалуйста Ваш способ с Detail таблицы. Я что-то не допонимаю.
Поясню на примере. Есть некая БД, которая хранит архивы неких документов. Каждый арх.документ имеет запись-характеристику, в которой было 2 string: 1 - откуда пришел или вернулся, 2 - куда ушел или передан на время. Все хорошо работало, пока " не ушел-пришел" перестало помещаться в простую строку. Некий мастер "вылечил" проблему, заменив строки на мемо. Все стало помещаться, но поиск, которым очень часто пользовались архивисты, работать, ессно, перестал.
Я убрал из осн.таблицы оба мемо (просто выкинул, реструктурировав таблицу), но добавил 1 доп.детал-таблицу, с внешними ключами=ключи документа для связки "один-ко-многим" и двумя внутренними <Тип движения> (I/O) и <Номер строки пп>. В эту таблицу я перед реструктуризацией основной перегнал содержимое обеих мемо, разбив их на строки-элементы, каждая их которых стала отдельной записью новой таблицы.
Потом связал их и немного переделал форму.
В рез-те работает и поиск, и выборки, и вообще "бегать" стала чуть ли не втрое шустрее.
Недостаток один. Трудно переставить строки бывшего мемо местами, но им это бывает надо крайне редко и они пользуются вырезать-приклеить.
← →
Lola (2002-10-03 15:11) [12]Честно говоря уже и не ждала, что кто-то еще откликнется.
> sniknik © (03.10.02 13:26)
Почту проверила, работает вроде нормально. Из компонентов были ADOConnection, подключенный через Microsoft.Jet.OLEDB.4.0, TADOTable, TDataSource, в базе 5 текстовых полей по 50, 5 - мемо и автоинкрементное. 1300 записей. Тормозит любой Table.Post, после добавления новой записи или после корректировки, не важно. Append делает быстро.
> MsGuns © (03.10.02 14:41)
К сожалению не могу воспользоваться Вашим способом, потому что информация в мемо однородная, разбитая на item-ы. Вообще, мне нравится как Вы выходите из затруднительных положений. Мне же пришлось сделать обыкновенным перебором. Хорошо хоть заказчик согласился искать только по одному полю.
← →
sniknik (2002-10-03 16:19) [13]у вас чтото не так с чем не знаю :-))).
послал пример (с другого ящика похоже рамблер глючит)
у меня 1300 записей в файл с вашей структурой ложится и постится за 36 сек. правда вы не указали примерный размер мемо я взял последний пост Lola © (03.10.02 15:11) .....
проверьте это у себя если будет ощутимая разница надо искать глюки в самом ADO.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c