![]() |
|
![]() ![]() ![]() |
|
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
1. Создать в таблице доп. поле, чтобы хранить телефон в виде ххххххх
2. Отказать от текстового файла. Создать таблицу с теми же полями, что хранил текстовой файл, и информацию перенести в эту же созданную таблицу 3. В таблице, которую мы создали как замену текстовому файлу хранить телефон в виде ххххххх Правда с хранением есть один нюанс, так как мы храним 7 цифр, то кода города нету, может возникнуть ситуация, когда номер телефона с Донецка, например, 0(62)-222-22-22 совпадет с номером телефона с Киева 0(44)-222-22-22. Да, теперь самое главное, для того, чтобы сравнить есть ли данные в базе, которые есть в текстовом файле (который теперь не текстовой) достаточно написать запрос следующего плана
-------------------- Фсё будет хорошо!!! |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
4 проиндексировать поле "Телефон в чистом виде" -------------------- Кольцов Виктор Владимирович |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Frees
Точно. Самое главное упустил) -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
1. А разница между созданием поля и изменением уже существующего? 2. Тут есть проблема. Данный файл мы получаем, после работы программы FineReader, тоесть будут еще процедуры для преобразования в надлежащий вид. но думаю, что можно потом будет перенести в БД 3.Можно А вот ньюанс очень критичный, тк, телефоны действительно межрегиональные. но думаю, не составит особо труда хранить и 12 цифр |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Разница в том, что нам не нужно будет его гонять туда и сюда. Так как мы в виде ххххххх храним для базы, а для пользователя отображаем в удобном виде, в котором он записал. Тогда постоянно загонять с текстового файла данные в базу, после чего очистить текстовой файл Добавлено @ 22:33
Можно 12, но если он в базе хранится в виде тел. 478-77-44, а в текстовом файле записан как 044-478-77-44, то на выходе будут разные значения. Тут такой вопрос, код города все пишут!?! или есть люди, которые записывают без кода города? Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 22:34 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
А, все дошло, тоесть одно поле в отором будем хранить еще и голой телефон, все понял.
В базе поле телефон имеет длину 12 символов. И код города только в случае, если он не родной город. А из текстового файла запись производить в новую таблицу? Как лучше? И что значит индексировать? Про это можно поподробнее? Офтоп, dbmemo1.text:=(Текст из колонки 'номер', в веделенной в дб гриде строке), как это сделать? чет не могу найти нужное... Это сообщение отредактировал(а) Valior - 28.1.2010, 23:02 |
|||
|
||||
chip_and_dayl |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Если Дбгрид отображает результат Квери, то
если ДбГрид выводит набор данных с Табле, то Квери1 заменить на Табле1 Добавлено @ 23:08
Аха. Первый храним для пользователя, а второй для сравнения данных
Все-таки нужно найти оптимальную длину, на которую нужно усекать телефон, то есть нам нужно оставить главные цифры, код и номер телефона, если минимальный код страны 2 символа, а номер телефона 7, то выходит 9. Для чего это я говорю, код города я так понял пишут, но вот код страны, могут написать и могут не написать, тогда выйдет разная длина Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 23:09 -------------------- Фсё будет хорошо!!! |
||||||||
|
|||||||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Там еще пишут и сотовые. |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Valior
Ну, сотовый тоже имеет 7 цифр - сам номер, и 2 цифры код оператора 9 цифр должно хватить, чтобы телефоны следующего плана были равны: 38(код страны) 78(оператора/города) 545 56 55 = 78 545 56 55 38(код страны) 068(оператора/города) 545 51 11 = 68 545 51 11 38(код страны) 378(оператора/города) 545 56 55 = 78 545 56 55 096 787 77 05 = 96 787 77 05 Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 23:21 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Ок, согласен)
Щас уже проверить не смогу, забыл с работы захватить файлы. Но подведем итог. Сделать в таблице поле, и записать в него чистый номер. Создать таблицу для Текстового файла, и записать в нее его содержимое,номер - чистый |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 2 Всего: 9 |
Valior
Итог утверждаю :) Уже и время позднее, чтобы проверять. Да и работы здесь не на час :) Это сообщение отредактировал(а) chip_and_dayl - 28.1.2010, 23:29 -------------------- Фсё будет хорошо!!! |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
Query1.SQL.Text:='INSERT INTO base (phone) '
пытаюсь вставлять в поле с "чистым номером", результат выполнения процедуры nomer, как это оформить? |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
Добавлено через 1 минуту и 44 секунды а если ты хочеш в уже добавленной записи дописать "чистый номер" то тебе нужен update а не insrt -------------------- Кольцов Виктор Владимирович |
|||
|
||||
Valior |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 24.5.2006 Репутация: нет Всего: нет |
создано чистое поле, я в него хочу скопировать то, что уже в другом поле, но с необходимыми изменениями. Query1.ParamByName('phone').Value := nomer; это тож понятно, как передавать в процедуру в виде входного параметра, результат селекта? Это сообщение отредактировал(а) Valior - 29.1.2010, 11:45 |
|||
|
||||
Frees |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
тебе нужен UPDATE
Это сообщение отредактировал(а) Frees - 29.1.2010, 12:21 -------------------- Кольцов Виктор Владимирович |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "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. |