Учебная программа QT/C++/Java, SQLite (1 таблица)

Иван18 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
16.09.2011

Нужны исходники простой программы для поиска по базе телефонных номеров.

База данных: SQLite3.

Реализация на любом языке, желательно Java.

БД:

CREATE TABLE phones (

id INTEGER PRIMARY KEY,

phone varchar,

name varchar,

adress varchar,

tabel varchar,

bday varchar,

allfields varchar;

CONSTRAINT phones_unique UNIQUE (phone,name,adress,tabel)

);

Внешний вид (Главные активные виджеты):

1. Окно (главная форма);

2. Виджет ListView (Для отображения результата поиска БД);

3. Строка поиска (TextBox);

4. Кнопка (Искать).

Поведение программы:

1. При запуске окна таблица пустая;

2. Обновляется значение "Всего записей в БД";

3. На кнопку Искать привязан запрос поиск по БД;

4. Результат выводится в таблицу;

5. Обновляется значение "Результатов по запросу".

Движек поиска:

Для ускорения запросов по LIKE поле allfields содержит все другие поля (кроме ID) одной строкой (через пробел).

1) Строка запроса разбивается на отдельные слова (пробел тут является разделителем);

2) Формируется запрос: select * from phones where allfields like % [СЛОВО_ЗАПРОСА] %

Например если поле запроса примет вид: "333 Абра Кадабра" то запрос будет выглядеть так:

select * from phones where allfields like '%333%' AND like '%Абра%' AND like '%Кадабра%';

3) Результат записывается в массив RESULT;

4) Выполняются запросы по каждому элементу массива RESULT (строке результат предыдущего запроса), каждый запрос выглядит так:

select * from phones where name = [Поле name из массива (результаты предыдущего поиска)];

Результаты каждого запроса пункта 4 добавляются к массиву RESULT;

5) Вывод массива RESULT в таблицу.

В приложении фотка как эта прога выглядит.

Зачем по каждому результату делать еще запрос по имени:

Если искать в базе по телефону или части телефона результатом будет список нескольких людей.

Затем надо по каждому найденому человеку определить какие еще имеются у него телефоны (у одного человека может быть несколько номеров).

Замечания по интерфейсу:

Кнопка поиска прилеплена к правому краю.

Поле поиска растягивается до левого края кнопки поиска.

Таблица растягивается.

Поле Телефон 12-15 символов.

Поле День рождения 12-15 символов

Поля Имя, Адрес, Табель на всю оставшуюся ширину таблицы равной ширины.

Текстовое поле для поиска немного крупнее стандарта 14-16 размер шрифта, кнопка поиска соответственно чуть по крупнее.

Результат нужен в исходниках, а также в скомпилированном виде.

Подразумевается что файл Базы данных программа ищет рядом.

Если язык Java то скомпилированный вариант вместе с библиотекой чтоб запускался на Windows где нет Java машины.

База данных будет в UPPER CASE, поэтому все строки для запроса приводить предварительно соответственно в UPPERCASE.

Срок 1-2 дня

500 рублей. WMR

Спасибо.

Заявки фрилансеров