![]() |
|
![]() ![]() ![]() |
|
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
||||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Вот нашел код с помощью, которого можно убрать все символы с номера телефона кроме цифр, то есть если введено:
тел. 8-(44)-222-22-22, то результат будет 80442222222
Добавлено через 1 минуту и 18 секунд Дальше номер телефона 80442222222 нужно сократить до 7 сиволов, то есть убрать код города и т.д., для этого делаем проверку на количество символов, и если длина больше 7, удаляем первые символы пока не будет 7 знаков, то есть результат 2222222 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 21:13 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Ну это я и сам сообразил, просто перебирать все строки в таблице очень и очень долго. Вопрос был, про возможность как то ускорить процедуру.
|
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Ну, если в вычисляемом поле, телефон будет в "голом виде", то можно использовать тот же Locate
Table1.Locate('teefon',s,[loCaseInsensitive]); Только в переменную s тоже нужно передавать телефон в "голом виде" Какая будет скорость неизвестно Добавлено через 2 минуты и 30 секунд Кстати, а сколько записей в текстовом файле? Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 21:35 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Ну это я и сам сообразил, просто перебирать все строки в таблице очень и очень долго. Вопрос был, про возможность как то ускорить процедуру.
Добавлено через 1 минуту и 12 секунд
На вскидку не скажу, около 5 тысяч. В базе, где происходит поиск порядко 900 тыс |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
![]() А как часто будет происходит сравнение базы данных с текстовым файлом? Добавлено через 55 секунд И будут все записи проверятся на соответствие в базе по заданному критерию !?! -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Каждую неделю, + за неделю база возрастает на 1000-2000 обьявлений. Число в текстовом файле более или менее постоянно. Вот поэтому нужно поиск осуществлять не более 90 дней с текущей даты.
Это сообщение отредактировал(а) Valior - 28.1.2010, 21:44 |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
900 тысяч уже весомое число, так что для оптимизации забудь про локейт и займись индексацией, и поиском с помощью запросов. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Valior |
|
||||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
В том то и дело, что теоретически запросы намного быстрее должны работать. Но когда я вывжу в дбгрид испобльзуя тайбл, процесс занимает сек 4-5, а когда через запрос
то намного дольше, секунд 10-15. Вот я и растрелся что то. |
||||
|
|||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Valior
Я бы тогда предложил следующее: 1. В таблице где хранится номер телефона, создать доп. поле с хранением номера телефона в чистом виде. 2. Текстовой файл закинуть в базу 3. И также добавить поле номер телефона в чистом виде Тогда вопрос, который был поставлен в начале темы решается одним запросом на обьединение,сравнение и вставку Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 21:55 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
а возможности поменять dbf на нормальную СУБД нет?
для 900 тыс это не много... Это сообщение отредактировал(а) Frees - 28.1.2010, 21:55 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
В случае с поиском через запрос, оно должно быть быстрее, так как мы не будем выводить всю таблицу, а только одну запись. ТО есть, сначала читаем первую строку из текстового файла и передаем номер телефона в запрос на поиск, после чего если критерий поиск удовлетворен, то получаем одну строку, в противном случае - пусто -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Не совсем понял мысль. Добавлено через 1 минуту и 3 секунды К сожалению нет, если только отдельными прогами перезапись в некую другую БД. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |